---
title: "WASIX"
description: "The power of POSIX. The portability of WebAssembly."
url: "https://wasix.org/"
markdown: "https://wasix.org/.md"
---

# WASIX

WASIX extends WASI with POSIX-style capabilities so existing C, C++, Rust, and Python applications can target WebAssembly. WASIX applications run with a compatible runtime on servers, at the edge, and in browsers.

## Choose your language

- Use **wasixcc** for C and C++ projects.
- Use **cargo-wasix** for Rust projects.
- Use **pip** with the WASIX Python package registry to install Python wheels for WebAssembly.
- Use **wasinix** to build software from its Nix-based package collection.

## Install toolchains and packages

### C / C++: wasixcc

Bring your C and C++ projects to WebAssembly with a Clang-based toolchain.

For macOS and Linux. Installs the compiler, LLVM, and WASIX sysroot.

Install:

```sh
curl -fsSL https://wasix.cc | sh
```

Compile your C program to WebAssembly:

```sh
wasixcc hello.c -o hello.wasm
```

Run it with Wasmer:

```sh
wasmer run hello.wasm
```

Run the WebAssembly module you just compiled.

[Installation guide](https://wasix.org/docs/language-guide/c/installation.md) · [Source repository](https://github.com/wasix-org/wasixcc)

### Rust: cargo-wasix

Build, run, and test your Rust applications with familiar Cargo commands.

Requires Rust installed through rustup. The WASIX toolchain downloads on your first build.

Install:

```sh
cargo install cargo-wasix
```

Build your Rust project for WASIX:

```sh
cargo wasix build --release
```

Run it with Wasmer:

```sh
wasmer run target/wasm32-wasmer-wasi/release/hello-wasix.wasm
```

Replace hello-wasix with your project's binary name. Run from the project directory.

[Installation guide](https://wasix.org/docs/language-guide/rust/installation.md) · [Source repository](https://github.com/wasix-org/cargo-wasix)

### Python: pip

434 packages in the WASIX Python registry. Install prebuilt wheels with familiar pip commands.

Run pip on your host to install wheels for WASIX CPython 3.13. Use a Python version that matches your target interpreter.

Install:

```sh
pip install fastapi \
  --index-url https://python-registry.wasmer.app/all/simple/ \
  --platform wasix_wasm32 \
  --python-version 3.13 \
  --only-binary=:all: \
  --target ./wasix-packages
```

Run with Wasmer and print the installed FastAPI version:

```sh
wasmer run python/python@=3.13.19 \
  --volume ./wasix-packages:/packages \
  --env PYTHONPATH=/packages \
  -- -c "import fastapi; print('FastAPI', fastapi.__version__)"
```

[Installation guide](https://wasix.org/docs/language-guide/python/installation.md) · [Python package registry](https://python-registry.wasmer.app/)

### Run the output

Install the [Wasmer runtime](https://docs.wasmer.io/install), then run the compiled module:

```sh
wasmer run hello.wasm
```

For Cargo projects, see [Rust usage](https://wasix.org/docs/language-guide/rust/usage.md). Capabilities depend on the runtime, target environment, and toolchain configuration; consult the relevant guide and API reference.

## System capabilities

- **[Real networking](https://wasix.org/docs/api-reference/wasix/sock_open.md)**: Connect to the world with TCP and UDP sockets, IPv4, IPv6, and DNS resolution.
- **[Threads that work together](https://wasix.org/docs/api-reference/wasix/thread_spawn.md)**: Bring parallel workloads to Wasm with native threading primitives and synchronization.
- **[The whole process](https://wasix.org/docs/api-reference/wasix/proc_spawn.md)**: Fork processes, launch programs, and wait for results. Keep your application’s workflow intact.
- **[A familiar filesystem](https://wasix.org/docs/api-reference/wasi/path_open.md)**: Read, write, and navigate files with POSIX-style operations, directories, and pipes.
- **[Built for async](https://wasix.org/docs/language-guide/rust/usage.md)**: Poll sockets and files without blocking. Build event-driven applications with runtimes like Tokio.
- **[Keep your tools feeling native](https://wasix.org/docs/explanation/extensions-to-wasi.md)**: Support interactive terminals, signals, and familiar C control flow with setjmp and longjmp.

## Build existing software and install Python packages

[WASIX builds](https://wasix.org/builds.md) lists curated wasinix recipes for command-line tools, libraries, runtimes, and toolchains. The [wasinix repository](https://github.com/wasix-org/wasinix) is the source for recipes; its [build activity](https://github.com/wasix-org/wasinix/actions) provides current results. A listed recipe is not a guarantee that a particular revision builds successfully.

## Documentation for agents

- [Documentation overview](https://wasix.org/docs.md)
- [Supported features](https://wasix.org/docs/explanation/features.md)
- [WASI and WASIX syscall reference](https://wasix.org/docs/api-reference.md)
- [Developer guide](https://wasix.org/docs/developer-guide.md)
- [Complete Markdown page index](https://wasix.org/llms.txt)

Follow Markdown links to read guides without a browser. Code blocks contain commands and examples; select the toolchain and instructions for the user's project before running them.

## Community

- [WASIX on GitHub](https://github.com/wasix-org)
- [Community and governance](https://wasix.org/docs/community-and-governance.md)
- [Discord](https://discord.gg/rWkMNStrEW)

---

[Documentation index](https://wasix.org/llms.txt) · [HTML version](https://wasix.org/)
