Expand description
§Overview
Read and write NBT data.
Named Binary Tag (NBT) is a structured binary format used throughout Minecraft for a multitude of things. This crate mainly focuses on Minecraft: Bedrock Edition, and supports the little endian and network little endian encoding. Big endian, which is more commonly used in Minecraft: Java Edition, is also supported, however.
§Feature flags
serde- Allows rust types to be serialized and deserialized into NBT using serde.
§Examples
NBT data can be constructed and written as follows:
use zuri_nbt::encoding::LittleEndian;
use zuri_nbt::NBTTag;
use zuri_nbt::tag;
let nbt = tag::Compound::builder()
.with_string("name", "Zuri")
.with_int("age", 18)
.build();
let mut buf = Vec::new();
nbt.write(&mut buf, LittleEndian).expect("Something went wrong while writing nbt");Reading NBT data can be done as follows:
use zuri_nbt::encoding::LittleEndian;
use zuri_nbt::NBTTag;
let mut bytes: &[u8] = &[
0x08, 0x00, 0x00, 0x0c,
0x00, 0x48, 0x65, 0x6c,
0x6c, 0x6f, 0x20, 0x57,
0x6f, 0x72, 0x6c, 0x64,
0x21, 0x00, 0x00, 0x00,
];
let value = NBTTag::read(bytes, LittleEndian).expect("Something went wrong while reading nbt");
assert_eq!(value, NBTTag::String("Hello World!".to_string().into()));Modules§
- encoding
- Contains all the standard NBT encodings.
- err
- See [NbtError].
- reader
- See Reader.
- tag
- Contains all NBT tags.
- view
- The View struct is a utility for easily traversing and reading NBT data in an efficient manner and without too much boilerplate.
- writer
- See Writer.
Enums§
- NBTTag
- An enum representing all possible NBT data.
- NBTTag
Type - An enum representing all possible NBT tag types.