@minecraft-js/nbt
v1.1.0
Published
Read and write NBT files. Also supports Zlib and Gzip
Downloads
32
Readme
nbt
Read and write NBT files. Also supports Zlib and Gzip
Documentation
Installation
Install the package:
$ npm install @minecraft-js/nbtAnd then import it in your JavaScript/TypeScript file
const { parseNBT, writeNBT } = require('@minecraft-js/nbt'); // CommonJS
import { parseNBT, writeNBT } from '@minecraft-js/nbt'; // ES6Parsing
No need to specify the compression if the file is compressed. The writer will figure it out by itself.
Note: Here I got the data by reading a file but you can get it whatever you want as long as you provide a valid buffer with valid NBT data inside.
import { readFileSync } from 'node:fs';
const buffer = readFileSync('myFile.nbt');
const parsed = parseNBT(buffer);Writing
To write an NBT file you must pass a NBT_Compound instance to the write function.
import { writeFileSync } from 'node:fs';
const buffer = writeNBT(compound);
writeFileSync('myFile.nbt', buffer);Benchmark
Data used: bigtest.nbt
Computer specs: Ryzen 5 3600 - 16GB at 2100MHz
--- Reading benchmarks ---
Reading | Uncompressed x 587,802 ops/sec ±0.47% (96 runs sampled)
Reading | Gzip x 15,892 ops/sec ±0.36% (90 runs sampled)
Reading | Zlib x 83,879 ops/sec ±2.72% (84 runs sampled)
--- Writing benchmarks ---
Reading | Uncompressed x 305,369 ops/sec ±0.57% (96 runs sampled)
Reading | Gzip x 62,383 ops/sec ±1.14% (92 runs sampled)
Reading | Zlib x 63,816 ops/sec ±0.67% (89 runs sampled)