Download Latest Version wanix_0.3-preview_darwin_amd64.zip (29.0 MB)
Email in envelope

Get an email when there's a new version of WANIX

Home / v0.3-preview
Name Modified Size InfoDownloads / Week
Parent folder
wanix_0.3-preview_linux_arm64.zip 2025-04-25 18.6 MB
wanix_0.3-preview_linux_amd64.zip 2025-04-25 19.2 MB
wanix_0.3-preview_darwin_arm64.zip 2025-04-25 27.5 MB
wanix_0.3-preview_darwin_amd64.zip 2025-04-25 29.0 MB
README.md 2025-04-25 4.0 kB
v0.3-preview source code.tar.gz 2025-04-25 204.5 kB
v0.3-preview source code.zip 2025-04-25 265.0 kB
Totals: 7 Items   94.7 MB 3

The Spirit of Plan 9 in Wasm

  • 📺 Demo Video: Shows all the below and more, plus background
  • ✨ Interactive Demo: Live deployment of default Wanix environment in the browser

This is a preview release for v0.3 which is a major rewrite and redesign inspired by Plan 9. This release is incompatible with v0.2 and many of its features are not yet available on this new platform. Instead, this release focuses on these new features as a foundation for the future:

Plan 9 inspired design
With the original intention to allow exploring Plan 9 ideas on modern platforms, we've ended up with a radically simple architecture around per-process namespaces composed of file service capabilities using similar design patterns to those found in Plan 9.
Single executable toolchain
The wanix executable includes everything needed to produce Wanix environments.
Filesystem is the only API
The Wanix microkernel is now simply a VFS module with several built-in file services exposed via a standard filesystem API. This ends up making the module itself a file service.
Built-in Linux shell
Using the built-in file service primitives, Wanix can bootstrap a Linux-compatible shell based on Busybox. It comes with several helper commands for working with built-in file services.
Tasks and namespaces
The Wanix unit of compute is a task, which is equivalent and compatible with POSIX processes but allows for different execution strategies. Each task has its own "namespace," which is the customizable filesystem exposed to the task.
Core file services
Wanix includes two singleton file services: one to manage tasks (similar to procfs), and one to manage "capabilities" which are user allocated file services. Built-in capabilities include: tarfs, tmpfs, and loopback.
Web module
With future non-browser deployments in mind, all web related file services are packaged in a web module, which is also built-in but not considered core. This module includes these work-in-progress file services:
  • opfs: For working with the OPFS browser storage API
  • dom: For inspecting and manipulating the DOM
  • worker: For managing web workers
  • pickerfs: Capability wrapping the window.showDirectoryPicker() method (not available yet in Safari and Firefox)
  • ws: Capability for working with WebSocket connections
  • sw: For configuring the service worker, which is used by the system now to cache all resources needed to run Wanix allowing offline usage, as well as exposing virtual URLs to the root namespace.
Filesystem toolkit for Go
The Wanix VFS and file services are built around a general purpose Go package for building and working with filesystems based on the io/fs package and API of the standard library. This package can be used entirely independent of Wanix for building FUSE filesystems and network file servers (9P, etc).

Be sure to watch the demo video linked above for background and example usage. We're working on documenting the roadmap to v0.3 in this milestone. Special thanks to @taramk and @jpf!

Full Changelog: https://github.com/tractordev/wanix/commits/v0.3-preview

Source: README.md, updated 2025-04-25