nbt-rust 0.1.1

Fast, idiomatic NBT library for Rust with Bedrock and Java endian variants.
Documentation

nbt-rust

nbt-rust is a simple NBT (Named Binary Tag) library written in Rust.

Features

  • Big Endian, Little Endian, and Network Little Endian support
  • Low-level Tag-based API
  • Typed encode/decode with serde
  • Helper functions for Bedrock-compatible NBT flows

Installation

Add this to your Cargo.toml:

[dependencies]
nbt-rust = "0.1.1"

Quick Usage

use nbt_rust::{from_net_bytes, to_net_bytes_named, Result};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
struct PlayerData {
    username: String,
    hp: i32,
}

fn main() -> Result<()> {
    let input = PlayerData {
        username: "Steve".to_string(),
        hp: 20,
    };

    let bytes = to_net_bytes_named("", &input)?;
    let output: PlayerData = from_net_bytes(&bytes)?;

    assert_eq!(input, output);
    Ok(())
}

Development

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test -q