Nixtamal is my first serious OCaml project release, now at verison 1.1.4. It was created as a reaction to the lack of features I wanted from its “competitors” niv & npins while additionally covering features Nix flakes never could support given it’s rigid design philosophy which has more drawbacks than folks initially realize. I have been using it on all projects for a couple months now & had at least a couple folks I didn’t know prior try it out providing feedback & bug reports.
Key features:
- Automate the manual work of input pinning for dependency management
- Allow easy ways to lock & refresh those inputs
- Declarative KDL manifest file over imperative CLI flags
- Host, forge, VCS-agnostic
- Choose eval time fetchers (builtins) or build time fetchers (Nixpkgs, default) — which opens up fetching now-supported Darcs, Pijul, & Fossil
- Supports mirrors (on kinds that support mirrors)
- Override hash algorithm on a per-project & per-input basis — including BLAKE3 support (which does require enabling
blake3-hashesto opt in) - Custom freshness commands (avoid refetching massive inputs just to check the hash hasn’t changed)
- No experimental Nix features required (flakes)
Outside the homepage, it would be worth checking the FAQs if any whats or whys come up.