Tvix – A New Implementation of Nix
Project goals and motivations
- Tvix is a new Nix implementation in Rust, aiming for:
- Full compatibility with nixpkgs.
- Much faster Nix language evaluation.
- First-class support for “import-from-derivation”–style workflows.
- Cleaner separation and protocols between evaluator, builder, and store.
- A builder based on OCI-style containers instead of custom sandboxing.
- Some commenters like the modularization and modernization; others are wary of a container-based builder (especially if it implied Docker).
Readiness and practical use
- Tvix developers explicitly say it is not ready for general use.
- Correctness is not guaranteed; some builtins (e.g.,
fetchTarball) are missing and nixpkgs evaluation can differ. - Recommendation in the thread: use Nix, not Tvix, for now; Tvix is for experimentation and early adopters.
Flakes and feature scope
- Tvix intentionally targets “stable” Nix features and does not implement flakes.
- Tvix developers describe flakes as layering violations and a misfeature; they prefer implementing flake-like behavior as libraries on top, not in the evaluator.
- Others argue this stance should be more clearly advertised, since many newer Nix users care about flakes.
- Some note flakes complicate learning and debugging for beginners, while others still like the tooling they bring.
Security, geopolitics, and trust
- A major subthread focuses on Tvix development happening partly in Moscow.
- Some commenters are uncomfortable, citing risks of state coercion during an ongoing war and the sensitivity of a build system as an attack surface.
- Others counter that security services anywhere can coerce developers, and over-indexing on country-of-origin can fracture open source more than it protects it.
- There is mention that multiple non-Russia-based committers exist, which may provide some oversight, but overall trust is debated.
Platform support and ecosystem impact
- Windows support is “in mind” but not a priority; Rust helps but does not remove all hurdles.
- Some worry about further fragmentation in the Linux/Nix ecosystem; others argue Tvix is a clean restart needed to explore better architectures.
- Tvix preserves the Nix store naming scheme (
hash-name), which some find inconvenient for manual navigation.
Related tools, usage, and misc
- Discussion branches into Nix’s growing use (NixOS, nix-darwin, home-manager, devenv.sh, nix-snapshotter), cross-platform dev, and C/C++ dependency management via Nix.
- Static typing is requested by some; Tvix keeps Nix’s dynamically typed language to maintain compatibility.
- Naming, pronunciation, and a legacy “TVIX” media player trademark are briefly noted.