Toolchains & packages
A session ships five toolchains: node, bun, python, ruby, and
clang. Compile and run C without leaving the shell.
$ cat > hello.c <<'EOF'#include <stdio.h>int main(void) { printf("hello from clang on the edge\n"); return 0; }EOF$ clang hello.c -o hello.wasm && ./hello.wasmhello from clang on the edgenode and bun run on workerd’s nodejs_compat V8 with Nimbus shims for
fs, child_process, HTTP, and streams. They are not the upstream Node or
Bun binaries. python is Pyodide CPython 3.13.
ruby is ruby.wasm 3.3. clang is LLVM 8 with a modern wasi-libc sysroot.
It compiles C in the session to wasm32-wasi-nimbus, including multi-file
builds, user headers, and fopen against session files. -pthread is
refused, because that sysroot ships no wasm32-wasip1-threads libc to link
against. Nimbus runs pthread programs correctly. To run one, build it
with a full wasi-sdk and the futex shim from
the design note,
then run the .wasm in a session.
Package installers check the ABI:
npm install zod # ~6 s cold; warm installs 9–16× fasternpx cowsay hello # shebang dispatch + auto-install fallbackpip install flask # pure wheels from PyPI (alpha)gem install rack # pure gems from RubyGems (alpha)npm works against the live registry. Tarballs cache in R2 across sessions,
large dependency trees shard across peer DOs, and a 611-package app installs
in ~165 s cold. pip and gem are alpha. Pure packages work end to end, and
Flask and Rack apps run in preview tabs. Curated source artifacts and declared
Pyodide extension modules also work. Runtimes are packages too. Run python
before installing it and the shell prints the install hint.
The terminal below asks for a runtime that is not installed, installs it
with nimbus install, and opens the CPython REPL it just fetched. The
install pulls ~19 MiB of Pyodide from the content-addressed cache, usually
seconds, up to a minute cold.
Live sandbox — connecting…
Native artifacts do not work. Manylinux wheels, native gems, .node
addons, and ELF files fail before import with an exact ABI diagnostic.