26 个版本 (11 个稳定)
1.6.4 | 2023 年 9 月 5 日 |
---|---|
1.6.2 | 2022 年 3 月 25 日 |
1.5.6 | 2021 年 12 月 11 日 |
1.5.5 | 2021 年 7 月 8 日 |
0.2.1 | 2020 年 12 月 30 日 |
在 Rust 模式 中排名 #214
每月 146 次下载
用于 7 个crate(4 个直接使用)
64KB
2K SLoC
快速二进制序列化读写,支持 Serde 和 Stream 模型
与 bincode 类似,但性能超过 bincode
提供基本的 RW 和可变长度 Rw
let mut data = Data::new();
data.write_fixed(1u8);
data.write_fixed(2i16);
data.write_fixed(3i32);
data.write_fixed(4i64);
data.write_fixed(5f32);
data.write_fixed(6f64);
data.write_fixed("hello world");
data.write_var_integer(123u64);
data.write_var_integer("hello world");
let mut rd = DataReader::from(&data[..]);
assert_eq!(1, rd.read_fixed::<u8>()?);
assert_eq!(2, rd.read_fixed::<i16>()?);
assert_eq!(3, rd.read_fixed::<i32>()?);
assert_eq!(4, rd.read_fixed::<i64>()?);
assert_eq!(5f32, rd.read_fixed::<f32>()?);
assert_eq!(6f64, rd.read_fixed::<f64>()?);
assert_eq!("hello world", rd.read_fixed_str()?);
assert_eq!(123u64, rd.read_var_integer::<u64>()?);
assert_eq!("hello world", rd.read_var_str()?);
支持自定义功能
[features]
default=["rmp"]
big_endian=[]
check_utf8=[]
基准测试
running 9 tests
test bench_base_rw ... bench: 52,288 ns/iter (+/- 654) data-rw
test bench_owned_base_rw ... bench: 53,659 ns/iter (+/- 2,795) data-rw
test bench_owned_pack ... bench: 140,562 ns/iter (+/- 1,925)
test bench_pack ... bench: 139,910 ns/iter (+/- 2,353)
test bench_str ... bench: 53,023 ns/iter (+/- 770) data-rw
test bench_str_bincode ... bench: 71,520 ns/iter (+/- 1,558)
test bench_str_json ... bench: 91,993 ns/iter (+/- 1,074)
test bench_str_owned ... bench: 53,272 ns/iter (+/- 1,277) data-rw
test bench_str_rmp ... bench: 78,455 ns/iter (+/- 1,333)
test result: ok. 0 passed; 0 failed; 0 ignored; 9 measured; 0 filtered out; finished in 2.24s
依赖关系
~0.5–1.3MB
~29K SLoC