Generate Nix packages from URLs with automatic hash prefetching, dependency inference, and license detection.
nix-init is a command-line tool that automates the creation of Nix package definitions from source URLs. It streamlines the packaging process for Nix users by handling tedious tasks like fetching hashes and detecting dependencies, reducing manual effort and potential errors.
Nix package maintainers and developers who need to create or update Nix package definitions, particularly for Rust, Go, and Python projects.
Developers choose nix-init because it automates repetitive packaging tasks like hash prefetching and dependency inference, offers interactive prompts for guided generation, and supports multiple builders and fetchers while remaining configurable for advanced workflows.
Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [maintainer=@figsoda]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses nurl to fetch and include required hashes automatically, with support for cargoHash and vendorHash, eliminating manual hash lookup errors.
Detects dependencies for Rust, Go, and Python projects, generating appropriate build instructions like buildRustPackage or buildGoModule without manual configuration.
Provides user-friendly prompts with fuzzy tab completion, making package generation accessible and reducing the learning curve for new Nix users.
Automatically identifies and includes license information in package metadata, streamlining compliance checks and reducing manual research.
The README explicitly warns that generated packages often won't work without adjustments, limiting out-of-the-box usability and increasing initial effort.
Dependency inference is only available for Rust, Go, and Python; other languages require manual dependency handling, reducing automation for broader use cases.
Using the latest version requires Nix flakes enabled, which may not be standard in all setups and adds complexity for users without flake experience.