Understand the nono Workspace Architecture
mainThe nono project is organized into several crates with distinct responsibilities. Understanding these boundaries is critical for both development and integration:
crates/nono(Core Library): The policy-free sandbox primitive. It handles the capability model, path canonicalization, Landlock/Seatbelt application, diagnostics, keystore helpers, host filtering, trust/attestation types, rollback object storage, and supervisor protocol types. It only applies capabilities explicitly supplied by the caller.crates/nono-cli(CLI & Runtime): The layer for user policy, embedded profiles, policy group resolution, protected path handling, execution strategy selection, environment preparation, proxy runtime wiring, credential loading, audit, rollback, trust commands, package/registry workflows, and ephemeral tool isolation.crates/nono-proxy(Network Proxy): A network proxy running outside the child sandbox. It provides controlled loopback access to the sandboxed child and implements CONNECT host filtering, reverse proxy credential injection, external proxy chaining, TLS interception (L7), endpoint filtering, OAuth2, and optional SPIFFE support.bindings/c(nono-ffi): The C ABI wrapper around the core library. Use this for FFI-based integrations, ensuring pointer validity, ownership, and allocation/free symmetry.