Research & roadmap
This page is separate from shipped features. The work here is designed, in progress, or proven as a mechanism, not a capability claim. Items move to capabilities & limits only when a probe proves them live.
fork() on V8 isolates — mechanism proven live
Section titled “fork() on V8 isolates — mechanism proven live”Workers has no fork() primitive, so Nimbus built the mechanism and
proved it live on 2026-07-16, using a dedicated probe on production
Cloudflare infrastructure that was deleted afterward. Asyncify unwinds
the running WASM program. A sibling instance of the same module starts at
request time; that is legal because workerd blocks only raw-byte
compilation. The parent’s linear memory is copied, every exported global
including __stack_pointer is restored, and both sides rewind. The
parent resumes with the child pid. The child resumes with 0.
Depth-4 call stacks and grandchild forks stayed byte-identical to the
local model across 2,000 forks in one facet. The negative control skips
the stack-pointer restore and breaks address-space identity
deterministically.
Copying a 16 MiB image on the memory-reuse path takes ~0.5 ms. Full
instantiate+copy is GC-dominated, so the design reuses instances. A
facet-budget overrun is a catchable error, which maps to fork()
returning ENOMEM. M2 is proven live too: fork + exec of a different
wasm image + a real waitpid exit status, vfork and posix_spawn fast
paths, and cross-facet placement (fork+exec+wait ~1.9 ms at 16 MiB).
The mechanism now carries a real program: GNU bash 5.2.37 and BusyBox 1.37.0 coreutils run in a dedicated facet on this fork/pipe/setjmp scheduler (the process fabric). The remaining work is making it the default process model rather than an installable program.
True Unix permissions — shipped
Section titled “True Unix permissions — shipped”The S2 design shipped in July 2026. uid, gid, and mode are durable
inode columns; one credential passes through a single VFS seam; denials
are real EACCES/EPERM through every runtime, with a root bypass and
durable chmod/chown. Security documents
the model and proves a denial in a live sandbox. What remains open is
maturity, not mechanism: enforcement coverage is weeks old, and some
subsystems (package installation, runtime staging) run as a system
credential.
The rest, briefly
Section titled “The rest, briefly”| Work | State |
|---|---|
| One POSIX FD layer (FdTable → OpenFileDescription → backing object) | design — prerequisite for byte-true pipes, WASM stdin, fork’s inherited fds |
| WASI + long-running Python/Ruby on the live fs bridge | specced, in progress |
Inbound sockets for WASM (sock_accept + extension) |
designed, not shipped |
| opencode TUI | serve half solid; attach renders frames on a thin memory margin, still hardening |
| Index-pack CPU headroom (75k+ objects) | continuation-slicing the indexer |
| Full POSIX PTY parity | raw/cooked modes, signals, replay — roadmap |
| Broader Pyodide/gem artifact catalogs, fuller pip/Bundler parity | ongoing |
| Per-session egress policy (deny-by-default outbound) | recognized gap, designed as embedder option |
| Upstream workerd availability issue — some user-space activity can crash the shared process and reset sessions; disks survive, availability only | reproduced, reported, escalating with Cloudflare |