Jump to content

Applications: Difference between revisions

From Official NixOS Wiki
Klinger (talk | contribs)
We need the change some of the names in the wiki. The „Applications“ article shows only „Extended Nix Ecosystem“ applications and should be named this way (also in the side navigation). This way it doesnt conflict with the „Category:Software“ and „Category:Applications“ with Linux Software.
Ardenet (talk | contribs)
Marked this version for translation
 
(35 intermediate revisions by 19 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<!--T:59-->
{{Merge|Nix ecosystem|reason=While the scopes are different, an article with the "official tools" as its first section and "built with nix" as a further section under it may be much more fitting.}}


This article lists applications built for and with Nix; it constitutes a listing of what may be called the '''''Extended Nix Ecosystem''''' (see [[Nix Ecosystem]] for the Core Nix Ecosystem).
<!--T:1-->
This article lists applications built for and with Nix; it constitutes a listing of what may be called the '''''Extended Nix Ecosystem''''' (see [[<tvar name=1>Special:MyLanguage/Nix Ecosystem</tvar>|Nix Ecosystem]] for the Core Nix Ecosystem).


If you are looking for Linux software/applications you should look at [[:Category:Software|Software]] or its sub-article [[:Category:Software|Applications]].
<!--T:2-->
If you are looking for Linux software/applications you should look at [[<tvar name=1>:Category:Software</tvar>|Software]].


== Non-NixOS Distributions ==
== Non-NixOS Distributions == <!--T:3-->


<!--T:4-->
Various applications built on top of Nix:
Various applications built on top of Nix:


* [https://github.com/cleverca22/not-os not-os] - build a system firmware for embedded devices
<!--T:5-->
* [<tvar name=1>https://github.com/cleverca22/not-os</tvar> not-os] - build a system firmware for embedded devices


== Built with Nix ==
== Built with Nix == <!--T:6-->


<!--T:7-->
Projects which leverage Nix.
Projects which leverage Nix.


* [https://github.com/styx-static/styx styx] - Static site generator in Nix expression language
<!--T:8-->
* [https://github.com/PapenfussLab/bionix bionix] - manage and execute bioinformatics pipelines
* [<tvar name=1>https://github.com/styx-static/styx</tvar> styx] - Static site generator in Nix expression language
* [https://nix-community.github.io/ethereum.nix/ ethereum.nix] - A collection of Nix packages and NixOS modules designed to make it easier to operate Ethereum related services and infrastructure
* [<tvar name=2>https://github.com/PapenfussLab/bionix</tvar> bionix] - manage and execute bioinformatics pipelines
* [https://gitlab.com/simple-nixos-mailserver/nixos-mailserver nixos-mailserver] - A complete and Simple NixOS Mailserver
* [<tvar name=3>https://nix-community.github.io/ethereum.nix/</tvar> ethereum.nix] - A collection of Nix packages and NixOS modules designed to make it easier to operate Ethereum related services and infrastructure
* [<tvar name=4>https://gitlab.com/simple-nixos-mailserver/nixos-mailserver</tvar> nixos-mailserver] - A complete and Simple NixOS Mailserver


== Nix Platform ==
== Nix Platform == <!--T:9-->


<!--T:10-->
Projects which add support (e.g. for extra platforms or major capabilities) to Nix.
Projects which add support (e.g. for extra platforms or major capabilities) to Nix.


* [https://github.com/LnL7/nix-darwin nix-darwin] - NixOS modules for Darwin
<!--T:11-->
* [https://github.com/musnix/musnix musnix] - real-time audio modules for NixOS
* [<tvar name=1>https://github.com/nix-darwin/nix-darwin</tvar> nix-darwin] - NixOS modules for Darwin
* [https://github.com/guibou/nixGL nixGl] - A wrapper to run OpenGL applications outside of NixOS
* [<tvar name=2>https://github.com/musnix/musnix</tvar> musnix] - real-time audio modules for NixOS
* [<tvar name=3>https://github.com/nix-community/nixGL</tvar> nixGl] - A wrapper to run OpenGL applications outside of NixOS


== Nix Tooling ==
== Nix Tooling == <!--T:12-->


<!--T:13-->
Various tools built for working with the Nix Ecosystem (e.g. enhancements or alternatives to core Nix tools).
Various tools built for working with the Nix Ecosystem (e.g. enhancements or alternatives to core Nix tools).


=== General configuration ===
=== General configuration === <!--T:14-->
* [https://github.com/rycee/home-manager home-manager] - System for managing a user environment using Nix


=== Flakes ===
<!--T:15-->
* [https://github.com/serokell/deploy-rs deploy-rs] - Nix flake deployment tool
* [<tvar name=1>https://github.com/nix-community/home-manager</tvar> home-manager] - System for managing a user environment using Nix
* [https://github.com/gytis-ivaskevicius/flake-utils-plus flake-utils-plus] - Flake templates and helper library. Extension of below
* [<tvar name=2>https://github.com/nix-community/plasma-manager</tvar> plasma-manager] - manage KDE Plasma with Home-manager
* [https://github.com/numtide/flake-utils flake-utils] - Set of flake-building utility functions
* [<tvar name=3>https://github.com/nix-community/nixvim</tvar> Nixvim] - A Neovim distribution built around Nix modules
* [https://github.com/hercules-ci/flake-parts flake-parts] - Simplify Nix Flakes with the module system
* [<tvar name=4>https://github.com/NotAShelf/nvf</tvar> nvf] - Modular, extensible and portable Neovim configuration framework
* [https://snowfall.org/ snowfall] - Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.


=== Archives ===
=== Flakes === <!--T:17-->
* [https://github.com/taktoa/narfuse narfuse] - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store


=== Clustering ===
<!--T:18-->
* [https://github.com/awakesecurity/nix-delegate nix-delegate] - Convenient utility for distributed Nix builds
* [<tvar name=1>https://github.com/serokell/deploy-rs</tvar> deploy-rs] - Nix flake deployment tool
* [<tvar name=2>https://github.com/gytis-ivaskevicius/flake-utils-plus</tvar> flake-utils-plus] - Flake templates and helper library. Extension of below
* [<tvar name=3>https://github.com/numtide/flake-utils</tvar> flake-utils] - Set of flake-building utility functions
* [<tvar name=4>https://github.com/hercules-ci/flake-parts</tvar> flake-parts] - Simplify Nix Flakes with the module system
* [<tvar name=5>https://snowfall.org/</tvar> snowfall] - Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.


=== Comparison ===
=== Archives === <!--T:19-->
* [https://github.com/Gabriel439/nix-diff nix-diff] - Compare Nix derivations
* [https://github.com/FRidh/niff niff] - Compare two Nix expressions to determine what attributes changes
* [https://gitlab.com/khumba/nvd nvd] - Nix/NixOS package version diff tool


=== Dependencies ===
<!--T:20-->
* [https://github.com/craigmbooth/nix-visualize nix-visualize] - Visualize the dependencies of a given package
* [<tvar name=1>https://github.com/taktoa/narfuse</tvar> narfuse] - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store
* [https://github.com/nmattia/niv niv] - Painless dependencies for Nix projects


=== Nix lang comprehension ===
=== Clustering === <!--T:21-->


* [https://github.com/astro/deadnix deadnix] - Removes unused code from .nix files
<!--T:22-->
* [<tvar name=1>https://github.com/awakesecurity/nix-delegate</tvar> nix-delegate] - Convenient utility for distributed Nix builds


* [https://github.com/nerdypepper/statix statix] - Linter and suggestions for the nix programming language
=== Comparison === <!--T:23-->
* [https://github.com/oxalica/nil nil] - Nix Language server, an incremental analysis assistant for writing in Nix.
* [https://github.com/serokell/nixfmt nixfmt] - A formatter for Nix code
* [https://github.com/nix-community/nixpkgs-fmt nixpkgs-fmt] - Nix code formatter for nixpkgs


=== Package maintenance ===
<!--T:24-->
* [https://github.com/Mic92/nix-update/ nix-update] - Swiss-knife for updating nix packages.  
* [<tvar name=1>https://github.com/Gabriel439/nix-diff</tvar> nix-diff] - Compare Nix derivations
* [https://github.com/Mic92/nixpkgs-review nixpkgs-review] - Review nixpkgs pull requests
* [<tvar name=2>https://github.com/FRidh/niff</tvar> niff] - Compare two Nix expressions to determine what attributes changes
* [<tvar name=3>https://khumba.net/projects/nvd/</tvar> nvd] - Nix/NixOS package version diff tool
* [<tvar name=4>https://github.com/isabelroses/lix-diff</tvar> lix-diff] - Nix/NixOS closure diffing tool


=== Debugging ===
=== Dependencies === <!--T:25-->
* [https://github.com/edolstra/dwarffs dwarffs] - Fetches DWARF debug info files for gdb automatically from cache.nixos.org
* [https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] - Fetches debug symbols and source files for debuginfod-capables tools like gdb


=== Search ===
<!--T:26-->
* [https://github.com/bennofs/nix-index nix-index] - Quickly locate nix packages with specific files
* [<tvar name=1>https://github.com/utdemir/nix-tree</tvar> nix-tree] - Interactive dependency browser for Nix derivations
* [https://github.com/symphorien/nix-du nix-du] - Find which gc-roots take disk space in a nix store
* [<tvar name=2>https://github.com/craigmbooth/nix-visualize</tvar> nix-visualize] - Visualize the dependencies of a given package as a graph
* [https://github.com/nix-hackers/nix-info nix-info] - Homebrew info querying for Nix
* [<tvar name=3>https://github.com/andir/npins</tvar> npins] - Simple tool for handling different types of dependencies in a Nix project
* [https://github.com/flyingcircusio/userscan userscan] - Scans directories containing manually compiled programs and registers them with the Nix garbage collector
* [<tvar name=4>https://github.com/nmattia/niv</tvar> niv] - Painless dependencies for Nix projects
* [https://github.com/peterldowns/nix-search-cli nix-search-cli] - CLI for searching packages on search.nixos.org
* [<tvar name=5>https://nixtamal.toast.al/</tvar> Nixtamal] - Fulfilling input pinning for Nix


=== Shell ===
=== Nix language tools === <!--T:27-->
* [https://github.com/hedning/nix-bash-completions nix-bash-completions] - Bash completion for <code>nix*</code> commands
* [https://github.com/Mic92/nixos-shell nixos-shell (Mic92)] - Spawns lightweight nixos vms in a shell (like vagrant)
* [https://github.com/chrisfarms/nixos-shell nixos-shell (chrisfarms)] - like nix-shell, but for NixOS modules. Buildable version can be found [https://github.com/wavewave/nixos-shell/tree/submodule in this fork]
* [https://github.com/erikarvstedt/extra-container extra-container] - Run declarative NixOS containers from the command line. Similar to nixos-shell (chrisfarms)


=== Other ===
==== Language servers ==== <!--T:60-->
* [https://github.com/matthewbauer/nix-bundle nix-bundle] - package Nix attributes into single-file executables.
* [https://github.com/lethalman/nix-user-chroot nix-user-chroot] - install Nix as an unpriviliged user on any system
* [https://github.com/ViperML/nh nh] - a rewrite of nixos-rebuild featuring diffs with nvd and a tree of builds with nix-output-manager, as well as other quality of life features such as package searching.


== Nix Operations ==
<!--T:61-->
* [<tvar name=1>https://github.com/oxalica/nil</tvar> nil] - Nix language server, an incremental analysis assistant for writing in Nix
* [<tvar name=2>https://github.com/nix-community/nixd</tvar> nixd] - Nix language server, newer than nil, with more features


==== Static analysis / linters ==== <!--T:62-->
<!--T:28-->
* [<tvar name=1>https://github.com/astro/deadnix</tvar> deadnix] - Removes unused code from .nix files
* [<tvar name=2>https://github.com/oppiliappan/statix</tvar> statix] - Linter and suggestions for the nix programming language
* [<tvar name=3>https://github.com/inclyc/nixf-diagnose</tvar> nixf-diagnose] - Linter - CLI wrapper around nixf-tidy (part of the [<tvar name=4>https://github.com/nix-community/nixd</tvar> nixd] project)
==== Formatters ==== <!--T:63-->
<!--T:64-->
* [<tvar name=1>https://github.com/NixOS/nixfmt</tvar> nixfmt] - The official formatter for Nix code
* [<tvar name=2>https://github.com/kamadorueda/alejandra</tvar> alejandra] - Unofficial Nix code formatter
=== Package maintenance === <!--T:30-->
<!--T:31-->
* [<tvar name=1>https://github.com/Mic92/nix-update/</tvar> nix-update] - Swiss-knife for updating nix packages.
* [<tvar name=2>https://github.com/Mic92/nixpkgs-review</tvar> nixpkgs-review] - Review nixpkgs pull requests
* [<tvar name=3>https://github.com/nix-community/nix-init</tvar> nix-init] - Generate Nix packages from URLs
* [<tvar name=4>https://github.com/jtojnar/nixpkgs-hammering</tvar> nixpkgs-hammering] - Enforce a set of nit-picky rules that aim to point out and explain common mistakes in nixpkgs package pull requests
=== Debugging === <!--T:32-->
<!--T:33-->
* [<tvar name=1>https://github.com/edolstra/dwarffs</tvar> dwarffs] - Fetches DWARF debug info files for gdb automatically from cache.nixos.org
* [<tvar name=2>https://github.com/symphorien/nixseparatedebuginfod</tvar> nixseparatedebuginfod] - Fetches debug symbols and source files for debuginfod-capables tools like gdb
=== Search === <!--T:34-->
<!--T:35-->
* [<tvar name=1>https://github.com/nix-community/nix-index</tvar> nix-index] - Quickly locate nix packages with specific files
* [<tvar name=2>https://github.com/symphorien/nix-du</tvar> nix-du] - Find which gc-roots take disk space in a nix store
* [<tvar name=3>https://github.com/nix-hackers/nix-info</tvar> nix-info] - Homebrew info querying for Nix
* [<tvar name=4>https://github.com/flyingcircusio/userscan</tvar> userscan] - Scans directories containing manually compiled programs and registers them with the Nix garbage collector
* [<tvar name=5>https://github.com/peterldowns/nix-search-cli</tvar> nix-search-cli] - CLI for searching packages on search.nixos.org
=== Shell === <!--T:36-->
<!--T:37-->
* [<tvar name=1>https://github.com/hedning/nix-bash-completions</tvar> nix-bash-completions] - Bash completion for <code>nix*</code> commands
* [<tvar name=2>https://github.com/Mic92/nixos-shell</tvar> nixos-shell (Mic92)] - Spawns lightweight nixos vms in a shell (like vagrant)
* [<tvar name=3>https://github.com/chrisfarms/nixos-shell</tvar> nixos-shell (chrisfarms)] - like nix-shell, but for NixOS modules. Buildable version can be found [<tvar name=4>https://github.com/wavewave/nixos-shell/tree/submodule</tvar> in this fork]
* [<tvar name=5>https://github.com/erikarvstedt/extra-container</tvar> extra-container] - Run declarative NixOS containers from the command line. Similar to nixos-shell (chrisfarms)
=== Other === <!--T:38-->
<!--T:39-->
* [<tvar name=1>https://github.com/nix-community/nix-bundle</tvar> nix-bundle] - package Nix attributes into single-file executables
* [<tvar name=2>https://github.com/lucabrunox/nix-user-chroot</tvar> nix-user-chroot] - install Nix as an unpriviliged user on any system
* [<tvar name=3>https://github.com/nix-community/nh</tvar> nh] - a rewrite of nixos-rebuild featuring diffs with nvd and a tree of builds with nix-output-manager, as well as other quality of life features such as package searching
* [<tvar name=4>https://github.com/nix-community/nixos-cli</tvar> nixos-cli] - an all-in-one tool to manage any NixOS installation with ease, combining the features of all the `nixos-*` commands. 
== Nix Operations == <!--T:40-->
<!--T:41-->
Operations tools for the Nix Ecosystem:
Operations tools for the Nix Ecosystem:


=== Official ===
=== Official === <!--T:42-->
* [https://github.com/nixos/hydra Hydra] - Nix's official continuous integration and build system.
* [https://github.com/NixOS/nixops NixOps] - Nix's official (but unmaintained) tool for deploying to NixOS machines in a network or the cloud.


=== Deployment ===
<!--T:43-->
* [https://github.com/rapenne-s/bento Bento] - a NixOS fleet manager supporting remote systems not up 24/7
* [<tvar name=1>https://github.com/nixos/hydra</tvar> Hydra] - Nix's official continuous integration and build system
* [<tvar name=2>https://github.com/NixOS/nixops</tvar> NixOps] - Nix's official (but unmaintained) tool for deploying to NixOS machines in a network or the cloud


* [https://github.com/zhaofengli/colmena colmena] - a NixOS deployment tool
=== Deployment === <!--T:44-->
* comin - A deployment tool to continuously pull from Git repositories.
* [https://github.com/serokell/deploy-rs deploy-rs] - a simple multi-profile Nix-flake deploy tool


* [[krops]] - a lightweight toolkit to deploy NixOS systems, remotely or locally
<!--T:45-->
* [https://github.com/pinpox/lollypops lollypops] - a parallel and stateless NixOS deployment tool
* [<tvar name=1>https://github.com/rapenne-s/bento</tvar> Bento] - a NixOS fleet manager supporting remote systems not up 24/7
* [https://github.com/DBCDK/morph Morph] - a NixOS deployment tool
 
* Nixinate - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH.
<!--T:46-->
* [<tvar name=1>https://github.com/zhaofengli/colmena</tvar> colmena] - a NixOS deployment tool
* [<tvar name=2>https://github.com/nlewo/comin</tvar> comin] - A deployment tool to continuously pull from Git repositories
* [<tvar name=3>https://github.com/serokell/deploy-rs</tvar> deploy-rs] - a simple multi-profile Nix-flake deploy tool
 
<!--T:47-->
* [[<tvar name=0>Special:MyLanguage/krops</tvar>|krops]] - a lightweight toolkit to deploy NixOS systems, remotely or locally
* [<tvar name=1>https://github.com/pinpox/lollypops</tvar> lollypops] - a parallel and stateless NixOS deployment tool
* [<tvar name=2>https://github.com/DBCDK/morph</tvar> Morph] - a NixOS deployment tool
* [<tvar name=3>https://github.com/MatthewCroughan/nixinate</tvar> Nixinate] - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH
* <code>nixos-build --target-host</code>
* <code>nixos-build --target-host</code>
* [https://github.com/NixOS/nixops NixOps] - [Not recommended for new projects] a tool for deploying to NixOS machines in a network or cloud.
* [<tvar name=4>https://github.com/Infinisil/nixus</tvar> Nixus] - an experimental NixOS deployment tool
* [https://github.com/Infinisil/nixus Nixus] - an experimental NixOS deployment tool
* [<tvar name=5>https://github.com/forallsys/wire</tvar> wire] - A tool to deploy NixOS systems. Its usage is inspired by colmena however it is not a fork.
 
=== Docker === <!--T:48-->
 
<!--T:49-->
* [<tvar name=1>https://github.com/hercules-ci/arion</tvar> Arion] - configure Docker Compose with Nix modules
* [<tvar name=2>https://nixery.dev</tvar> Nixery ] - ad-hoc container images from Nix


=== Docker ===
=== Kubernetes === <!--T:50-->
* [https://github.com/hercules-ci/arion Arion] - configure Docker Compose with Nix modules
* [https://nixery.dev Nixery ] - ad-hoc container images from Nix


=== Kubernetes ===
<!--T:51-->
* [https://github.com/xtruder/kubenix kubenix] - Kubernetes resource builder written in Nix
* [<tvar name=1>https://github.com/xtruder/kubenix</tvar> kubenix] - Kubernetes resource builder written in Nix
* [https://github.com/xtruder/nix-kubernetes nix-kubernetes] - Kubernetes deployment manager written in nix
* [<tvar name=2>https://github.com/xtruder/nix-kubernetes</tvar> nix-kubernetes] - Kubernetes deployment manager written in nix


== Alternative nix implementations & parser ==
== Alternative nix implementations & parser == <!--T:52-->


* [https://github.com/jwiegley/hnix hnix] (haskell, parser & evaluator)
<!--T:53-->
* [https://github.com/nix-community/rnix-parser rnix] (rust, parser)
* [<tvar name=1>https://github.com/haskell-nix/hnix</tvar> hnix] (haskell, parser & evaluator)
* [https://github.com/orivej/go-nix go-nix] (go, parser & nix-compatible file hasher)
* [<tvar name=2>https://github.com/nix-community/rnix-parser</tvar> rnix] (rust, parser)
* [https://github.com/NixOS/nix-idea/tree/master/src/gen/java/org/nixos/idea/lang nix-idea] (java, parser)
* [<tvar name=3>https://github.com/orivej/go-nix</tvar> go-nix] (go, parser & nix-compatible file hasher)
* [<tvar name=4>https://github.com/NixOS/nix-idea/tree/master/src/main/java/org/nixos/idea/lang</tvar> nix-idea] (java, parser)
* [<tvar name=5>https://lix.systems/</tvar> lix] (c++, fork of [<tvar name=6>https://github.com/NixOS/nix</tvar> NixOS/nix])
* [<tvar name=7>https://snix.dev/</tvar> snix] (rust, cli & evaluator & store)


== Additional inofficial ecosystem ==
== Additional unofficial ecosystem == <!--T:54-->
None of the services are required to use Nix. None of these services are affiliated with the [[NixOS Foundation]].


; [https://cachix.org Cachix]: binary caches as a service. Free for public caches, subscription for private token-protected caches.
<!--T:55-->
; [https://hercules-ci.com Hercules CI]: simplify your CI setup with stateless build agents. Free for open source, per-user subscription for private repositories.
None of the services are required to use Nix. None of these services are affiliated with the [[<tvar name=1>Special:MyLanguage/NixOS Foundation</tvar>|NixOS Foundation]].
; [https://garnix.io Garnix]: nix CI, caching (open beta) and cloud hosting (private alpha) based on Nix as a service. Currently free, but offers commerical plans.
; [https://nixbuild.net/ nixbuild.net]: remote Nix builders as a service for x86_64 and AArch64. Pay-per-use.


== See also ==
<!--T:56-->
; [<tvar name=1>https://cachix.org</tvar> Cachix]: binary caches as a service. Free for public caches, subscription for private token-protected caches.
; [<tvar name=2>https://hercules-ci.com</tvar> Hercules CI]: simplify your CI setup with stateless build agents. Free for open source, per-user subscription for private repositories.
; [<tvar name=3>https://garnix.io</tvar> Garnix]: nix CI, caching (open beta) and cloud hosting (private alpha) based on Nix as a service. Currently free, but offers commerical plans.
; [<tvar name=4>https://nixbuild.net/</tvar> nixbuild.net]: remote Nix builders as a service for x86_64 and AArch64. Pay-per-use.


* [https://github.com/nix-community/awesome-nix awesome-nix]
== See also == <!--T:57-->
* [[Language-specific package helpers]]
* [[Alternative Package Sets]]
* [[Configuration Collection|Get inspiration from other peoples NixOS configuration]]
* [https://search.nixos.org/packages NixOS Packages Search] for searching through NixOS packages


<!--T:58-->
* [<tvar name=1>https://github.com/nix-community/awesome-nix</tvar> awesome-nix]
* [[<tvar name=2>Special:MyLanguage/Language-specific package helpers</tvar>|Language-specific package helpers]]
* [[<tvar name=3>Special:MyLanguage/Alternative Package Sets</tvar>|Alternative Package Sets]]
* [[<tvar name=4>Special:MyLanguage/Configuration Collection</tvar>|Get inspiration from other peoples NixOS configuration]]
* [<tvar name=5>https://search.nixos.org/packages</tvar> NixOS Packages Search] for searching through NixOS packages


</translate>
[[Category:Software]]
[[Category:Software]]
[[Category:Guide]]
[[Category:Guide]]
[[Category:Nix]]
[[Category:Nix{{#translation:}}]]

Latest revision as of 19:22, 15 August 2026

⤟︎
This article or section is a candidate for merging with Nix ecosystem. While the scopes are different, an article with the "official tools" as its first section and "built with nix" as a further section under it may be much more fitting. Further information may be found in the relevant discussion page.

This article lists applications built for and with Nix; it constitutes a listing of what may be called the Extended Nix Ecosystem (see Nix Ecosystem for the Core Nix Ecosystem).

If you are looking for Linux software/applications you should look at Software.

Non-NixOS Distributions

Various applications built on top of Nix:

  • not-os - build a system firmware for embedded devices

Built with Nix

Projects which leverage Nix.

  • styx - Static site generator in Nix expression language
  • bionix - manage and execute bioinformatics pipelines
  • ethereum.nix - A collection of Nix packages and NixOS modules designed to make it easier to operate Ethereum related services and infrastructure
  • nixos-mailserver - A complete and Simple NixOS Mailserver

Nix Platform

Projects which add support (e.g. for extra platforms or major capabilities) to Nix.

  • nix-darwin - NixOS modules for Darwin
  • musnix - real-time audio modules for NixOS
  • nixGl - A wrapper to run OpenGL applications outside of NixOS

Nix Tooling

Various tools built for working with the Nix Ecosystem (e.g. enhancements or alternatives to core Nix tools).

General configuration

  • home-manager - System for managing a user environment using Nix
  • plasma-manager - manage KDE Plasma with Home-manager
  • Nixvim - A Neovim distribution built around Nix modules
  • nvf - Modular, extensible and portable Neovim configuration framework

Flakes

  • deploy-rs - Nix flake deployment tool
  • flake-utils-plus - Flake templates and helper library. Extension of below
  • flake-utils - Set of flake-building utility functions
  • flake-parts - Simplify Nix Flakes with the module system
  • snowfall - Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.

Archives

  • narfuse - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store

Clustering

  • nix-delegate - Convenient utility for distributed Nix builds

Comparison

  • nix-diff - Compare Nix derivations
  • niff - Compare two Nix expressions to determine what attributes changes
  • nvd - Nix/NixOS package version diff tool
  • lix-diff - Nix/NixOS closure diffing tool

Dependencies

  • nix-tree - Interactive dependency browser for Nix derivations
  • nix-visualize - Visualize the dependencies of a given package as a graph
  • npins - Simple tool for handling different types of dependencies in a Nix project
  • niv - Painless dependencies for Nix projects
  • Nixtamal - Fulfilling input pinning for Nix

Nix language tools

Language servers

  • nil - Nix language server, an incremental analysis assistant for writing in Nix
  • nixd - Nix language server, newer than nil, with more features

Static analysis / linters

  • deadnix - Removes unused code from .nix files
  • statix - Linter and suggestions for the nix programming language
  • nixf-diagnose - Linter - CLI wrapper around nixf-tidy (part of the nixd project)

Formatters

  • nixfmt - The official formatter for Nix code
  • alejandra - Unofficial Nix code formatter

Package maintenance

  • nix-update - Swiss-knife for updating nix packages.
  • nixpkgs-review - Review nixpkgs pull requests
  • nix-init - Generate Nix packages from URLs
  • nixpkgs-hammering - Enforce a set of nit-picky rules that aim to point out and explain common mistakes in nixpkgs package pull requests

Debugging

  • dwarffs - Fetches DWARF debug info files for gdb automatically from cache.nixos.org
  • nixseparatedebuginfod - Fetches debug symbols and source files for debuginfod-capables tools like gdb
  • nix-index - Quickly locate nix packages with specific files
  • nix-du - Find which gc-roots take disk space in a nix store
  • nix-info - Homebrew info querying for Nix
  • userscan - Scans directories containing manually compiled programs and registers them with the Nix garbage collector
  • nix-search-cli - CLI for searching packages on search.nixos.org

Shell

Other

  • nix-bundle - package Nix attributes into single-file executables
  • nix-user-chroot - install Nix as an unpriviliged user on any system
  • nh - a rewrite of nixos-rebuild featuring diffs with nvd and a tree of builds with nix-output-manager, as well as other quality of life features such as package searching
  • nixos-cli - an all-in-one tool to manage any NixOS installation with ease, combining the features of all the `nixos-*` commands.

Nix Operations

Operations tools for the Nix Ecosystem:

Official

  • Hydra - Nix's official continuous integration and build system
  • NixOps - Nix's official (but unmaintained) tool for deploying to NixOS machines in a network or the cloud

Deployment

  • Bento - a NixOS fleet manager supporting remote systems not up 24/7
  • colmena - a NixOS deployment tool
  • comin - A deployment tool to continuously pull from Git repositories
  • deploy-rs - a simple multi-profile Nix-flake deploy tool
  • krops - a lightweight toolkit to deploy NixOS systems, remotely or locally
  • lollypops - a parallel and stateless NixOS deployment tool
  • Morph - a NixOS deployment tool
  • Nixinate - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH
  • nixos-build --target-host
  • Nixus - an experimental NixOS deployment tool
  • wire - A tool to deploy NixOS systems. Its usage is inspired by colmena however it is not a fork.

Docker

  • Arion - configure Docker Compose with Nix modules
  • Nixery - ad-hoc container images from Nix

Kubernetes

  • kubenix - Kubernetes resource builder written in Nix
  • nix-kubernetes - Kubernetes deployment manager written in nix

Alternative nix implementations & parser

  • hnix (haskell, parser & evaluator)
  • rnix (rust, parser)
  • go-nix (go, parser & nix-compatible file hasher)
  • nix-idea (java, parser)
  • lix (c++, fork of NixOS/nix)
  • snix (rust, cli & evaluator & store)

Additional unofficial ecosystem

None of the services are required to use Nix. None of these services are 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.
Garnix
nix CI, caching (open beta) and cloud hosting (private alpha) based on Nix as a service. Currently free, but offers commerical plans.
nixbuild.net
remote Nix builders as a service for x86_64 and AArch64. Pay-per-use.

See also