8个版本 (重大变更)

0.8.0 2023年9月14日
0.7.0 2023年5月17日
0.6.0 2023年2月10日
0.5.0 2022年12月9日
0.1.0 2022年8月30日

#1831 in 编码

MIT 许可证

65KB
1.5K SLoC

Azalea NBT

快速NBT序列化和反序列化器。

  • 支持Gzip和Zlib压缩
  • 所有数据都归用户所有,便于使用
  • 使用serde功能支持Serde。

示例

use azalea_nbt::{Nbt, NbtCompound};
use std::io::Cursor;

let buf = include_bytes!("../tests/hello_world.nbt");
let tag = Nbt::read(&mut Cursor::new(&buf[..])).unwrap();
assert_eq!(
    tag,
    Nbt::Compound(NbtCompound::from_iter(vec![(
        "hello world".into(),
        Nbt::Compound(NbtCompound::from_iter(vec![(
            "name".into(),
            Nbt::String("Bananrama".into()),
        )]))
    )]))
);

基准测试

在撰写本文时,Azalea NBT是最快的NBT解码器(比第二快的Graphite NBT快约一倍)并且与最快的NBT编码器性能相当(有时甚至是最快的,取决于数据)。

您可以使用cargo bench --bench compare来运行基准测试以与其他NBT库进行比较,以及使用cargo bench --bench nbt进行正常基准测试。

注意:为了获得最佳性能,请使用RUSTFLAGS='-C target-cpu=native'

依赖项

~1.5–2.2MB
~44K SLoC