A Nix flake that builds software for WASIX (wasm32-wasix, a POSIX-flavored
extension of WASI run by Wasmer): the LLVM, libc, wasixcc, Rust, and cargo-wasix
toolchains; cross-compiled C/C++, Rust, and Python packages; and webc packages
for the Wasmer registry.
nix develop # shell with wasixcc + cargo-wasix on PATH
nix build .#wasix-sysroot # the per-profile sysroots
# example targets under legacyPackages (the system is explicit):
nix build .#legacyPackages.x86_64-linux.wasmerPackages.git # a CLI
nix build .#legacyPackages.x86_64-linux.wasmerPackages.git.webc # its webc
nix build .#legacyPackages.x86_64-linux.nativePackages.anybuild # native shared recipe
nix build .#legacyPackages.x86_64-linux.nativePackages.wasixcc # the C/C++ driver
nix build .#legacyPackages.x86_64-linux.packagesByProfile.eh.anybuild # WASIX shared recipe
nix build .#legacyPackages.x86_64-linux.packagesByProfile.exnrefEh.zlib # a library
nix build .#legacyPackages.x86_64-linux.pythonWheels.py314.numpy # a wheel
nix build .#legacyPackages.x86_64-linux.pythonRegistry # static wheel index
nix build .#legacyPackages.x86_64-linux.allWasmerPackages # all webcs
nix run .#wasinix -- update --all # bump the source pinsCI builds every package as its own job (.#legacyPackages.<system>.ci, driven
by the wasinix CLI in tools/wasinix). A job's dotted name is its build path.
pkgs/toolchain/ builds the toolchain from source; pkgs/profiles.nix +
pkgs/set/ turn it into five ABI profiles, each a full nixpkgs cross package
set; pkgs/products/ holds product recipes instantiated for both the native
host and WASIX, while pkgs/overlay/ holds WASIX adaptations and small
overrides of nixpkgs packages; pkgs/wasmer/ packages CLIs as webc and tests
them under Wasmer. Details: docs/architecture.md.
| doc | contents |
|---|---|
docs/setup.md |
first-time setup and wasinix doctor |
docs/architecture.md |
how the layers fit together |
docs/c.md |
C/C++ toolchain, profiles, and cross stdenv |
docs/packaging.md |
adding packages: C, CLI/webc, Rust, Python |
docs/registry.md |
publishing, version history, rels, previews |
docs/rust.md |
rust builds, crate patches, cargo registry |
docs/python.md |
CPython, package overlays, and wheels |
docs/building.md |
where builds run, building and checking |
docs/ci.md |
the CI command tree and its surfaces |
docs/python-coverage.md |
python ecosystem coverage status |
docs/style.md |
comments, naming, commits, code norms |
docs/updating.md |
the pin updater |
docs/spot.md |
experimenting without rebuilding the world |
AGENTS.md |
extra rules for agents working here |
WASIX-TODO.md |
known WASIX/toolchain issues and workarounds |