A Nix library for generating NixOS flake configurations with minimal complexity and multiple nixpkgs channel support.
Flake-utils-plus is a Nix library that provides abstractions for generating NixOS flake configurations with minimal complexity. It solves the problem of managing Nix flakes by offering a clean, straightforward approach to handle multiple nixpkgs channels, shared configurations, and module exports.
NixOS users and system administrators who want to manage their system configurations using Nix flakes without dealing with overly complex frameworks.
Developers choose Flake-utils-plus because it offers a simpler alternative to more complex frameworks like DevOS, with clean abstractions for multiple nixpkgs channels, configuration sharing, and easy module exporting while maintaining minimal complexity.
Use Nix flakes without any fluff.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides simple and clean support for multiple nixpkgs references with channel-specific configurations, as demonstrated in the minimal multichannel example, reducing complexity in setups like mixing stable and unstable packages.
Features hostDefaults and channelsConfig to easily share settings across hosts and channels, streamlining maintenance and reducing duplication in multi-host environments.
Includes lib.exportModules, lib.exportOverlays, and lib.exportPackages for consistent exporting of Nix artifacts, enabling cacheable packages across flakes as highlighted in the exporters example.
Comes with pkgs.fup-repl for an improved REPL that loads system scope and nixpkgs libraries, facilitating debugging and development workflows directly from the flake.
Entirely reliant on Nix flakes, making it incompatible with older Nix versions or projects not using flakes, which limits adoption in legacy environments.
For basic single-channel or single-host configurations, the added abstraction layer can introduce unnecessary complexity compared to a straightforward flake.nix, as acknowledged in its design to avoid 'fluff'.
Has a smaller community and fewer third-party integrations compared to established frameworks like DevOS, potentially leading to slower issue resolution and limited resources.
The branching policy uses master for development, requiring users to pin to tags for stability; this can lead to instability if not managed carefully, as noted in the README's warning about release trade-offs.