Nixtamal: Fulfilling, pure input pinning for Nix

Keys features

  • Automate the manual work of input pinning, allowing to lock & refresh inputs
  • Declaritive KDL manifest file over imperative CLI flags
  • Host, forge, VCS-agnostic
  • Fetchers from Nixpkgs not supported by the builtins (currently Darcs, Pijul)
  • Supports mirrors
  • Override hash algorithm on a per-project & per-input basis — including BLAKE3 support
  • Custom freshness commands No experimental Nix features required
13 Likes

Congratulations! Some audio discussion from when this was WIP, at timestamp 16:04:

1 Like

Very nice niche.

But why is the config file not made with Nix syntax? Or TOML.

1 Like

congrats on the release!

i like the comparison table - it’s kinda cool to see an overview like that.

1 Like

Why KDL for the manifest language?

KDL has a syntax that isn’t a burden to use a configuration language — which helps explain why is very popular for its age. JSON has no comments, one must watch commas, & is verbose with quotations. TOML doesn’t nest well. YAML is overly complex. Nickel is great, but needs to be transformed into one of these others. EDN was considered, but KDL felt better to write – especially the fresh-cmd syntax using $ & | as node names.

Frequently asked questions | Nixtamal

Someone had written KDL parser for opam & I like its ergonomics. There is no Nix parser. I also really dislike TOML’s ergonomics & it wouldn’t fit here.