#serialization #nuts #binary-format #binary-data #nuts-bytes

nuts-bytes-derive

将数据序列化为二进制数据格式

17个不稳定版本 (3个重大更新)

0.6.8 2024年7月31日
0.6.7 2024年6月26日
0.6.2 2024年5月23日
0.5.0 2024年3月5日
0.2.1 2023年11月17日

10#nuts

Download history 129/week @ 2024-05-13 381/week @ 2024-05-20 16/week @ 2024-05-27 184/week @ 2024-06-03 348/week @ 2024-06-10 229/week @ 2024-06-17 153/week @ 2024-06-24 7/week @ 2024-07-01 15/week @ 2024-07-15 4/week @ 2024-07-22 152/week @ 2024-07-29 8/week @ 2024-08-05 15/week @ 2024-08-12

每月下载量:181
5 个crate中使用(通过 nuts-bytes

MIT 许可证

25KB
422

nuts-bytes: 转换为二进制数据格式。

nuts-bytes crate 实现了一个将结构化数据转换为二进制格式的工具。

API文档

API文档位于 此处

格式规范

二进制格式规范在 docs/format.md 中。

反序列化示例

use nuts_bytes::{Error, Reader, TakeBytesError};

// deserialize a primitive (u32)
let mut reader = Reader::new([0x00, 0x00, 0x02, 0x9A].as_slice());
let n: u32 = reader.read().unwrap();

assert_eq!(n, 666);

// Not enough data available
let mut reader = Reader::new([0; 3].as_slice());
let err = reader.read::<u32>().unwrap_err();

assert!(matches!(err, Error::TakeBytes(TakeBytesError::Eof)));

序列化示例

use nuts_bytes::Writer;

// serialize a primitive (u32)
let mut writer = Writer::new(vec![]);
writer.write(&666u32).unwrap();

assert_eq!(writer.into_target(), [0x00, 0x00, 0x02, 0x9A]);

许可证

您可以在 此处 查看完整的许可证。

本项目采用 MIT 许可证。

依赖关系

~260–710KB
~17K SLoC