Cloud runtime for
untrusted code.
Execute code from users, agents, and LLMs in kernel-isolated sandboxes. 8 languages, 24ms latency, evidence-backed verdicts.
$ 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.
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.
Judge profile
Contest platforms, online judges, homework graders
Memory
256 MB
Wall time
7 s
CPU time
4 s
Processes
10 max
Executor profile
LLM agents, code interpreters, AI coding tools
Memory
2 GB
Wall time
60 s
CPU time
30 s
Processes
64 max
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.
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.
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
Throughput
4 concurrent workers
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.
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.
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_••••••••••••••••
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)"}'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.
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