Skip to content

zen

zen is a thin kernel resting on three hard dependencies, each owning one job:

WhatHow
N → 1 (merge module contributions)bend lenses
Types (validation + MLTT proofs)bend + nix-effects
Fixpoint (modules read the merged config)ned cycles

Using nix-effects rotation and scoped handlers for submodules, and Ned streams for the config fixed point, the ~100 line kernel unlocks capabilities no other Nix module system has.

  • Actor-like inter-module communication, modules negotiate rather than blindly merge
  • Negotiated merge & stateful reconciliation, merge strategies are first-class
  • MLTT-verified configs, type-checked module evaluation
  • Fast, ~26× faster than lib.evalModules on a 10,000-module benchmark
  • nixpkgs compatibility layer, output parity with lib.evalModules (not a drop-in replacement)

zen is the module-system capstone of the streams stack, it composes bend (merge + types), ned (fixpoint), and nix-effects (handlers) into a single, verifiable evaluation engine.

Source Code Support this project