Skip to content
Get Started

Build software that doesn't crash.

Nulang is a distributed, actor-based programming language for durable applications with built-in AI primitives. Ship fault-tolerant systems with less infrastructure plumbing.
counter.nula
// counter.nula — a stateful actor
actor Counter {
  state count: Int = 0

  behavior inc() {
    self.count = self.count + 1
  }
}

fn main() {
  let c = spawn Counter {}
  c ! inc()
}
1,500+
Tests passing
Core language suite
3
Backends
Bytecode · Native · WASM
Per-actor
Garbage collection
No stop-the-world pauses
Actor 1Actor 2Actor 3Actor 4✓ No stop-the-world pauses

Everything you need to ship

A complete language for distributed systems, not a piecemeal collection of tools.

Durable actors

Failures are isolated and restarted automatically. Supervision trees, durable workflows, and saga compensation keep your program running through crashes and restarts.

SSupervisorA1Actor 1A2Actor 2A3Actor 3A4Actor 4

Built-in AI primitives

Perform LLM calls as algebraic effects, wire up agent pipelines, debates, and supervisor teams with episodic, semantic, and procedural memory.

InputLLMMemoryDebateOutputepisodicsemanticprocedural

Location-transparent distribution

Move a service from one node to many without rewriting code. Actors communicate through messages, with automatic clustering and CRDT state replication.

Node 1Node 2Node 3

From zero to running in three commands

Clone, build, and start experimenting. No YAML, no infrastructure.

1

Clone the repo

Get the source from GitHub and enter the project directory.

git clone https://github.com/nulang-org/nulang
2

Build the compiler

Compile the Rust toolchain and runtime in release mode.

cargo build --release
3

Start the REPL

Run nulang interactively and start writing your first actor.

cargo run -- --repl

Durable when you ask for it

Ordinary actors are fast and in-memory. Mark an actor persistent — as in persistent actor Counter — and every external operation (messages, effects, timers) is journaled as part of its execution log. If a persistent actor crashes mid-flight, it replays from the last checkpoint and picks up exactly where it left off.

  • Journaling and checkpointing for persistent actors

  • Saga compensation for safe rollbacks

  • Persistent actors survive crashes and restarts

  • Human approval workflows that wait for days if needed

nulang nula deploy
$ nulang nula build-wasm

Building counter (WASM AOT)...
Compiling src/main.nula to WASM...
WASM AOT build succeeded.

$ nulang nula deploy --wasm

Compiling counter to .nbc...
Compiling counter to .wasm + .cwasm...
Deploying counter to https://deploy.nulang.cloud ...
Deployed! -> https://counter-7f3a9c.nulang.cloud (healthy)

Language Features

Explore the core capabilities that make Nulang different.

Distributed Actors

Location-transparent actors with BEAM/OTP primitives — spawn, link, monitor, supervise. Automatic clustering with gossip membership and CRDT state replication.

Algebraic Effects

Koka-inspired row-polymorphic effects with compile-time checking. Handle, perform, resume — algebraic effect handlers compose freely without monad transformers.

Row-Polymorphic Types

Full Hindley-Milner type inference with row polymorphism for both records and effects. Pony-inspired reference capabilities (iso, trn, ref, val, box, tag) enforced at compile time.

BEAM/OTP Primitives

Supervision trees (one_for_one, one_for_all, rest_for_one, simple_one_for_one), process groups, named registration, and exit trapping — battle-tested fault tolerance patterns.

WASM Backend

Compile to WebAssembly with full MIR→WASM translation. Run in Wasmtime with 4GiB guard pages, SIMD support, and AOT compilation for near-native performance.

AI Runtime

Built-in LLM integration with provider-agnostic API (OpenAI, Ollama). Agent pipelines, debate teams, supervisor hierarchies, and episodic/semantic/procedural memory.

Learn & Contribute

Nulang.org is the home for the language — documentation, tutorials, and the open-source community. When you’re ready to deploy actors to production, head to Nulang Cloud.

Support Nulang

The language is free and open source. Help us keep building the future of durable software.

Ready to ship?

Nulang is open source under the Apache 2.0 license. Get started, contribute on GitHub, or support its ongoing development.