我只是想自己回答这个问题.
Marc Gravell的protobuf-net项目与F#开箱即用,因为它使用标准的.NET习惯用法.您可以使用属性来获取序列化,而无需编写.proto文件或进行任何两阶段编译,或者您可以从标准.proto文件生成必要的代码.性能对.NET来说很好,但比OCaml的内置Marshal模块更慢.但是,此库会强制您使每个消息类型中的每个字段都可变.这确实适得其反,因为消息应该是不可变的.此外,文档还有很多不足之处,但是,这是免费软件.
我还没有成功地让Jon Skeet的protobuf-csharp端口库工作.
理想情况下,您可以将所有内置的F#类型(元组,记录,联合,列表,集合,映射......)序列化为现成的这种线路格式,但不是现有的开源解决方案能够做到这一点.我也担心这些解决方案的复杂性:Jon Skeet是88,000行C#代码和注释(!).
顺便说一句,我很失望地看到Google协议缓冲区没有指定标准格式DateTime或decimal数字.
我还没有看过Proto#,甚至找不到Froto的下载.还有ProtoParser,但它只解析.proto文件,实际上无法序列化任何东西.
| 归档时间: |
|
| 查看次数: |
1761 次 |
| 最近记录: |