Skip to content

v0.1.0

Latest

Choose a tag to compare

@GianIac GianIac released this 15 Jun 18:04
· 3 commits to main since this release

This is v0.1.0 !!!


The journey

Five alphas built the foundation.
One release candidate hardened it.

v0.1.0 is the answer to a question that was asked before a single line of code was written:

but will anyone care about this stuff?

Today, the answer is yes :)
Thanks to all the crazy people who took an interest in numax and found it to be an interesting project!!


What's in here

Everything from v0.1.0-rc.1 - which means everything from all five alphas - is included. Here is what v0.1.0 represents as a whole:

Runtime core

  • Wasmtime execution engine with strict sandboxing and WASI preview1
  • Embedded key/value store (sled) - no external database, no orchestrator
  • Module compilation cache - same WASM bytes compiled once per runtime instance

Networking

  • TCP networking with mTLS (TLS 1.3), NodeID derived from hash(cert.public_key), peer allowlist
  • Automatic reconnect with exponential backoff
  • Peer health tracking: suspect -> dead -> healthy
  • Periodic anti-entropy (PullSince) to recover missed ops after reconnects
  • bincode as the default wire format (~50% smaller, ~10x faster than JSON)
  • Protocol version negotiation - mismatches rejected at handshake
  • Ping/Pong health protocol - health checking over the wire works

CRDT suite (Phases 4-14, complete)

  • GCounter - the proof of concept
  • PNCounter - signed convergence
  • LWW-Register - last-writer-wins with timestamp ordering
  • ORSet - add/remove with unique tags, concurrent add wins
  • LWW-Map - field-level last-writer-wins, independent resolution per key
  • RGA - Replicated Growable Array with deterministic insert ordering and tombstone support

Host API (nx_sdk)

  • nx_sdk::db: get, set, exists, paginated prefix scan
  • nx_sdk::crdt: full suite of six CRDTs
  • nx_sdk::time: time_now, time_monotonic
  • nx_sdk::crypto: random_bytes, hash_sha256, hash_blake3
  • nx_sdk::net: net_node_id, net_peers
  • nx_sdk::sys: env_get, module_id, abort, host_capabilities, event_emit

Observability

  • Structured JSON logging with correlation IDs
  • Prometheus-compatible /metrics endpoint with 10 runtime metrics
  • /health (liveness) and /ready (readiness) endpoints
  • Memory sandboxing enforced - max_memory_bytes wired to wasmtime::StoreLimitsBuilder

Resilience

  • Bounded op deduplication persisted across restart
  • Durable CRDT state and op-log hydration on startup
  • Task Vec cleanup - no unbounded growth in long-running nodes
  • Configurable event channel capacity - no hardcoded queue limits

CLI

  • nx run with sync, TLS, datastore, and observability flags
  • nx run --version
  • --print-* flags for all six CRDTs
  • Graceful shutdown: drain, close, flush

Documentation

  • Complete HOST_API.md
  • Full installation guide for Linux, macOS, and Windows
  • Cookbook with practical recipes
  • CRDT and state documentation
  • Runtime model, WASM execution, gossip protocol, local-first philosophy
  • Quickstart guide with distributed examples

CI

  • Multi-OS: Ubuntu, macOS, Windows
  • Load gates: single-node throughput, multi-node full-mesh sync (300s), chaos restarts

What this means

v0.1.0 is not a feature list.

It is a runtime that:

  • runs untrusted WASM modules in a memory-sandboxed environment
  • persists state locally without a central server
  • synchronizes that state across peers using mathematically sound convergence
  • reconnects automatically when the network fails
  • tells you exactly what it is doing through structured logs and live metrics
  • exposes a host API that feels like a real host

A moment

numax started as a question and a blank Cargo.toml.

Then came a GCounter. Then a TCP socket. Then mTLS. Then sled. Then reconnects. Then bincode. Then an entire CRDT suite. Then a documentation site. Then a documentation site that actually ships.

This is the beginning of numax !
v0.1.0 is a foundation, and foundations are meant to be built upon.

What is next

v0.1.0 ships today.

The roadmap is already open for what comes next.
If you have ideas, open an issue.
If you want to contribute, the door is open.


Thank you

If you've been following since alpha.1, you've watched this runtime go from a GCounter and a TCP socket to a complete, documented, load-tested, multi-OS runtime with a full CRDT suite and a host API that actually feels like a host.

To @AndyFerns - the first external contributor, who brought C and C++ into the story.
To @sarvesh1327 - who made --version exist.
To everyone who starred, cloned, read the whitepaper, opened an issue, or just gave the idea a chance.

You are the reason v0.1.0 exists and v0.1.0 is the reason what comes next will be possible !!

I hope this project can make people understand that there is still room for a good software and, as I also say in the whitepaper:

in conclusion, I love software and I love Numax.

GianIac