Tvix: We are rewriting Nix

Tvix: We are rewriting Nix


Nix-related development is so chaotic, active, and divergent— very, very much ESR’s bazaar. It’s cool to see Nix inspire so many developers to create new projects.

The Tvix architecture is designed to be modular: It should be possible to write an evaluator that plugs in the Guile language (for compatibility with GNU Guix), to use arbitrary builders, and to replace the store implementation.

I love the idea of mixing and matching between different package management collections from functional package managers that all work with the same basic paradigm and keep the same fundamental promises about immutability, atomicity, etc. Not sure if this is in the future, but I kinda like the idea of a Nix implementation that makes a point of playing nice with Guix, whatever that ends up really meaning.

Tvix is not intended to replace Nix, instead we want to improve the ecosystem by offering an alternative, fast and reliable implementation for Nix features that are in use today.

They say it’s good for a language to have more than one implementation, right? :slight_smile:


Are they doing a cross-platform implementation? This is not clear from the intro.
A huge drawback of the current nix (a blocker, actually) is that it’s limited in what operating systems it runs on. I’d probably use it for builds if it were possible to embrace Windows dev environments, but alas.

Are they doing a cross-platform implementation? This is not clear from the intro.

We’re not doing a platform-specific implementation. In current Nix, the components that prevent e.g. use on Windows are related to the builder and store implementations. In Tvix, we’ll have implementations of those that work on Linux - but an implementation of a store & builder on Windows should be possible (the latter especially if Windows has an OCI-compatible containerisation/sandboxing story already, but even if not an implementation can be written against our builder protocol).


Any updates on this? The subtree in the monorepo hasn’t seen any activity in the last 5 months as far as I can tell… is development happening behind closed doors for now?


take a look, there is activity now!

1 Like

Some context from @tazjin telegram channel:

In other news, those following TVL and Tvix may have noticed that we started publishing our Nix language evaluator today. This process consists of cherry-picking a large number of commits from a private branch into our public Gerrit, and it will likely take some time (O(weeks)) to get all the way through while following our processes.

Nonetheless, I’m happy we’re finally doing something publicly visible with this :slight_smile:
- Винсент Амбо

Hosted by Flying Circus.