Applications: Difference between revisions

From NixOS Wiki
(Update application list)
m (give nixinate a link)
 
(15 intermediate revisions by 8 users not shown)
Line 1: Line 1:


This article lists applications built for and with Nix; it constitutes a listing of what may be called the '''''Extended Nix Ecosystem'''''.
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).


Test edit
If you are looking for Linux software/applications you should look at [[:Category:Software|Software]] or its sub-article [[:Category:Software|Applications]].


== Nix Derivatives ==
== Non-NixOS Distributions ==


Various applications built on top of Nix:
Various applications built on top of Nix:


* [https://github.com/fractalide/fractalide fractalide] - Reusable Reproducible Composable Software
* [https://github.com/cleverca22/not-os not-os] - build a system firmware for embedded devices
* [https://github.com/cleverca22/not-os not-os] - build a system firmware for embedded devices


Line 15: Line 14:
Projects which leverage Nix.
Projects which leverage Nix.


* [https://github.com/nixbitcoin/nix-bitcoin/ nix-bitcoin] - Set of NixOS modules to install a bitcoin node with emphasis on security
* [https://github.com/styx-static/styx styx] - Static site generator in Nix expression language
* [https://github.com/styx-static/styx styx] - Static site generator in Nix expression language
* [https://github.com/PapenfussLab/bionix bionix] - manage and execute bioinformatics pipelines
* [https://github.com/PapenfussLab/bionix bionix] - manage and execute bioinformatics pipelines
* [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
* [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
* [https://gitlab.com/simple-nixos-mailserver/nixos-mailserver nixos-mailserver] - A complete and Simple NixOS Mailserver


== Nix Platform ==
== Nix Platform ==
Line 36: Line 35:


=== Flakes ===
=== Flakes ===
* [https://github.com/hlissner/dotfiles dotfiles] - Popular flake-based NixOS configuration template. Has '''hey''' management command
* [https://github.com/serokell/deploy-rs deploy-rs] - Nix flake deployment tool
* [https://github.com/serokell/deploy-rs deploy-rs] - Nix flake deployment tool
* [https://github.com/gytis-ivaskevicius/flake-utils-plus flake-utils-plus] - Flake templates and helper library. Extension of below
* [https://github.com/gytis-ivaskevicius/flake-utils-plus flake-utils-plus] - Flake templates and helper library. Extension of below
Line 42: Line 40:
* [https://github.com/hercules-ci/flake-parts flake-parts] - Simplify Nix Flakes with the module system  
* [https://github.com/hercules-ci/flake-parts flake-parts] - Simplify Nix Flakes with the module system  
* [https://snowfall.org/ snowfall] - Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.  
* [https://snowfall.org/ snowfall] - Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.  
=== Toolboxes ===
* [https://github.com/madjar/nox nox] - Tools to make Nix easier to use
* [https://github.com/Mic92/nix-update nix-update] - Swiss army knife for updating nix packages
* [https://github.com/holidaycheck/nix-venient nix-venient] - A collection of convenient commands for working with nix/nixpkgs


=== Archives ===
=== Archives ===
Line 57: Line 50:
* [https://github.com/Gabriel439/nix-diff nix-diff] - Compare Nix derivations
* [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://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 ===
=== Dependencies ===
Line 63: Line 57:


=== Nix lang comprehension ===
=== Nix lang comprehension ===
* [https://github.com/nix-community/rnix-lsp rnix-lsp] - A language server which can provide in your text editor...
 
** Syntax checking, completion, renaming, go to definition, code formatting (with [https://github.com/nix-community/nixpkgs-fmt nixpkgs-fmt]), etc.
* [https://github.com/astro/deadnix deadnix] - Removes unused code from .nix files
** Supported in vim/neovim, Emacs, VSCode, Kakoune
 
* [https://github.com/nerdypepper/statix statix] - Linter and suggestions for the nix programming language
* [https://github.com/nerdypepper/statix statix] - Linter and suggestions for the nix programming language
* [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/serokell/nixfmt nixfmt] - A formatter for Nix code
* [https://github.com/nix-community/nixpkgs-fmt nixpkgs-fmt] - Nix code formatter for nixpkgs
* [https://github.com/nix-community/nixpkgs-fmt nixpkgs-fmt] - Nix code formatter for nixpkgs
* [https://github.com/astro/deadnix deadnix] - Removes unused code from .nix files
* [https://github.com/oxalica/nil nil] - Nix Language server, an incremental analysis assistent for writing in Nix.


=== Package maintenance ===
=== Package maintenance ===
Line 85: Line 78:
* [https://github.com/nix-hackers/nix-info nix-info] - Homebrew info querying for Nix
* [https://github.com/nix-hackers/nix-info nix-info] - Homebrew info querying for Nix
* [https://github.com/flyingcircusio/userscan userscan] - Scans directories containing manually compiled programs and registers them with the Nix garbage collector
* [https://github.com/flyingcircusio/userscan userscan] - Scans directories containing manually compiled programs and registers them with the Nix garbage collector
* [https://github.com/peterldowns/nix-search-cli nix-search-cli] - CLI for searching packages on search.nixos.org


=== Shell ===
=== Shell ===
Line 106: Line 100:


=== Deployment ===
=== Deployment ===
* [https://github.com/zhaofengli/colmena colmena] - a NixOS deployment tool  
* [https://github.com/rapenne-s/bento Bento] - a NixOS fleet manager supporting remote systems not up 24/7
 
* [https://github.com/zhaofengli/colmena colmena] - a NixOS deployment tool
* 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
* [https://github.com/serokell/deploy-rs deploy-rs] - a simple multi-profile Nix-flake deploy tool
* [https://github.com/pinpox/lollypops lollypops] - a parallel and stateles NixOS deployment tool
 
* [[krops]] - a lightweight toolkit to deploy NixOS systems, remotely or locally
* [https://github.com/pinpox/lollypops lollypops] - a parallel and stateless NixOS deployment tool
* [https://github.com/DBCDK/morph Morph] - a NixOS deployment tool
* [https://github.com/DBCDK/morph Morph] - a NixOS deployment tool
* [https://github.com/MatthewCroughan/nixinate Nixinate] - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH.
* <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.
* [https://github.com/Infinisil/nixus Nixus] - an experimental NixOS deployment tool
* [https://github.com/Infinisil/nixus Nixus] - an experimental NixOS deployment tool
* [https://github.com/rapenne-s/bento Bento] - a NixOS fleet manager supporting remote systems not up 24/7


=== Docker ===
=== Docker ===
Line 120: Line 121:
* [https://github.com/xtruder/kubenix kubenix] - Kubernetes resource builder written in Nix
* [https://github.com/xtruder/kubenix kubenix] - Kubernetes resource builder written in Nix
* [https://github.com/xtruder/nix-kubernetes nix-kubernetes] - Kubernetes deployment manager written in nix
* [https://github.com/xtruder/nix-kubernetes nix-kubernetes] - Kubernetes deployment manager written in nix
=== NixOps related ===
* [https://github.com/grafted-in/nixops-manager nixops-manager] - NixOps wrapper for Git repositories
* [https://cgit.krebsco.de/krops/about/ krops] - a stateless alternative to nixops with improved secret management.
* [https://github.com/DBCDK/morph morph] - a stateless alternative to nixops, deployment files mostly compatible to nixops's none backend


== Alternative nix implementations & parser ==
== Alternative nix implementations & parser ==
Line 133: Line 129:
* [https://github.com/NixOS/nix-idea/tree/master/src/gen/java/org/nixos/idea/lang nix-idea] (java, parser)
* [https://github.com/NixOS/nix-idea/tree/master/src/gen/java/org/nixos/idea/lang nix-idea] (java, parser)


== Additional inofficial ecosystem ==
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.
; [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://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 ==
== See also ==


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


[[Category:Software]]
[[Category:Software]]
[[Category:Guide]]
[[Category:Guide]]
[[Category:Nix]]
[[Category:Nix]]

Latest revision as of 19:06, 27 April 2024

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 or its sub-article Applications.

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

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

Dependencies

  • nix-visualize - Visualize the dependencies of a given package
  • niv - Painless dependencies for Nix projects

Nix lang comprehension

  • deadnix - Removes unused code from .nix files
  • statix - Linter and suggestions for the nix programming language
  • nil - Nix Language server, an incremental analysis assistant for writing in Nix.
  • nixfmt - A formatter for Nix code
  • nixpkgs-fmt - Nix code formatter for nixpkgs

Package maintenance

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

Search

  • 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.

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
  • NixOps - [Not recommended for new projects] a tool for deploying to NixOS machines in a network or cloud.
  • Nixus - an experimental NixOS deployment tool

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)

Additional inofficial 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