【发布时间】:2014-02-19 23:34:31
【问题描述】:
是否有人知道在位级别有效的序列化库(沿协议缓冲区行)?我需要通过非常昂贵的链路(租用卫星)传输字节,我们需要尽可能地打包这些字节以降低成本。
例如,我们忽略对齐:如果一个值的范围是已知的(例如 0-128),我们将其打包成 7 位,并将剩余的位用于需要打包的下一个值。我们只使用我们需要的信息而不使用其他信息来打包 DateTime 值(例如删除年份和秒并将结果打包成 20 位)。将消息计数减少两个字节。
目前我们所有的消息都是手工制作的,这很容易出错。是否有类似于协议缓冲区的东西可以打包位域并在 C 和 C# 中生成代码?我知道 boost 的 dynamic_bitset,但这不是 C# 的消耗品(很容易)。在我继续按照this question 的答案编写库之前,我们可以考虑另一种方法吗?
【问题讨论】:
-
您是否考虑过简单地压缩流?
标签: c# c serialization deserialization protocol-buffers