Expand description
§Nanobox
A lightweight cross-platform sandbox for secure code execution.
§Platform Support
| Platform | Implementation | Status |
|---|---|---|
| Linux | namespaces, cgroups v2, seccomp | ✅ Full support |
| macOS | sandbox-exec, App Sandbox | ✅ Full support |
| Windows | Job Objects, CreateRestrictedToken | ✅ Full support |
§Quick Start
use nanosandbox::{Sandbox, Permission, MB};
use std::time::Duration;
let sandbox = Sandbox::builder()
.mount("/data/input", "/input", Permission::ReadOnly)
.memory_limit(512 * MB)
.wall_time_limit(Duration::from_secs(30))
.build()
.unwrap();
let result = sandbox.run("python3", &["-c", "print('hello')"]).unwrap();
println!("{}", result.stdout);Re-exports§
pub use error::Result;pub use error::SandboxError;pub use sandbox::Sandbox;pub use builder::SandboxBuilder;pub use builder::Permission;pub use builder::NetworkMode;pub use builder::SeccompProfile;pub use result::ExecutionResult;
Modules§
- builder
- Sandbox builder implementation
- error
- Error types for nanobox
- network
- Network control module
- platform
- Platform abstraction layer
- result
- Execution result types
- sandbox
- Sandbox implementation
Constants§
Functions§
- is_
platform_ supported - Check if the current platform supports sandboxing
- platform_
name - Get the current platform name