Nix's academic essence, re-expressed in Rust + Lisp.
Nix's innovation is a theory, not a language:
- Purely functional package management
- Content-addressed storage (hash of declared inputs → store path)
- Atomic upgrades + rollbacks
- Hermeticity (sandboxed builds)
- Laziness (evaluate only what's needed)
- Composable modules + overlays
- Hermetic flake inputs + outputs
Every one is a type discipline, not a language feature. Nix's DSL is one projection of these types; Lisp + Rust is another.
┌──────────────────────────────────────────────────────────────┐
│ tatara-lisp (authoring) │
│ (defderivation hello …) (defmodule observability …) │
│ (defflake my-system …) (defoverlay add-patches …) │
└──────────────────────────────────────────────────────────────┘
↓ compile_from_sexp (tatara-lisp-derive)
┌──────────────────────────────────────────────────────────────┐
│ tatara-nix (typed IR) │
│ Derivation · StorePath · Module · Overlay · Flake │
└──────────────────────────────────────────────────────────────┘
↓ evaluate
┌──────────────────────────────────────────────────────────────┐
│ sui (pure-Rust evaluator) │
│ lazy semantics · store · build sandbox · cache │
└──────────────────────────────────────────────────────────────┘
↓ attest
┌──────────────────────────────────────────────────────────────┐
│ tatara-core::ConvergenceAttestation (BLAKE3 Merkle) │
└──────────────────────────────────────────────────────────────┘
The core types in this crate — Derivation, StorePath, Module,
Overlay, Flake — all derive TataraDomain, so every one has a Lisp
authoring surface for free. sui (separate crate) is the pure-Rust
evaluator; tatara-nix is the typed IR it consumes.