nono 0.78.0

Capability-based sandboxing library using Landlock (Linux) and Seatbelt (macOS)
Documentation

nono

Capability-based sandboxing library using Landlock (Linux) and Seatbelt (macOS).

Overview

nono provides OS-enforced process level sandboxing. It allows you to restrict filesystem access, network access, and process execution for your application and its child processes.

Installation

[dependencies]
nono = "0.1"

Usage

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_auto(&caps)?;

// All subsequent operations are restricted to granted capabilities

Features

  • Landlock (Linux 5.13+) - Filesystem access control
  • Seatbelt (macOS) - Filesystem and network restrictions
  • Child process inheritance - All spawned processes inherit restrictions and individual policy may be applied to child processes (tool sandboxing)

Platform Support

Platform Mechanism Minimum Version
Linux Landlock Kernel 5.13+
macOS Seatbelt 10.5+

Documentation

License

Apache-2.0