Nixtamal

Fulfilling input pinning for Nix—pinning in ways flakes never can

Automate Input Pinning

Automate the manual work of input pinning for dependency management

Declarative Manifests

Use declarative KDL manifest files over imperative CLI flags

Flexible Fetchers

Choose eval time fetchers (builtins) or build time fetchers (Nixpkgs)

Mirror Support

Supports mirrors for reliable fetching

Ready to try & install?

Installation

From Source

If you don't have Darcs installed, install from Nixpkgs:

nix-env -iA nixpkgs.darcs

Then clone and build:

darcs clone https://darcs.toastal.in.th/nixtamal/stable
cd nixtamal
nix-build

Optionally install as Nix profile:

nix-env -i ./result

Add Overlay

With nixtamal installed, bootstrap to add overlay:

inputs {
  nixtamal {
    darcs {
      repository "https://darcs.toastal.in.th/nixtamal/stable"
      mirrors "https://smeder.ee/~toastal/nixtamal.darcs"
    }
    fresh-cmd {
      $ curl -sL "https://darcs.toastal.in.th/nixtamal/stable/_darcs/weak_hash"
    }
  }
}

For Development

Use pre-release @ next:

inputs {
  nixtamal {
    darcs {
      repository "https://darcs.toastal.in.th/nixtamal/next/"
    }
    fresh-cmd {
      $ curl -sL "https://darcs.toastal.in.th/nixtamal/next/_darcs/weak_hash"
    }
  }
}

Cookbook

Recipes for pinning various inputs with Nixtamal.

Pinning GitHub Inputs

Learn how to pin Microsoft GitHub inputs in Nix.

Pinning GitLab Inputs

Instructions for pinning GitLab inputs.

Using Mirrors

How to use mirrors for reliable fetching.

Hash Algorithms

Set hash algorithm to BLAKE3 for better security.

Documentation

Complete documentation including manpages.

Getting Started

Nixtamal provides a declarative way to manage input pinning for Nix projects.

Community

Join the Nixtamal community for support and contributions.

Contributing

Learn how to contribute to Nixtamal development.

Support

Get help and support from the community.

Discussions

Join community discussions and share your experiences.