2个版本
使用旧的Rust 2015
0.1.1 | 2017年2月27日 |
---|---|
0.1.0 | 2017年1月25日 |
#2079 在 编码
37 每月下载量
用于 ensync
270KB
5K SLoC
fourleaf
简介
fourleaf是一个简单的二进制序列化格式和库,用于高效生成可移植的、向前和向后兼容的消息。
特点
-
字段通过显式的数字标签进行标识,类似于thrift或protobuf。这避免了命名字段的空间开销(如在CBOR或JSON中),同时使得推理更改的兼容性变得可能(与简单地按顺序序列化字段不同)。
-
序列化建立在普通的Rust类型之上(如serde中,但与protobuf不同),因此正常Rust与序列化结构之间没有“阻抗不匹配”。
-
完全支持元组、命名结构体、元组结构体、枚举(包括具有元组/命名字段的变体)。
-
零拷贝反序列化。也就是说,您可以设计您的结构,使得反序列化的基于字节数组的项指向原始数组。
-
可以保存不理解的字段,并在重新编写结构时保留它们。
-
可以将消息迭代写入流,而不必了解流中后续的内容。同样,值也可以迭代地流进。
-
可以使用填充和异常元素在流协议中用于带内信号。
不支持的特性
- 这不是基于serde构建的,因此您不会免费获得与现有serde代码的互操作性。
有关更多信息,请参阅文档。
状态
大部分稳定。
-
底层二进制格式不会改变。
-
内置序列化器(例如,
Vec
、HashMap
等)除非发现一些基本的缺陷,否则不太可能改变。 -
在1.0之前,API可能会发生重大更改。
变更日志
0.1.1:解决rustc nightly中的类型推断问题。
贡献
除非您明确声明,否则您提交给包括在您的工作中的任何贡献,根据Apache-2.0许可证定义,将作为上述双重许可证,不附加任何其他条款或条件。