A pure and reproducible Nix overlay for binary distributed Rust toolchains with daily auto-updated hashes.
rust-overlay is a Nix overlay that provides pure and reproducible packaging of binary distributed Rust toolchains. It solves the problem of managing Rust toolchains within the Nix ecosystem by pre-fetching all component hashes and automating updates, ensuring builds are deterministic and network-independent.
Nix and NixOS users who need reliable Rust toolchain management, particularly developers working in reproducible build environments or those migrating from the nixpkgs-mozilla Rust overlay.
Developers choose rust-overlay for its pure evaluation (no network access needed), daily auto-updated hashes, compatibility with existing nixpkgs-mozilla interfaces, and additional features like cross-compilation support and rust-toolchain file integration.
Pure and reproducible nix overlay of binary distributed rust toolchains
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All toolchain component hashes are pre-fetched in the repository, eliminating network access during evaluation and ensuring reproducible builds, as emphasized in the README.
Hashes are automatically updated daily via GitHub Actions, keeping toolchains fresh without manual intervention, which maintains reliability.
Supports stable versions back to 1.29.0 and recent nightly/beta versions, with a strategy to prevent repository bloat by purging old nightlies after a year.
Offers classic Nix overlays, Nix Flakes, and non-overlay interfaces, providing flexibility for different Nix workflows, as detailed in the installation section.
Can directly consume existing rust-toolchain files used with rustup, easing migration and integration into projects already using rustup.
Primarily targets x86_64-linux and NixOS unstable; other platforms and nixpkgs channels may work but are not guaranteed, limiting cross-platform use.
Only the overlay/overlays outputs are stable for Nix Flakes; other outputs are at risk, as warned in the README, which can lead to breaking changes.
Nightly versions older than one year are purged to prevent bloat, requiring access via old snapshot tags for older versions, which adds complexity for legacy projects.
Specific rustc git revisions may not always work due to upstream CI purging old artifacts, as noted in the fromRustcRev example, risking build failures.