4 个版本
0.1.0 | 2022年2月4日 |
---|---|
0.1.0-dev.2 | 2021年12月31日 |
0.1.0-dev.1 | 2021年12月29日 |
0.0.0-reserve.0 | 2021年12月24日 |
#1506 在 编码
每月下载量413
在 17 个crate(7个直接)中使用
6KB
99 行
Transmog
Rust 的通用数据序列化工具。
Rust 有一个充满活力的生态系统,其中包含许多序列化crate。许多crate通过 Serde 实现一组常见的trait,但其他crate可能不支持或选择不支持Serde。
然而,最终,大多数序列化格式都可以以通用方式交互。The Format
trait 旨在成为任何可以序列化自 std::io::Read
并从 std::io::Write
反序列化的crate的通用序列化trait。
此项目状态
我们目前处于创建此生态系统的实验阶段。所有建设性的批评、格式请求和问题都欢迎在 Github Issues 上提出。我们希望将此crate作为在 BonsaiDb 中提供版本化数据支持的策略,以及为 Fabruic
提供可定制序列化支持的策略。
序列化格式支持
我们接受对任何适度稳定的序列化API的pull请求。
Bincode
通过transmog-bincode
- CBOR 通过
transmog-cbor
,由Ciborium
支持。 - JSON 通过
transmog-json
,由serde_json
支持。 Pot
通过transmog-pot
数据结构迁移工具
有时不可避免地需要进行破坏性更改。也许,你决定不同的格式更适合你的情况。或者,你对结构进行了大量的重构,serde 内置的属性不足以帮助。来拯救的是 transmog-versions
!
transmog-versions
包提供了 API,允许你将当前存储的数据视为“版本 0”,并提供处理每个版本数据的逻辑。
计划添加 derive 宏以删除更多样板代码。
从 futures::Stream
序列化/反序列化
transmog-async
包是 async-bincode
的分支,修改后支持 Format
特性。
开源许可
该项目,如同 Khonsu Labs 的所有项目一样,是开源的。此存储库可在 MIT 许可证 或 Apache 许可证 2.0 下使用。
要了解更多关于贡献的信息,请参阅 CONTRIBUTING.md。