Overview
Always working development environment.
With Nix every developer will enter a complete and consistent development environment. Stop worrying how to install dependencies for your project.
- complete dependencies
- build sandbox
Under Nix, a build process will only find resources that have been declared explicitly as dependencies. There is no way it can build until everything it needs has been correctly declared. If it builds, you will know you've provided a complete declaration.
The same build process specification is than used to provide development environment. With successful build, we can guarantee that everything needed to build the project is available. Even more, additional development tools can be added to assist the development.
Long are gone the days developers saying: But it works on my machine!
One tool, many languages.
With today's polyglot development environments, each language has its own way of building and testing. Encourage cross-team development by providing a single way of building everything.
- language agnostic
- portable
Keeping the project's installation instructions up to date is a never ending task. Nix allows you to specify your system dependencies alongside your project's dependencies in a declarative way.
Instead of complicated installation instructions with Nix the development environment is always only one command away. And that is without using any Docker or other vitalization.
Either it works or fails - always in the same way.
With Nix there are two results: the code either works or fails always in the same way. This gives you the power to reproduce (and avoid) any build related bugs .
- reproducibility
- transparent source binary model
- nix language
- continuous integration
Trying to keep system dependencies of development environments in sync with continuous integration (CI) is a disaster waiting to happen. Being able to use the same environment locally or anywhere else is putting a developer back in control.
Build instructions are written in Nix language, which allows you to extend or change existing build instruction in any way you wish. This makes Nix a powerful build tool that can be used in both simple and complex projects.
From zero to cloud.
Use the same tool to build one project or even one hundred projects, configure machines and deploy to the cloud.
- cloud images
- docker images
- devops
Use one tool to develop, test and build Amazon EC2, Google Cloud, Azure, Virtualbox, KVM and other images in a declarative way is a DevOps dream.
Forget Dockerfile
and
have a peace of mind with declarative approach Nix gives you. Nix
automatically calculates the optimal layer layout and only includes
software needed.
Nix and Docker is a match made in heaven.
Previous version better? Rollback anytime.
Packages are never overwritten, and old versions are always stored. Rollback to any previous version within milliseconds.
- generations
- garbage collection
- atomic
- nix store
Since Nix never overwrites files in the Nix store, but just adds new versions in different paths, the upgrades are atomic. During an upgrade, there is no time window in which some files exists from the old version and some files from the new version - which would be bad because a program might crash if it's restarted during that period.
And since nothing is overwritten, the old versions are still there after an upgrade. This means that you can rollback to the old version. Rollbacks are very fast: it doesn't involve lots of files having to be restored from copies.
Experiment without fear.
- generations
- nix store
Use tools that allow you to play with different software as you did when the job wasn't waiting for you the next day.
Install new software with no risk of breaking anything down. Nix prevents conflicts not only between multiple development environments, but also with the operating system. Your work environment will stay intact, but allow you to experiment in a safe way.
No need to turn your system upside down just because you want to test some experimental and bleeding edge versions of software.
No surprises. Trust in your deployments.
Surprises only belong to birthdays, not deployments. With Nix there are only two possible outcomes. Your system was successfully upgraded or upgrade did not happen.
- nixos
- atomic
- generations
Nix will never leave your system in an unknown state. It puts you in a complete control. The upgrade to new version of the system is atomic, meaning that there is no point in time where your system could be in a broken state. Some call it magic, Nix users call it the thing that they can not live without.
Contribution is only a Pull request away.
Community is at the core of Nix. Collaboration is encouraged by providing low barrier to contribute and bots to guide contributors through the process.
- community
- contribute
- github
Development of Nix, Nix software collection and NixOS Linux distribution happens on GitHub. To contribute to any of the Nix projects a Pull request can be quickly authored. The bots and community members will guide you further to through the process to ensure quality.