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。