tagforge
A library made for the serialisation and deserialisation of MC NBT!
Summary
| Latest Version | 0.1.1 |
|---|---|
| License | Apache-2.0 |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-08-30 07:10 |
Tags
Authors
- Yu-Vitaqua-fer-Chronos
Installation
nimble install tagforge
choosenim install tagforge
git clone https://github.com/Nimberite-Development/TagForge-Nim
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| tagforge | ✓ | ✓ | ✓ | - | - | - | - | - | - | ✓ |
Dependencies
| Package | Version | Optional |
|---|---|---|
| nim >= | 2.0.2 | No |
| zippy >= | 0.10.11 | No |
| https://github.com/Yu-Vitaqua-fer-Chronos/MUTF-8 >= | 0.1.0 | No |
Source
| Repository | https://github.com/Nimberite-Development/TagForge-Nim |
|---|---|
| Homepage | https://github.com/Nimberite-Development/TagForge-Nim |
| Registry Source | nimble_official |
README
TagForge
An NBT library written in Nim to parse NBT data, using https://wiki.vg/NBT to help me implement it!
Usage
Probably better off looking at the docs and tests, but here:
let data = readFile("my.nbt").parseNbt()
echo data["rootTag"]["name"].getString()
data["rootTag"]["name"] = newTagString("new name")
writeFile("my.modified.nbt")
To-Do
- [ ] Write
toandfrommacros for types. - I'd say the main issue with this is the fact that it'd be a lossy conversion (since the type of list may be lost), but it shouldn't be an actual issue.
- [ ] More comprehensive tests including Bedrock NBT.
Credits
Thanks to Yardanico for making NimNBT which was a massive help for this project, since this was my first time making any sort of parser!
Thanks to wiki.vg for the specification which gave examples and up-to-date info about the formats!