Skip to content

mekops-labs/wanted-engine

Repository files navigation

WebAssembly Nanocontainer Technology for Embedded Devices

pipeline status coverage report

CHANGELOG

  • Interpreter: Uses WAMR 2.4.4 in classic interpreted mode (WAMR_BUILD_INTERP=1, no AOT/JIT).
  • Concurrency: Runs multiple isolated threads (wapps).
  • Isolation: Strict memory isolation via WebAssembly; external interactions mediated exclusively through the VFS.
  • Mount-table VFS Router: Plan 9-inspired path routing for devices, network, and process state.
  • Layered TarFS: OCI-compatible filesystem supporting multiple TAR layers with shadowing and whiteouts.

Documentation

Full developer and user documentation lives in docs/:

Architecture

WANTED implements a VFS Router. Path resolution is split into four primary namespaces:

  1. Device Namespace (/dev/): Routes to registered sub-drivers (pipes, stdio, control plane).
  2. Network Namespace (/net/): Routes to the socket driver for TCP/UDP.
  3. Process Namespace (/proc/): Read-only system state and metrics.
  4. Application Space (Root /): TarFS merged read-only OCI layers.
WAPP -> WASI -> VFS ROUTER -> [/dev/ | /net/ | /proc/ | TarFS(/)]

See Architecture for the full conceptual overview.

Build and Run

The environment is standardized via Podman/Docker. Commands are just recipes that run inside the build container (just --list shows them all). On a bare host the root Makefile is a thin wrapper that runs the same recipe in the container — make build is just just build in the image — so either works. Inside the devcontainer or CI, call just directly.

just build           # engine + sheriff supervisor
just wsh             # engine + wsh debug supervisor
just test            # run unit tests
just selftest        # run in-WASM functional suite

See the Quick Start and Testing Guide for details.

NuttX simulator

WANTED runs as a first-class NuttX application.

just nuttx-deps      # init submodules
just nuttx-build     # build the sim
just nuttx-selftest  # run the suite on the sim

See the Platform Guide for sim usage and the hardware roadmap.

Contributing

See CONTRIBUTING.md for code style and commit conventions.

License

WANTED Engine is licensed under the Apache License, Version 2.0. Bundled third-party components retain their own licenses — see NOTICE.

About

WANTED runs multiple WebAssembly applications — wapps — as isolated threads inside one process. A wapp's only interface to the outside world is a virtual filesystem: every device, socket, IPC channel, and control-plane node is a path. It's basically docker for embedded devices. Mirror of https://gitlab.com/mekops/wanted/wanted-engine.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors