Applications: Difference between revisions

From NixOS Wiki
imported>0x4A6F
→‎Nix lang comprehension: add statix and nixpkgs-fmt
m fix the broken link
(40 intermediate revisions by 23 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'''''.
<languages/>
<translate>
<!--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 [[Special:MyLanguage/Nix Ecosystem|Nix Ecosystem]] for the Core Nix Ecosystem).


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


== Non-NixOS Distributions == <!--T:3-->
<!--T:4-->
Various applications built on top of Nix:
Various applications built on top of Nix:


* [https://github.com/fractalide/fractalide fractalide] - Reusable Reproducible Composable Software
<!--T:5-->
* [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


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


<!--T:7-->
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
<!--T:8-->
* [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://gitlab.com/simple-nixos-mailserver/nixos-mailserver 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.


<!--T:11-->
* [https://github.com/LnL7/nix-darwin nix-darwin] - NixOS modules for Darwin
* [https://github.com/LnL7/nix-darwin nix-darwin] - NixOS modules for Darwin
* [https://github.com/musnix/musnix musnix] - real-time audio modules for NixOS
* [https://github.com/musnix/musnix musnix] - real-time audio modules for NixOS
* [https://github.com/guibou/nixGL nixGl] - A wrapper to run OpenGL applications outside of NixOS
* [https://github.com/guibou/nixGL 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-->
 
<!--T:15-->
* [https://github.com/rycee/home-manager home-manager] - System for managing a user environment using Nix
* [https://github.com/rycee/home-manager home-manager] - System for managing a user environment using Nix
* [https://github.com/pjones/plasma-manager plasma-manager] - manage KDE Plasma with Home-manager
== About == <!--T:16-->


=== Flakes ===
=== Flakes === <!--T:17-->
* [https://github.com/divnix/devos DevOS] - Popular flake-based NixOS configuraton template, building on several libraries
 
* [https://github.com/hlissner/dotfiles dotfiles] - Popular flake-based NixOS configuration template. Has '''hey''' management command
<!--T:18-->
* [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/divnix/digga digga] - Flake utility library, based on flake-utils-plus
* [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
* [https://github.com/numtide/flake-utils flake-utils] - Set of flake-building utility functions
* [https://github.com/numtide/flake-utils flake-utils] - Set of flake-building utility functions
* [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.


=== Toolboxes ===
=== Archives === <!--T:19-->
* [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 ===
<!--T:20-->
* [https://github.com/taktoa/narfuse narfuse] - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store
* [https://github.com/taktoa/narfuse narfuse] - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store


=== Clustering ===
=== Clustering === <!--T:21-->
 
<!--T:22-->
* [https://github.com/awakesecurity/nix-delegate nix-delegate] - Convenient utility for distributed Nix builds
* [https://github.com/awakesecurity/nix-delegate nix-delegate] - Convenient utility for distributed Nix builds


=== Comparison ===
=== Comparison === <!--T:23-->
 
<!--T:24-->
* [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 === <!--T:25-->


=== Dependencies ===
<!--T:26-->
* [https://github.com/craigmbooth/nix-visualize nix-visualize] - Visualize the dependencies of a given package
* [https://github.com/craigmbooth/nix-visualize nix-visualize] - Visualize the dependencies of a given package
* [https://github.com/nmattia/niv niv] - Painless dependencies for Nix projects
* [https://github.com/nmattia/niv niv] - Painless dependencies for Nix projects


=== Nix lang comprehension ===
=== Nix lang comprehension === <!--T:27-->
* [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.
<!--T:28-->
** Supported in vim/neovim, Emacs, VSCode, Kakoune
* [https://github.com/astro/deadnix deadnix] - Removes unused code from .nix files
* [https://github.com/nerdypepper/statix statix] - Linter and suggestions for the nix programming language  
 
<!--T:29-->
* [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


=== Package maintenance ===
=== Package maintenance === <!--T:30-->
* [https://github.com/peterhoeg/nix-upgrade-scripts nix-upgrade-scripts] - Tools for Nixpkgs maintainers to upgrade packages
 
<!--T:31-->
* [https://github.com/Mic92/nix-update/ nix-update] - Swiss-knife for updating nix packages.
* [https://github.com/Mic92/nixpkgs-review nixpkgs-review] - Review nixpkgs pull requests
* [https://github.com/Mic92/nixpkgs-review nixpkgs-review] - Review nixpkgs pull requests


=== Search ===
=== Debugging === <!--T:32-->
 
<!--T:33-->
* [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:34-->
 
<!--T:35-->
* [https://github.com/bennofs/nix-index nix-index] - Quickly locate nix packages with specific files
* [https://github.com/bennofs/nix-index nix-index] - Quickly locate nix packages with specific files
* [https://github.com/symphorien/nix-du nix-du] - Find which gc-roots take disk space in a nix store
* [https://github.com/symphorien/nix-du nix-du] - Find which gc-roots take disk space in a nix store
* [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 === <!--T:36-->


=== Shell ===
<!--T:37-->
* [https://github.com/hedning/nix-bash-completions nix-bash-completions] - Bash completion for <code>nix*</code> commands
* [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/Mic92/nixos-shell nixos-shell (Mic92)] - Spawns lightweight nixos vms in a shell (like vagrant)
Line 83: Line 121:
* [https://github.com/erikarvstedt/extra-container extra-container] - Run declarative NixOS containers from the command line. Similar to nixos-shell (chrisfarms)
* [https://github.com/erikarvstedt/extra-container extra-container] - Run declarative NixOS containers from the command line. Similar to nixos-shell (chrisfarms)


=== Other ===
=== Other === <!--T:38-->
 
<!--T:39-->
* [https://github.com/matthewbauer/nix-bundle nix-bundle] - package Nix attributes into single-file executables.
* [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/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 ==
== Nix Operations == <!--T:40-->


<!--T:41-->
Operations tools for the Nix Ecosystem:
Operations tools for the Nix Ecosystem:


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


=== Deployment ===
=== Deployment === <!--T:44-->
* [https://github.com/zhaofengli/colmena colmena] - a NixOS deployment tool  
 
<!--T:45-->
* [https://github.com/rapenne-s/bento Bento] - a NixOS fleet manager supporting remote systems not up 24/7
 
<!--T:46-->
* [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/TaktInc/hail Hail] - a service for pull-based continuous deployment.
 
<!--T:47-->
* [[Special:MyLanguage/krops|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/nixcloud/nixcloud-webservices nixcloud-webservices] - nixpkgs extension for web-related technologies
* [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


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


=== Kubernetes ===
=== Kubernetes === <!--T:50-->
 
<!--T:51-->
* [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


=== Microservices ===
== Alternative nix implementations & parser == <!--T:52-->
* [https://github.com/svanderburg/disnix Disnix] - a microservice architecture built with Nix.


=== NixOps related ===
<!--T:53-->
* [https://github.com/grafted-in/nixops-manager nixops-manager] - NixOps wrapper for Git repositories
* [https://github.com/jwiegley/hnix hnix] (haskell, parser & evaluator)
* [https://cgit.krebsco.de/krops/about/ krops] - a stateless alternative to nixops with improved secret management.
* [https://github.com/nix-community/rnix-parser rnix] (rust, parser)
* [https://github.com/DBCDK/morph morph] - a stateless alternative to nixops, deployment files mostly compatible to nixops's none backend
* [https://github.com/orivej/go-nix go-nix] (go, parser & nix-compatible file hasher)
* [https://github.com/NixOS/nix-idea/tree/master/src/main/java/org/nixos/idea/lang nix-idea] (java, parser)


== Alternative nix implementations & parser ==
== Additional unofficial ecosystem == <!--T:54-->


* [https://github.com/jwiegley/hnix hnix] (haskell, parser & evaluator)
<!--T:55-->
* [https://gitlab.com/jD91mZM2/rnix rnix] (rust, parser)
None of the services are required to use Nix. None of these services are affiliated with the [[Special:MyLanguage/NixOS Foundation|NixOS Foundation]].
* [https://github.com/orivej/go-nix go-nix] (go, parser & nix-compatible file hasher)
* [https://github.com/NixOS/nix-idea/tree/master/src/gen/java/org/nixos/idea/lang nix-idea] (java, parser)


<!--T:56-->
; [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 == <!--T:57-->


* [[Language-specific package helpers]]
<!--T:58-->
* [[Alternative Package Sets]]
* [https://github.com/nix-community/awesome-nix awesome-nix]
* [[Configuration Collection|Get inspiration from other peoples NixOS configuration]]
* [[Special:MyLanguage/Language-specific package helpers|Language-specific package helpers]]
* [[Special:MyLanguage/Alternative Package Sets|Alternative Package Sets]]
* [[Special:MyLanguage/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


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

Revision as of 08:38, 15 September 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

About

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