A flake-parts module that integrates Cargo projects with Nix using dream2nix for building and development shells.
nix-cargo-integration is a Nix library that simplifies integrating Cargo-based Rust projects with the Nix package manager and build system. It uses dream2nix to handle building Rust packages and setting up development shells, solving the problem of managing Rust dependencies and environments reproducibly within Nix.
Rust developers and Nix users who want to integrate Cargo projects into Nix workflows for reproducible builds, dependency management, and development environments.
Developers choose nix-cargo-integration because it provides a streamlined, opinionated setup with sensible defaults, reducing the complexity of combining Cargo and Nix while leveraging dream2nix for reliable builds and shells.
Library to easily and effortlessly integrate Cargo projects with Nix.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages dream2nix to reliably build Rust packages and set up development shells, ensuring reproducible builds within Nix without manual configuration.
Integrates seamlessly as a flake-parts module, allowing easy addition to existing Nix configurations that use flake-parts, as shown in the installation examples.
Comes with pre-configured settings aimed at compatibility with standard Cargo workflows, reducing the need for extensive manual setup.
Provides tools to generate and handle Cargo.lock files, addressing common evaluation issues in Nix, as detailed in the tips section for git-ignored lockfiles.
Requires adoption of Nix flakes and flake-parts, which may be a barrier for teams using traditional Nix or other build systems.
The CHANGELOG.md documents important, mostly breaking changes, indicating potential instability and migration efforts for users.
For basic Rust projects, the integration adds layers of Nix configuration that might outweigh the benefits of using Cargo alone.