sandbin

sandbin

Runs untrusted code and survives it. No Docker, no root, no VM.

~20ms
cold start
146
syscalls allowed
4
isolation layers
108/108
tests passing

A submission gets its own PID namespace, its own network stack (empty), its own filesystem view, a syscall allowlist, and hard ceilings on memory, CPU and process count. When it misbehaves — and the test suite makes sure it does — it dies, and the host doesn't notice.

Try it

recorded run — clone the repo to execute your own code live

How it's contained

Four independent layers, so no single bug is an escape:

Namespaces

No network, no host filesystem, no host processes, private tmpfs root.

Seccomp

146-syscall allowlist — everything not explicitly needed is denied.

cgroup v2

memory.max, cpu.max, pids.max, cgroup.kill teardown.

rlimits

File size, open descriptors, no core dumps.

Why not Docker

Docker needs a daemon, root or rootless plumbing, and image pulls, and costs hundreds of milliseconds per container. Everything sandbin needs is already in the kernel: namespaces, cgroup v2, seccomp and rlimits. Skipping the container runtime is what buys the 20 ms start and lets the same code run somewhere as small as a phone.

Measured on the same machine, back to back, not estimated:

sandbin
21 ms
Docker
369 ms

17.6× faster, median of 20 runs each. Full methodology and raw samples →

Read more

Architecture →

The cgroup delegation walk, the seccomp policy's clone-flag trick, the hard-timeout backstop.

API →

HTTP endpoint to submit a run, WebSocket protocol to watch it stream.

CLI →

Run code from a terminal, locally with no server or against a remote one.

Languages →

Python, Bash, Node.js, C and Go. How a compiled language gets sandboxed twice.

Benchmarks →

17.6× faster than Docker, measured, plus real concurrency and throughput numbers under load.

Security →

The threat model, stated plainly, and the real bugs found building this.

Testing →

Every case asserts on evidence the guest can't fake, not its own claims.

Run it yourself

git clone https://github.com/ayazdoruck/sandbin.git
cd sandbin
npm install
npm start

Opens the same black-and-white playground at localhost:8080 — pick a language, write your own code, run it live.