40 个版本 (20 个稳定版)
2.5.0 | 2024 年 3 月 2 日 |
---|---|
2.4.4 | 2023 年 4 月 29 日 |
2.4.3 | 2023 年 3 月 4 日 |
2.3.2 | 2022 年 8 月 17 日 |
0.6.0 | 2020 年 7 月 15 日 |
#1 in #nbt
每月下载量 906
用于 23 个 crate (20 个直接使用)
300KB
8K SLoC
fastnbt 库
文档: docs.rs
为 Minecraft: Java Edition 的 NBT 格式提供快速 serde 解析器和序列化器。
尽可能支持通过 from_bytes
实现“零拷贝”。borrow
模块包含更多类型以避免分配。
包括一个用于序列化和反序列化任何 NBT 的 Value
类型。 Value
正确地保留了确切的 NBT 结构。 nbt!
宏允许轻松创建这些值。
为了支持 NBT 的数组,存在专门的 ByteArray
、IntArray
和 LongArray
类型。
查看文档 获取更多信息。
[dependencies]
fastnbt = "2"
fastnbt
遵循 Semver,这个项目所做的一些事情 不算 是破坏性变更包括
- Rust 版本的最小变更。在企业环境之外,这应该不会太难,而且我认为在这些环境中不需要 NBT。
- 改进(反)序列化器,使得原本无法(反)序列化的有效 NBT 现在可以(反)序列化。我将任何这些情况都视为一个错误。
- 序列化 fastnbt/fastanvil 类型到其他格式时的数据格式。fastnbt 中的类型实现
serde::Serialize
以允许输出到其他数据格式,但可能在将来改变结构。
使 fastnbt
与 WebAssembly 不兼容的变更 被视为 破坏性变更。
其他 NBT 库
似乎有几个库支持 serde(反)序列化,我找到的主要有
可能还有其他!肯定还有更多不支持 serde 的。
-
所有这些库都支持使用 serde 进行序列化和反序列化。
-
由于需要自定义处理 NBT 数组类型,它们彼此之间不兼容。
-
它们都处理Minecraft的(实际上是Java的)特殊Unicode。
-
quartz和fastnbt支持从底层字节中借取反序列化。
-
fastnbt的
Value
类型可以双向反序列化和序列化NBT数组。其他crate也有值类型,它们也可能正确地双向操作。说实话,它们都是不错的选择!
依赖项
~0.5–1.2MB
~26K SLoC