Skip to content

Releases: numtide/iets

Release list

iets v0.1.0

Choose a tag to compare

@nixbot-numtide nixbot-numtide released this 11 Oct 20:46
2172bd4

iets is a re-implementation of the Nix client in Rust. It is mostly, but not
fully, compatible with Nix. This is the first release.

Download

One static musl binary per platform. It needs no /nix/store, no
nix-daemon and no shared libraries.

curl -Lo iets https://github.com/numtide/iets/releases/download/v0.1.0/iets-0.1.0-x86_64-linux
chmod +x iets
./iets version

SHA256SUMS lists the checksums. For aarch64-linux, use
iets-0.1.0-aarch64-linux. With Nix, nix run github:numtide/iets/v0.1.0
also works.

What works

  • Evaluation: 1.7–1.9x faster than Nix 2.34.8 on NixOS configs on one core,
    3.1–3.5x on four.
  • iets build, eval-jobs, search, diff, prefetch and
    print-dev-env, in place of nix-build, nix-fast-build, nix-eval-jobs,
    nix search, nix-diff, nurl and nix-direnv.
  • Locked local flakes, with github:, gitlab:, sourcehut: and tarball
    inputs.
  • Builds on a nix-daemon or on a grpc:// builder.
  • Under the classic names (nix-build, nix), what iets does not do falls
    back to the real nix.

Not supported (yet)

Some things iets doesn't do. Under the classic names, most of these fall
back to the real nix, so you mostly won't notice.

  • No nix-daemon, and no store of its own. Builds go to a daemon or a remote
    builder.
  • Flakes have to be local and locked. No registry refs like nixpkgs#hello,
    no remote roots like github:NixOS/nixpkgs#hello, and no nix flake lock. Remote inputs in a flake.lock are fine.
  • fetchGit copies a local working tree, or a local repo at a rev or ref,
    by itself. Remote git fetches and git flake inputs run the real nix.
  • No import-from-derivation (IFD).
  • fetchurl and fetchTarball need a sha256. No fetchClosure or hg
    fetching.
  • Only a handful of nix subcommands are native. The rest run the real
    nix.
  • The library never frees memory, so don't embed it in a long-running
    program yet.
  • Lots of other small details. iets is still very fresh.

The static binaries are Linux only. There is no riscv64 binary: CI
cross-builds it but runs nothing on it.

The full list is in
docs/reference/classic.md
and
docs/reference/divergences.md.
iets is LLM-ware; see the
README
for what that means.