Welcome to nix.dev#
nix.dev is the home of official documentation for the Nix ecosystem. It is maintained by the Nix documentation team.
If you’re new here, install Nix and begin your journey with our tutorial series!
What is Nix?#
Nix allows treating Unix processes as pure functions over file systems.
It is the basis of a growing ecosystem of tools that facilitate repeatable results in software development:
Nixpkgs is the largest, most up-to-date software repository in the world.
NixOS is a Linux distribution that can be configured fully declaratively.
What can you do with the Nix ecosystem?#
Build executables with Nix
Develop software using libraries or tools from Nixpkgs
Configure services and deploy them to machines running NixOS
What else can you do with Nix?#
The following list illustrates some examples of what can be achieved with the Nix ecosystem:
Easy installation of software over URLs and from source code
Easy transfer of software environments between computers
Avoidance of version conflicts with already installed software
Strong support for software auditability
Remote builds
Remote deployments
Atomic upgrades and rollbacks
Who is Nix for?#
Nix is a tool for people who both need computers to do exactly as intended, repeatably, far into the future, and who are familiar with command line interfaces and plain text editors.
You don’t have to be a professional software developer and you don’t need formal education in informatics to greatly benefit from Nix. However, experience with complex software projects and knowing some informatics helps with appreciating why it’s useful and how it works. And it helps with learning how to use it effectively and how to make improvements.
You probably won’t want to go back to a world without Nix if you’re a:
Full-stack or back-end developer
Test engineer
Embedded systems developer
DevOps engineer
System administrator
Data scientist
Natural scientist
Student of a technical field
Open source software enthusiast