Nix ecosystem: Difference between revisions
imported>Blitz Update nixbuild info |
imported>Vater mNo edit summary |
||
Line 1: | Line 1: | ||
The ''Nix Ecosystem'' is a collection of technologies designed to reproducibly build and declaratively configure and manage packages and systems as well as their dependencies. It achieves this by translating the functional paradigm from the program to the system domain by utilizing a dynamic, functional and lazy DSL called the [[Nix Expression Language]] for specifying reproducible builds. | The '''Nix Ecosystem''' is a collection of technologies designed to reproducibly build and declaratively configure and manage packages and systems as well as their dependencies. It achieves this by translating the functional paradigm from the program to the system domain by utilizing a dynamic, functional and lazy DSL called the [[Nix Expression Language]] for specifying reproducible builds. | ||
== | == Software == | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Core Components of the Nix Ecosystem | |+ Core Components of the Nix Ecosystem | ||
|- | |- | ||
! Component | |||
! Manual | |||
! Description | |||
! Use | |||
! License | |||
|- | |- | ||
| [[Nix Package Manager | | [[Nix Package Manager]] | ||
| [https://nixos.org/nix/manual/ Nix Manual] | | [https://nixos.org/nix/manual/ Nix Manual] | ||
| A package manager that parses Nix expressions specifying reproducible build, putting the result in a store address with a hash of the dependency tree, sidestepping dependency hell and supporting multiversion installs and rollbacks. | | A package manager that parses Nix expressions specifying reproducible build, putting the result in a store address with a hash of the dependency tree, sidestepping dependency hell and supporting multiversion installs and rollbacks. | ||
Line 19: | Line 19: | ||
|- | |- | ||
| [[NixOS]] | | [[NixOS]] | ||
| | | [https://nixos.org/nixos/manual/ NixOS Manual] | ||
| A Linux distribution with ''all'' components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks. | | A Linux distribution with ''all'' components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks. | ||
| Declaratively configure desktops, servers & clusters | | Declaratively configure desktops, servers & clusters | ||
Line 25: | Line 25: | ||
|- | |- | ||
| [[Nixpkgs]] | | [[Nixpkgs]] | ||
| | | [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual] | ||
| The largest community maintained Nix package and NixOS module repository; standard releases of NixOS are hosted here. | | The largest community maintained Nix package and NixOS module repository; standard releases of NixOS are hosted here. | ||
| | | Share Nix packages & NixOS modules | ||
| MIT | | MIT | ||
|- | |- | ||
Line 39: | Line 39: | ||
| [https://nixos.org/hydra/manual/ Hydra Manual] | | [https://nixos.org/hydra/manual/ Hydra Manual] | ||
| A Nix based continuous build system. | | A Nix based continuous build system. | ||
| | | CI build farms | ||
| GPL-3.0 | | GPL-3.0 | ||
|} | |} | ||
Line 45: | Line 45: | ||
In addition there are many other [[applications]] developed by the Nix community, utilizing and supporting these core technologies. | In addition there are many other [[applications]] developed by the Nix community, utilizing and supporting these core technologies. | ||
<!-- | |||
[[File:Nixos-stack2.png|center|link=]] | [[File:Nixos-stack2.png|center|link=]] | ||
!--> | |||
{| class=wikitable style="margin-left: auto; margin-right: auto; border: none;" | |||
|- | |||
| | |||
{| style="margin-left: auto; margin-right: auto; border: none;" | |||
! [[NixOps]] | |||
|- | |||
| Deploy and manage large numbers of NixOS machines. | |||
|} | |||
| | |||
|- | |||
| | |||
{| style="margin-left: auto; margin-right: auto; border: none;" | |||
! [[NixOS]] | |||
|- | |||
| An OS and configuration system build on Nixpkgs. | |||
|} | |||
| | |||
|- | |||
| | |||
{| style="margin-left: auto; margin-right: auto; border: none;" | |||
! [[Nixpkgs]] | |||
|- | |||
| A large, community-maintained repository of packages. | |||
|} | |||
| | |||
{| style="margin-left: auto; margin-right: auto; border: none;" | |||
! [[Hydra]] | |||
|- | |||
| A continuous build system build on Nix. | |||
|} | |||
|- | |||
| colspan=2 | | |||
{| style="margin-left: auto; margin-right: auto; border: none;" | |||
! [[Nix]] | |||
|- | |||
| A pure, functional build system. | |||
|} | |||
|- | |||
|} | |||
== Services == | == Services == | ||
Non of the services are required to use Nix. And all the services are not affiliated with the [[NixOS Foundation]]. | |||
; [https://cachix.org Cachix]: binary caches as a service. Free for public caches, subscription for private token-protected caches. | |||
; [https://hercules-ci.com Hercules CI]: simplify your CI setup with stateless build agents. Free for open source, per-user subscription for private repositories. | |||
; [https://nixbuild.net/ nixbuild.net]: remote Nix builders as a service for x86_64 and AArch64. Pay-per-use. | |||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:Ecosystem]] | [[Category:Ecosystem]] | ||
[[Category:Incomplete]] | [[Category:Incomplete]] |
Revision as of 11:44, 24 March 2023
The Nix Ecosystem is a collection of technologies designed to reproducibly build and declaratively configure and manage packages and systems as well as their dependencies. It achieves this by translating the functional paradigm from the program to the system domain by utilizing a dynamic, functional and lazy DSL called the Nix Expression Language for specifying reproducible builds.
Software
Component | Manual | Description | Use | License |
---|---|---|---|---|
Nix Package Manager | Nix Manual | A package manager that parses Nix expressions specifying reproducible build, putting the result in a store address with a hash of the dependency tree, sidestepping dependency hell and supporting multiversion installs and rollbacks. | Reproducible builds & package management in Linux & Darwin | LGPL-2.1 |
NixOS | NixOS Manual | A Linux distribution with all components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks. | Declaratively configure desktops, servers & clusters | MIT |
Nixpkgs | Nixpkgs Manual | The largest community maintained Nix package and NixOS module repository; standard releases of NixOS are hosted here. | Share Nix packages & NixOS modules | MIT |
NixOps | NixOps Manual | A Nix based deployment and provisioning tool allowing declarative specification of remote NixOS systems, VMs and containers; supports AWS, Hetzner, GCE and some other cloud providers out of box. | Deploy & provision NixOS systems, VMs & containers | LGPL-3.0 |
Hydra | Hydra Manual | A Nix based continuous build system. | CI build farms | GPL-3.0 |
In addition there are many other applications developed by the Nix community, utilizing and supporting these core technologies.
|
|||||
|
|||||
|
| ||||
|
Services
Non of the services are required to use Nix. And all the services are not affiliated with the NixOS Foundation.
- Cachix
- binary caches as a service. Free for public caches, subscription for private token-protected caches.
- Hercules CI
- simplify your CI setup with stateless build agents. Free for open source, per-user subscription for private repositories.
- nixbuild.net
- remote Nix builders as a service for x86_64 and AArch64. Pay-per-use.