fastnbt 0.15.0

Minecraft NBT (and more) parser aiming for high speed parsing.
Documentation

fastnbt crate

Documentation: docs.rs

Fast (or trying to be!) deserializer and parser for Minecraft: Java Edition's NBT format.

Includes

  • a serde based deserializer for NBT for deserialization.
  • a lower level parser using the Read trait.

The derserializer allows you to avoid allocations where possible. Strings can be deserialized to &'a str where 'a is the lifetime of the data being deserialized. This can also be done for lists of any integral type into &'a [u8]. The same applies to the Array types in NBT.

See the documentation for more information.

[dependencies]
fastnbt = "0.15"

Comparison to other NBT crates

There are other crates for NBT out there, this tries to give an honest comparison to them.

Feature fastnbt Hematite nbt note
Benchmark world render* 23.8+-0.7s 31.6+-0.9s making fastnbt 33% faster in this test
Deserialization yes yes
Serialization no yes
Value-like type yes yes
Long Array (MC 1.12+) yes yes
Minecraft specialized unicode no** yes
Deserialize from reader no yes
WASM compatible yes unknown

*see 01-11-2020.md in benchmarks directory

**intended feature