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.