#序列化 #反序列化 #数据处理 #协议 #性能 #轻量级

nightly naumi

轻量级且快速的数据传输协议。快速编/解码,体积小巧!

5 个版本

0.3.5 2024年3月13日
0.3.4 2024年3月13日
0.2.7 2024年2月24日
0.1.5 2024年2月17日

1082编码

Download history 105/week @ 2024-04-02

1,332 每月下载量

MIT 许可证

49KB
1.5K SLoC

Naumi

轻量级且快速的数据传输协议。快速编/解码,体积小巧!

📌 为什么选择Naumi?

Naumi是一种创新的数据格式,旨在成为JSON和ProtoBuf的完整替代品,同时提供更高的效率和灵活性。它旨在满足现代数据处理需求,提供紧凑的序列化、改进的读写速度,以及对复杂数据结构和类型的支持,使其成为从webAPIs到实时消息和配置文件的广泛应用的理想选择。

🚀 性能基准

基准测试来源: 基准测试

编码 解码 大小
Naumi 6.4 ms 6.8 ms 15002002
Alkahest 24.3 ms 22.7 ms 15008008
Pot 72.64 ms 187.9 ms 23994125
Cbor 40.8 ms 115.2 ms 31904769
SimdJson 107.6 ms 466.3 ms 62543210

📝 待办事项(在1.0.0版本之前)

  • 使用示例描述函数。
  • 使用zstd进行数据压缩。
  • 更多基准测试。
  • 更多示例。
  • 更多速度和优化!
    • 迭代器和自定义类型的大幅加速。
    • 数字解码的大幅加速。
    • 问题页面 上告诉我。
  • 支持更多数据类型

📦 当前支持的数据类型

数字: u8, u16, u32, u64, usize, u128, f32, f64, VarInt // 和有符号

字符串: String(VarInt), TinyString(u8), ShortString(u16), MediumString(u32), LongString(u64)

迭代器: Vec(VarInt), TinyVec(u8), ShortVec(u16), MediumVec(u32), LongVec(u64), HashSet(VarInt), HashMap(VarInt)

自定义: Structs(Named/Unnamed), Enums, Option, Tuple

🔧 安装

  • 标准
naumi = "0.3"
  • 所有
naumi = { version = "0.3", features = ["net", "net_async", "default_", "clone", "debug", "partial_eq"] }

✊ 示例

在GitHub上查看 - 示例

📋 更新日志

  • 0.3.5 - net_async中的修正
  • 0.3.4 - HashMap中的修正
  • 0.3.3 - 新类型和错误修复
  • 0.3.2 - usize 和 isize 现在总是 64 位。
  • 0.3.1 - 将示例从 Readme 中移动。
  • 0.3.0 - 易用性和一些错误修复。 已移除 Coder
  • 0.2.5 - 0.2.7 - 错误修复和一些更改。
  • 0.2.4 - 添加基准测试。
  • 0.2.3 - 加速数字解码。
  • 0.2.2 - 错误修复
  • 0.2.1 - 使用示例描述函数。
  • 0.2.0 - 大幅加速迭代器和自定义结构,错误修复。
  • 0.1.0 - 0.1.5 - 错误修复

🤝 贡献

欢迎贡献、问题和功能请求!请随意查看 问题页面

❤️ 表达你的支持

如果这个项目帮到了你,请给一个 ⭐️!

📝 许可证

版权所有 © 2024 Paradist。此项目采用 MIT 许可。

依赖项

~1.3–3.5MB
~69K SLoC