Skip to main content

A high-performance Minecraft schematic parser and utility library

Project description

🧬 Nucleation

Nucleation is a high-performance Minecraft schematic engine written in Rust — with full support for Rust, WebAssembly/JavaScript, Python, and FFI-based integrations like PHP and C.

Built for performance, portability, and parity across ecosystems.


Crates.io npm PyPI


✨ Features

  • ✅ Multi-format support: .schematic, .litematic, .nbt, etc.
  • 🧠 Memory-safe Rust core with zero-copy deserialization
  • 🌐 WASM module for browser + Node.js
  • 🐍 Native Python bindings (pip install nucleation)
  • ⚙️ C-compatible FFI for PHP, C, Go, etc.
  • 🔄 Feature parity across all interfaces
  • 📦 Binary builds for Linux, macOS, Windows (x86_64 + ARM64)
  • 🧱 Seamless integration with Cubane

📦 Installation

🔧 Rust

cargo add nucleation

🌐 JavaScript / TypeScript (WASM)

npm install nucleation

🐍 Python

pip install nucleation

🧩 C / PHP / FFI

Download prebuilt .so / .dylib / .dll from Releases or build locally using:

./build-ffi.sh

🚀 Quick Examples

Rust

use nucleation::UniversalSchematic;

let bytes = std::fs::read("example.litematic")?;
let mut schematic = UniversalSchematic::new("my_schematic");
schematic.load_from_data(&bytes)?;
println!("{:?}", schematic.get_info());

📖 → More in examples/rust.md


JavaScript (WASM)

import { SchematicParser } from "nucleation";

const bytes = await fetch("example.litematic").then(r => r.arrayBuffer());
const parser = new SchematicParser();
await parser.fromData(new Uint8Array(bytes));

console.log(parser.getDimensions());

📖 → More in examples/wasm.md


Python

from nucleation import Schematic

with open("example.litematic", "rb") as f:
    data = f.read()

schem = Schematic("my_schematic")
schem.load_from_bytes(data)

print(schem.get_info())

📖 → More in examples/python.md


FFI (PHP/C)

#include "nucleation.h"

SchematicHandle* handle = schematic_new("MySchem");
schematic_load_data(handle, data_ptr, data_len);

CSchematicInfo info;
schematic_get_info(handle, &info);
printf("Size: %dx%dx%d\n", info.width, info.height, info.depth);

schematic_free(handle);

📖 → More in examples/ffi.md


🔧 Development

# Build the Rust core
cargo build --release

# Build WASM module
./build-wasm.sh

# Build Python bindings locally
maturin develop --features python

# Build FFI libs
./build-ffi.sh

📚 Submodules & Bindings

Rust

JavaScript/TypeScript

Python

FFI (C/PHP)


⚖️ License

Licensed under the GNU AGPL-3.0-only. See LICENSE for full terms.

Made by @Nano112 with ❤️

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nucleation-0.1.38.tar.gz (6.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nucleation-0.1.38-cp312-cp312-manylinux_2_34_x86_64.whl (514.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

Details for the file nucleation-0.1.38.tar.gz.

File metadata

  • Download URL: nucleation-0.1.38.tar.gz
  • Upload date:
  • Size: 6.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.7

File hashes

Hashes for nucleation-0.1.38.tar.gz
Algorithm Hash digest
SHA256 dca4388ceb7b9236ed61d85c35c8c3b3f8f62e47b151c05b73c2a124b1fc3d29
MD5 f2b3b942727f8b3f7a20c4f69c42b310
BLAKE2b-256 d700aa8b2406524aa913e96db1100655cca0d623876d80a1155f32dcabaa9dd3

See more details on using hashes here.

File details

Details for the file nucleation-0.1.38-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for nucleation-0.1.38-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5c7ccebd0414cb9da3ce6dac17760292554ca5c7c6054dd81e894d92badf868f
MD5 676c3037b5a783ac8e48d81c0ebfc6e0
BLAKE2b-256 1b0ed7b2ed2983437b9da16e955d5aadff8f26bdeecd3feb4ad1ea8c2a0d397a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page