A collection of tools to integrate various programming languages with the Nix ecosystem, including build systems, dependency converters, and toolchain managers.
Key Language Integrations
Python
- poetry2nix: Build Python packages directly from
poetry.lock without a conversion step. - uv2nix: Converts
uv workspaces into pure Nix derivations.
Rust
- crane: Nix library for building Cargo projects with incremental artifact caching.
- fenix: Provides Rust toolchains and
rust-analyzer nightly for Nix. - naersk: Builds Rust packages directly from
Cargo.lock without conversion. - cargo2nix: Provides granular caching and development shells.
Node.js
- Napalm: Supports building npm packages with a lightweight npm registry.
- node2nix: Generates Nix expressions from
package.json or package-lock.json. - npmlock2nix: Generates Nix expressions from
package-lock.json (in-memory) for web projects.
Haskell
- cabal2nix: Converts a Cabal file into a Nix build expression.
- haskell.nix: An alternative Haskell infrastructure for Nixpkgs.
- haskell-flake: A
flake-parts Nix module for Haskell development.
Other Languages
- Clojure:
clj-nix (helper functions). - Crystal:
crystal2nix (converts shard.lock). - Elixir:
deps_nix (converts Mix dependencies). - Elm:
elm2nix (converts elm.json). - OCaml:
opam2nix (generates expressions from opam packages). - PHP:
composer2nix, composer-plugin-nixify, and composition-c4 for Composer integration. - Ruby:
Bundix and ruby-nix for Bundler integration. - Zig:
zig2nix (flake for packaging) and zon2nix (converts build.zig.zon).