Compiler backends
Keeping Singlepass linear and LLVM fast on huge modules.
Drag to turn, click a layer to enter.
Our work runs from compiling down to machine code all the way up to a globally distributed cloud, and we solve many hard problems along the way.
WebAssembly can't express a system call, so a module acts through imports, and WASIX exposes only what you granted. A miscompile or a bad host call is a sandbox bug.
All three run untrusted code, and costs follow from where the boundary sits.
Every guest stores and boots its own kernel, drivers and userland.
Programs make real system calls into a kernel shared by every container.
Software has to be compiled for WASIX, and then one file runs on x86-64, ARM and browsers with no guest kernel.
Wasmer compiles WebAssembly with three backends. Singlepass walks each function once with no IR, so compile time stays linear. Cranelift and LLVM take longer and emit faster code.
dlopen.WebC, our package format, is inspired by language package managers and Docker images. An index at the front records each file's byte range and SHA-256, so Wasmer mounts volumes without unpacking. Browse the registry
Edge is our cloud, with the same Rust binary on every node. Nodes share only the package store, so a partitioned node keeps serving. InstaBoot restores warm-up snapshots on cold starts. Edge docs
When CPython misbehaves, the cause might be our port, the libc, a host call or a backend, and we can fix any of them.
If you know kernels you'll recognize most of WASIX, except the kernel here is a Rust library.
Keeping Singlepass linear and LLVM fast on huge modules.
Fork, exec and signals without a copyable stack.
Updating every thread's function table on dlopen.
Capturing every thread's stack, memory, files and sockets.
Futexes, epoll and mmap against the Linux Test Project.
LLVM, Rust and Go forks, and crates like tokio.
Porting Node onto N-API and running Django and WordPress.
WASIX host code in a tab, TCP through WISP.
WebC's manifest, dependency resolution and the Rust backend.
Snapshot distribution, private networking, volumes and databases.
Much of this is open source, with the runtime and WASIX in wasmerio/wasmer (start with proc_fork.rs), the toolchain in wasix-org and Edge.js in wasmerio/edgejs.
We're a small startup, so we look for these six things in everyone we hire.
Compile once for WASIX, and the package runs on your laptop, in a browser or on Edge.
Or email hiring@wasmer.io with what you've built.