About Snix
Snix is a modern Rust re-implementation of the components of the Nix package manager.
Snix modularity & composability allows recombining its parts in novel ways. It also provides library access to Nix data formats and concepts. In the long-run, Snix aims to produce a Nixpkgs-compatible alternative to NixOS/nix with respects to evaluation and building Nix expressions & systems.
Snix still is in its early stages of development. None of our current APIs should be considered stable in any way.
There is no full-featured drop-in replacement for Nix on your machine yet.
Snix already provides a few binaries / tools exposing some usecases, such as:
- A
snix-store
binary, providing access tosnix-[ca]store
- run a gRPC daemon exposing contents to other parties
- import local files or copy store paths into
snix-store
- provide FUSE or virtiofs views into
snix-store
.
nar-bridge
, a Nix HTTP Binary Cache frontend forsnix-store
. It allows Nix to interact withsnix-store
, both to substitute from as well as copy into.snix-boot
, tooling to boot microVMs off ofsnix-store
(using virtiofs)snix-cli
, combining various components together to provide a Nix evaluator CLI and REPL.snixbolt
, a version of the Snix evaluator running in your browser (using WASM)
Early adopters are encouraged to use (and extend) Snix to solve their own usecases. If you’re missing certain functionality, or run into bugs, reach out , so we can coordinate how to add/fix it.
Snix is developed as a GPLv3-licensed free software project with source code available on our own Forgejo instance.