#序列化 #反序列化 #工具 #特质 #内部 #打包 #stack-pack

bin+lib buffertk

Buffertk 提供数据序列化和反序列化的工具

8 个版本 (破坏性更新)

0.8.0 2024 年 8 月 19 日
0.7.0 2024 年 8 月 19 日
0.6.0 2024 年 2 月 19 日
0.5.0 2023 年 12 月 27 日
0.1.0 2023 年 4 月 4 日

#494 in 解析实现

Download history 31/week @ 2024-04-29 34/week @ 2024-05-06 43/week @ 2024-05-13 91/week @ 2024-05-20 96/week @ 2024-05-27 90/week @ 2024-06-03 78/week @ 2024-06-10 81/week @ 2024-06-17 116/week @ 2024-06-24 65/week @ 2024-07-08 147/week @ 2024-07-15 66/week @ 2024-07-22 72/week @ 2024-07-29 91/week @ 2024-08-05 63/week @ 2024-08-12

316 每月下载量
用于 27 个crate (22 个直接)

Apache-2.0 协议

47KB
1K SLoC

buffertk

Buffertk 提供数据序列化和反序列化的工具。

状态

维护跟踪。该库被认为是稳定的,如果一年内未发生变化,则将进入维护模式。

范围

此库关于常见的序列化和反序列化模式。其主要目的是为 prototk crate 提供原始数据。

示例

要打包,实现 [Packable] 特质并使用 [stack_pack]。

use buffertk::{v64, stack_pack};

let x = v64::from(42);
let buf: &[u8] = &stack_pack(x).to_vec();
assert_eq!(&[42u8], buf);

解包使用 [Unpackable] 特质或 [Unpacker]。

use buffertk::{v64, Unpacker};

let mut up = Unpacker::new(&[42u8]);
let x: v64 = up.unpack().expect("[42] is a valid varint; something's wrong");
assert_eq!(42u64, x.into());

缺点

  • 一些模式被频繁使用,可能需要更好的抽象。鉴于大多数此库与代码生成一起使用,这不是一个问题。

文档

最新的文档始终可在 docs.rs 上找到。

无运行时依赖