Nix is a package manager providing a number of unique features to automate deployments in a reliable and reproducible way. It serves as the basis of the NixOS Linux distribution (that can be automatically installed from a single declarative specification), as well as a number of additional deployment solutions, such as NixOps, that deploys virtual machines in the cloud and Hydra: the Nix-based continuous integration server. Although Nix offers all kinds of deployment benefits, integration with language-specific package managers that also do dependency management, such as the NPM package manager, is problematic as they conflict with Nix's reliability properties. In this presentation, I will show node2nix
, a tool that automatically generates Nix expressions (build recipes) from
an NPM package's package.json
configuration file, allowing users to deploy NPM packages with the Nix package manger alongside other types of packages (e.g. Autotools, Perl, Python, ...) that constitute a large complex system.