Installation
Prerequisites
Section titled “Prerequisites”- Rust stable 1.93+ (rustup)
- Python 3 development headers (for PyO3 interop)
- Linux or macOS (Windows planned)
- A C compiler and linker (GCC/Clang + GNU
bfdlinker on Linux)
Building from Source
Section titled “Building from Source”git clone https://github.com/dporkka/nulang.gitcd nulangcargo build --releaseThe release build uses opt-level=3, LTO, and single codegen-unit for maximum performance. A debug build (cargo build) is faster to compile but runs ~10x slower.
Feature Flags
Section titled “Feature Flags”Nulang supports optional features for leaner builds:
# Minimal build (no Python, SQLite, or LSP)cargo build --release --no-default-features
# With WASM backendcargo build --release --features wasm-backend
# All featurescargo build --release --all-features| Feature | Default | Description |
|---|---|---|
python |
On | PyO3 Python interop |
sqlite |
On | libsql/Turso persistence |
lsp |
On | tower-lsp language server |
wasm-backend |
Off | WASM compiler + Wasmtime runtime |
Verifying the Build
Section titled “Verifying the Build”# Run the test suitecargo test
# Start the REPLcargo run -- --repl
# Run a Nulang programcargo run -- examples/hello.nulaSystem-Specific Notes
Section titled “System-Specific Notes”Fedora Linux
Section titled “Fedora Linux”Install Python development headers:
sudo dnf install python3-develThe build.rs script automatically creates a libpythonX.Y.so symlink for PyO3 linking.
Install Python via Homebrew:
brew install python@3.14Next Steps
Section titled “Next Steps”Now that Nulang is installed, follow the Quick Start guide to write your first program.