# nono
Capability-based sandboxing library using Landlock (Linux) and Seatbelt (macOS).
## Overview
nono provides OS-enforced sandboxing where unauthorized operations are structurally impossible. Once a sandbox is applied, there is no API to expand permissions - the kernel enforces all restrictions.
## Installation
```toml
[dependencies]
nono = "0.1"
```
## Usage
```rust
use nono::{CapabilitySet, Sandbox};
// Build a capability set
let mut caps = CapabilitySet::new();
caps.allow_read("/path/to/read")?;
caps.allow_write("/path/to/write")?;
caps.allow_execute("/usr/bin/ls")?;
// Apply the sandbox (irreversible)
Sandbox::apply(&caps)?;
// All subsequent operations are restricted to granted capabilities
```
## Features
- **Landlock** (Linux 5.13+) - Filesystem access control
- **Seatbelt** (macOS) - Filesystem and network restrictions
- **No escape hatch** - Once applied, restrictions cannot be lifted
- **Child process inheritance** - All spawned processes inherit restrictions
## Platform Support
| Linux | Landlock | Kernel 5.13+ |
| macOS | Seatbelt | 10.5+ |
## Documentation
- [API Documentation](https://docs.rs/nono)
- [Project Documentation](https://docs.nono.sh)
## License
Apache-2.0