rustbox
Open beta · by Orkait

Cloud runtime for
untrusted code.

Execute code from users, agents, and LLMs in kernel-isolated sandboxes. 8 languages, 24ms latency, evidence-backed verdicts.

24msmedian latency
8languages
0escapes
Open Betarequest access
Documentation
terminal

$ curl -X POST https://api.rustbox.orkait.com/api/submit \

-d '{"language":"python","code":"print(42)"}'

"verdict": "AC",

"stdout": "42\n",

"cpu_time": 0.012,

"wall_time": 0.025,

"memory_peak": 3145728,

Already have a key? Head to the playground and paste it.

Product

Two profiles. Both live in open beta.

Select profile per API call or API key configuration. Everything else - limits, verdicts, network policy - is handled for you.

Open Beta

Judge profile

Contest platforms, online judges, homework graders

Memory

256 MB

Wall time

7 s

CPU time

4 s

Processes

10 max

Network completely disabled - no loopback, no DNS
Open Beta

Executor profile

LLM agents, code interpreters, AI coding tools

Memory

2 GB

Wall time

60 s

CPU time

30 s

Processes

64 max

Outbound-only via nftables - inbound blocked

Online judges & contest platforms

Grade submissions from thousands of participants. Judge profile enforces tight memory/CPU caps with zero network access - a fork bomb cannot escape the cgroup.

LLM agent tool execution

Let your AI agent write and run code safely. Executor profile gives it the resources it needs while nftables prevents any outbound surprise calls.

Interactive coding environments

Power code playgrounds, notebook cells, or interview platforms. The REST API returns structured verdicts with stdout, stderr, timing, and memory - everything your UI needs.

8 languagesPythonCC++JavaJavaScriptTypeScriptGoRustSelect profile per API call or API key configuration
Security

Why trust Rustbox with untrusted code.

Every execution runs through all 8 isolation layers in a fixed order. Not configurable. Not optional. Enforced by the Rust compiler at build time.

8 kernel isolation layers

Linux namespaces (PID, mount, network), cgroups v2, seccomp-BPF with 52 rules, capabilities zeroed, credential drop to UID 60000+, and NO_NEW_PRIVS. Raw kernel primitives, one layer per syscall surface.

Compile-time enforced order

A 9-state Rust typestate chain guarantees every layer runs in order on every sandbox. Skip one step and the code does not compile. There is no runtime flag to disable isolation.

Tested against real attacks

22 adversarial vectors: fork bombs, memory bombs, ptrace injection, chroot escapes, seccomp bypasses, privilege escalation, namespace escapes. 181 total tests. 0 escapes.

0

escapes

across 22 adversarial attack vectors

181

total tests

22

attack vectors

11

recovery tests

Every API call gets the same isolation. No tiers. No shortcuts.

Performance

Real numbers. No asterisks.

Benchmarked on sieve(500,000) - a real competitive programming workload, not an empty hello world. Full strict-mode isolation on every run.

Sequential latency

End-to-end, p50 median

Python
36ms
JavaScript
36ms
TypeScript
36ms
C
60ms
C++
72ms
Java
445ms

Throughput

4 concurrent workers

Python
148/s
JavaScript
104/s
TypeScript
83/s
C
77/s
C++
70/s
Java
5/s

Measured on AMD Ryzen 7 9700X, 4 vCPUs, 4 GB RAM, Linux 6.12. Workload: sieve of Eratosthenes (n=500,000). Full strict-mode isolation per execution - namespaces, cgroups, seccomp, capability drop. Java latency is dominated by two JVM startups (javac + java runtime), not sandbox overhead.

API

First result in 60 seconds.

Got a key? Everything below is copy-pasteable. Don't have one yet? Request it and we'll get back to you within 24 hours.

Open Playground
01

Get your API key

Request access and we'll send you a key scoped to 1,000 submissions within 24 hours. No signup form, no dashboard - just a key and you're live.

X-API-Key: rb_live_••••••••••••••••
02

Make your first call

One POST request. Pick a language, send code and stdin. Get back a structured verdict with 24-36ms typical latency.

curl -X POST https://api.rustbox.orkait.com/api/submit \
  -H "X-API-Key: rb_live_..." \
  -H "Content-Type: application/json" \
  -d '{"language":"python","code":"print(42)"}'
03

Read the structured verdict

The response tells you exactly what happened - no guessing. "AC" means clean exit. "TLE", "MLE", "RE" mean exactly what they say.

{
  "verdict":  "AC",
  "stdout":   "42\n",
  "cpu_time": 0.012,
  "wall_time": 0.025,
  "memory_peak": 3145728
}

Verdicts

Pure kernel evidence. No guessing.

ACAccepted
RERuntime Error
TLETime Limit Exceeded
MLEMemory Limit Exceeded
SIGSignaled
IEInternal Error

Get your API key

Request access and we'll send you a beta key with 1,000 free submissions within 24 hours. No setup required.

1,000 submissions · 30 days · no credit card

Beta includes

1,000

submissions

260+

req/s peak

8

languages

30 day

validity