We at Determinate Systems are greatly pleased to announce the release of nix serve command for experimenting locally with Nix binary caches, a newly lazy fetchTarball function, support for Buildkite auth, and the usual round of bug fixes.
CNSA 1.0 and 2.0 signing algorithm support
Determinate Nix now supports a subset of Commercial National Security Algorithm (CNSA) 1.0 and 2.0 signature algorithms:
ecdsa-p384ml-dsa-44ml-dsa-65ml-dsa-87
ML-DSA is a post-quantum cryptography signature scheme.
Support for these algorithms is currently gated behind the experimental cnsa feature, which you can enable in your
extra-experimental-features = cnsaWhen enabled, you can use these signatures by running nix key generate-secret and specifying the algorithm using the --key-type option.
Here’s an example command:
nix key generate-secret \ --key-type ml-dsa-87 \ --key-name my-cache.example.org-1Otherwise, everything works the same as the existing ed25519 (libsodium) signatures, except that they produce larger keys/signatures (especially ML-DSA).
We’ve also added these commands to Determinate Nix:
These may be useful if you want to use the keys with the OpenSSL CLI.
Relevant pull request
nix serve command
Determinate Nix now offers a nix serve command that provides a built-in binary cache server, similar to the nix-serve tool.
It’s mostly intended for testing and to serve as a reference implementation for
Relevant pull request
Lazy fetchTarball
The fetchTarball built-in function is now lazy, which can prevent unnecessary copying of source trees into the Nix store in some cases.
Relevant pull requests
Buildkite authentication support
For more on Determinate Systems and Buildkite, check out our guide to
Various bug fixes
As usual, version 3.21.0 includes a wide range of bug fixes and developer interface improvements.
How to get Determinate Nix
If you already have
sudo determinate-nixd upgradeIf you don’t yet have Determinate Nix installed, you can upgrade or migrate to Determinate Nix on macOS using our graphical installer:
Install Determinate Nix on macOS now 🍎
With support for Apple Silicon (aarch64-darwin)
On Linux:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \ sh -s -- install --determinateOn NixOS, we recommend using our
On GitHub Actions:
on: pull_request: workflow_dispatch: push: branches: - main
jobs: nix-ci: runs-on: ubuntu-latest # Include this block to log in to FlakeHub and access private flakes permissions: id-token: write contents: read steps: - uses: actions/checkout@v6 - uses: DeterminateSystems/flake-checker-action@main - uses: DeterminateSystems/determinate-nix-action@v3 - uses: DeterminateSystems/flakehub-cache-action@v3 - run: nix flake checkIn Amazon Web Services:
data "aws_ami" "detsys_nixos" { most_recent = true owners = ["535002876703"] # Commercial # owners = ["579351485434"] # GovCloud # owners = ["129194717446"] # European Sovereign Cloud
filter { name = "name" values = ["determinate/nixos/epoch-1/*"] }
filter { name = "architecture" values = ["x86_64"] }}