Skip to Content
📖 New Tutorial released - WASIX with gRPC. Read the full tutorial →

Introducing WASIX

The superset of WASI

Introduction

WASIX is the long term stabilization and support of the existing WASI ABI plus additional non-invasive syscall extensions that complete the missing gaps sufficiently enough to enable real, practical and useful applications to be compiled and used now. It aims to speed up the ecosystem around the WASI so that the Wasm’ification of code bases around the world can really start today!

Features

Networking

WASIX has full support for sockets (socket,bind,connect)
  • IPv4, IPv6
  • UDP, TCP
  • Multicast, Anycast
  • RAW sockets

Multi-threading

Full Support for Efficient Multithreadingenabling applications to better utilize system resources and achieve superior performance.
  • Rayon in Rust
  • pthreads in C

Asynchronous Runtimes Support

Asynchronous polling of Sockets and Files for application responsiveness and performance.

Filesystem Support

WASIX fully supports the POSIX Filesystem API (open,read,write,close) and more.

Browser Support

WASIX compiled programs can directly run in the browser using@wasmer/wasi package

lngjmp & setjmp

WASIX has support for bothlngjmp and setjmp using asyncify.

Subprocesses

WASIX can create and wait for subprocesses using
  • exec
  • wait

Process Forking

WASIX supports bothfork and vfork. Allowing a process to create a copy of itself.

TTY Support

WASIX provides functions to control Terminal I/O.

Runtime Support

WASIX supports the Wasmer runtime, with expectations for more runtimes to join soon. WASIX provides toolchains for Rust and C, including support for Zig.

Just works in WASIX

All the apps you love

Get started with Wasix

You can get started with Wasix by installing the toolchain and trying out the examples. Join the community to get help and share your projects.