Generated by GPT-5-mini| Nix (package manager) | |
|---|---|
| Name | Nix |
| Developer | Nixpkgs contributors |
| Released | 2003 |
| Programming language | C, Bash, Nix expression language |
| Operating system | Unix-like |
| License | LGPL |
Nix (package manager) is a declarative, purely functional package manager created to provide reproducible builds, atomic upgrades, and precise dependency isolation. It originated from research into build reproducibility and functional programming, and has been used to manage software on desktops, servers, and continuous integration systems. Nix influences and integrates with projects in the open source ecosystem and academic research on software deployment.
Nix was developed beginning in 2003 by researchers and engineers associated with institutions such as Erlang/OTP contributors, the University of Cambridge, and later driven by contributors connected to organizations like Google, Microsoft, Amazon (company), and the European Research Council. Early influences included work on Make (software), Debian, and functional languages such as Haskell (programming language). The project matured alongside infrastructure advances at entities like Amazon Web Services and research groups at MIT and ETH Zurich, leading to wider adoption in technology companies including Netflix and Target Corporation.
Nix uses a content-addressed, immutable store inspired by ideas from Concurrent Versions System and Git. Its core comprises a build engine, package database, and a domain-specific language, with semantics related to Lambda calculus and Functional programming. The Nix store organizes packages by cryptographic hashes, a concept resonant with designs from Content-addressable storage systems used at Apple Inc. and Google. Nix's builder interacts with operating system facilities found in Linux kernel distributions and runtime components similar to those in systemd and Docker.
Nix implements "purely functional" package management: build outputs are deterministic functions of inputs, echoing theoretical models from Alonzo Church and practical systems like GNU Guix and Guix System. Derivations in Nix are described by a domain-specific language influenced by Make (software), Scheme (programming language), and Haskell (programming language). The approach contrasts with package managers such as RPM Package Manager, Debian package management system, and Homebrew (package manager) by emphasizing immutability and content hashing similar to IPFS and Coda (file system) research.
Nix underpins the Linux distribution NixOS and has spawned related initiatives, including configuration management and deployment tools used by organizations like Facebook and Red Hat. Nix integrates conceptually with container ecosystems exemplified by Docker and orchestration platforms such as Kubernetes and Apache Mesos. Adjacent projects and tooling draw parallels with Ansible (software), Puppet (software), and Chef (software), while research collaborations have occurred with groups at Stanford University and UC Berkeley.
Users write Nix expressions to declare packages and environments, an approach similar in intent to declarative systems like Terraform and Bazel (software). Common workflows include per-user environments, system-wide channels, and ephemeral shells used in continuous integration pipelines at organizations like GitHub and GitLab. Developers benefiting from Nix often integrate with build systems such as Bazel (software), test infrastructures at Travis CI and CircleCI, and version control platforms like GitLab and Bitbucket.
Nix's reproducibility model supports verifiable builds and reproducible environments, goals shared with initiatives like the Reproducible Builds project and supply-chain security efforts at National Institute of Standards and Technology and industry partners including IBM and Intel. The immutability and hashing model reduces certain classes of dependency confusion incidents highlighted in reports involving SolarWinds and other supply-chain compromises. Nix's sandboxing and derivation isolation techniques draw on kernel features in Linux kernel and security models discussed in OpenBSD and SELinux contexts.
Nix has a vibrant community of contributors, foundations, and corporate users including teams at Target Corporation, Etsy, Tweag I/O, and various academic labs at University of Cambridge and ETH Zurich. Documentation and ecosystem growth have been supported by conferences and meetups alongside events like FOSDEM, Linux Foundation summits, and academic workshops at ICFP and PLDI. The project's development is coordinated through distributed version control on platforms like GitHub and collaboration mirrors similar to those used by Linux kernel contributors.
Category:Package managers