Using Wasix with C
Currenly, Wasix is only supported by the Wasmer runtime. So, you need to install the Wasmer (opens in a new tab) runtime.
wasix-libc
wasix-libc is a C library that provides a subset of the POSIX API for WebAssembly. It is a fork of wasi-libc (opens in a new tab)
Compiling a C program to WASIX
For compiling a C program to WASIX you need two things:
- sysroot, which you can build by making the 
wasi-libclibrary - A compiler, which is available in the 
wasi-sdk(opens in a new tab) binary - A linker, which is also available in the 
wasi-sdk(opens in a new tab) binary 
You also need to export three environment variables:
CC- the compiler to use (wasi-sdk/clang)SYSROOT- the sysroot to use (wasix-libc/sysroot)LLD_PATH- the linker to use (wasi-sdk/lld)
You can also build the examples from wasix-libc by running make in the examples directory. These are a good starting point for learning how to use wasix-libc.
The Makefile provides a good example of how to compile a C program to WASIX.
Running a WASIX binary
wasmer-cli is required to run wasix binaries.
$ wasmer run <path-to-wasm-file>Additional flags
Some wasm files need extra flags that can be provided while running the file
with the runtime. For example, wasmer run --enable-threads --net   ./target/wasix/debug/hello.wasm. Learn more about Wasmer's runtime
flags (opens in a new tab)