A flake-parts Nix module that simplifies Haskell development, packaging, and deployment with Nix flakes.
haskell-flake is a flake-parts Nix module designed to simplify Haskell development, packaging, and deployment using Nix flakes. It provides a lightweight and modular way to integrate Haskell projects into Nix-based workflows, automatically detecting Cabal files and configuring development environments. The project aims to reduce the complexity often associated with Haskell-Nix integration.
Haskell developers who use Nix and Cabal for project management and want a streamlined, modern approach to setting up development environments and packaging with Nix flakes.
Developers choose haskell-flake because it offers a simpler and more integrated experience compared to other Haskell-Nix methods, leveraging flake-parts for modular configuration and reducing boilerplate. Its automatic project detection and easy customization make it a practical choice for both single and multi-package Haskell projects.
A flake-parts Nix module for Haskell development
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Scans for .cabal or cabal.project files to automatically configure the Haskell project, reducing manual setup as highlighted in the README's key features.
Integrates with flake-parts to minimize boilerplate in flake.nix, providing sensible defaults and easy customization options, making Nix flakes more accessible.
Generates development shells with Haskell Language Server (HLS) and custom native build inputs, streamlining environment setup for efficient coding.
Allows adding packages directly from Hackage with version pinning in the flake configuration, simplifying dependency management without external tools.
The README explicitly states it only supports Cabal, so projects using other build tools like Stack cannot benefit, limiting its applicability.
Requires familiarity with Nix flakes and flake-parts, which adds complexity for developers new to these technologies, despite the simplification.
Documentation is hosted externally on community.flake.parts, which might lead to fragmentation or delays in updates compared to integrated docs.