Skip to content

Releases: userland-run/nano

Release list

v0.2.0

Choose a tag to compare

@drietsch drietsch released this 30 Jun 09:13

NanoVM v0.2.0 — the release where NanoVM grows from a single emulator into the userland.run platform.

Highlights

  • Slim by default. make build now produces a ~2.4 MB BusyBox-only nano.wasm; Node.js and the
    dev toolchain are no longer embedded — they install on demand from the signed
    app catalog. make build-full still produces the
    fully-bundled (~68 MB) wasm for offline use.
  • In-VM terminal & tty. Real line discipline, ppoll, interactive shells, signal delivery
    (SIGINT / SIGWINCH / SIGTERM), a scrollback ring with scroll-aware snapshots, and OPOST/ONLCR on
    console writes — termios is now preserved across execve. Powers the new
    <nano-terminal> web component.
  • Boa scripting layer. A separate boa.wasm engine + loader/bridge lets the host drive the VM
    with sandboxed, capability-scoped JavaScript — no guest process, no V8 boot.
  • Catalog runtime. Catalog-installed BusyBox/Node/app binaries execute from the guest VFS via
    execve, honoring file mode; a generic snapshotApp makes nodeSnapshot a thin wrapper so the
    SDK's provision() can warm + run any recipe.
  • Networking. Tier-1 host-fetch bridge via the /dev/__net__ sentinel.
  • Syscalls. pwrite64 / pwritev, riscv_flush_icache, and io_uring_setup added.
  • Performance. Loop-top block-dispatch code cache (~13% on compute) and skipping re-zeroing of
    virgin memory on brk/mmap growth.
  • Container. Adaptive run-loop yield (fixes background-tab throttling), a Content-Length-aware
    serve bridge, and synchronous FS + introspection APIs.
  • Licensing. Dual-licensed AGPL-3.0-only OR LicenseRef-UEL with NOTICE + CLA.

Documentation

Full docs are now hosted at https://userland.run/docs/ (getting started, CLI & JS API,
syscalls, host API, networking, architecture, performance, build, and the complete SDK reference).

Part of userland.run

NanoVM is the emulator core; the ecosystem around it:
sdk ·
terminal ·
catalog ·
website/docs.

Assets

Prebuilt WebAssembly modules (built from this tag's tree):

File Size Use
nano.wasm ~2.4 MB Default slim runtime (BusyBox; Node/tools via the catalog)
nano.min.wasm ~2.4 MB Slim runtime without the trace feature
nano.trace.wasm ~2.4 MB Slim runtime + syscall trace (catalog conformance)
nano.busybox.wasm ~3.2 MB BusyBox bundled in-wasm (terminal/demo)
boa.wasm ~2.8 MB Boa scripting engine

Full changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@drietsch drietsch released this 24 Feb 15:00

Initial release with bundled WASM binary