Difference between revisions of "Applications"
From NixOS Wiki
Erikarvstedt (talk | contribs) m (Add extra-container) |
|||
(30 intermediate revisions by 15 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 | + | |
+ | This article lists applications built for and with Nix; it constitutes a listing of what may be called the '''''Extended Nix Ecosystem'''''. | ||
== Nix Derivatives == | == Nix Derivatives == | ||
Line 6: | Line 7: | ||
* [https://github.com/fractalide/fractalide fractalide] - Reusable Reproducible Composable Software | * [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 | ||
+ | |||
+ | == Built with 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/ | + | * [https://github.com/PapenfussLab/bionix bionix] - manage and execute bioinformatics pipelines |
− | * [https:// | + | * [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://github.com/ | + | == Nix Platform == |
− | + | ||
− | * [https://github.com/ | + | Projects which add support (e.g. for extra platforms or major capabilities) to Nix. |
− | * [https://github.com/ | + | |
+ | * [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/guibou/nixGL nixGl] - A wrapper to run OpenGL applications outside of NixOS | ||
== Nix Tooling == | == Nix Tooling == | ||
− | Various tools built for working with the Nix Ecosystem | + | Various tools built for working with the Nix Ecosystem (e.g. enhancements or alternatives to core Nix tools). |
− | * [https://github.com/ | + | === General configuration === |
+ | * [https://github.com/rycee/home-manager home-manager] - System for managing a user environment using Nix | ||
+ | |||
+ | === 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/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/hercules-ci/flake-parts flake-parts] - Simplify Nix Flakes with the module system | ||
+ | |||
+ | === 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/Mic92/nix-update nix-update] - Swiss army knife for updating nix packages | ||
− | * [https://github.com/ | + | * [https://github.com/holidaycheck/nix-venient nix-venient] - A collection of convenient commands for working with nix/nixpkgs |
+ | |||
+ | === Archives === | ||
+ | * [https://github.com/taktoa/narfuse narfuse] - FUSE filesystem for mounting Nix archive (NAR) files as a virtual Nix store | ||
+ | |||
+ | === Clustering === | ||
+ | * [https://github.com/awakesecurity/nix-delegate nix-delegate] - Convenient utility for distributed Nix builds | ||
+ | |||
+ | === Comparison === | ||
* [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 | ||
+ | |||
+ | === Dependencies === | ||
+ | * [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 | ||
+ | |||
+ | === 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. | ||
+ | ** Supported in vim/neovim, Emacs, VSCode, Kakoune | ||
+ | * [https://github.com/nerdypepper/statix statix] - Linter and suggestions for the nix programming language | ||
+ | * [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/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 === | ||
+ | * [https://github.com/peterhoeg/nix-upgrade-scripts nix-upgrade-scripts] - Tools for Nixpkgs maintainers to upgrade packages | ||
+ | * [https://github.com/Mic92/nixpkgs-review nixpkgs-review] - Review nixpkgs pull requests | ||
+ | |||
+ | === Debugging === | ||
+ | * [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 === | ||
* [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/ | + | * [https://github.com/flyingcircusio/userscan userscan] - Scans directories containing manually compiled programs and registers them with the Nix garbage collector |
− | + | ||
− | + | === Shell === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* [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/ | + | * [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 === | ||
+ | * [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 | ||
== Nix Operations == | == Nix Operations == | ||
Line 49: | Line 97: | ||
Operations tools for the Nix Ecosystem: | Operations tools for the Nix Ecosystem: | ||
+ | === Official === | ||
* [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. | ||
+ | |||
+ | === Deployment === | ||
+ | * [https://github.com/zhaofengli/colmena colmena] - a NixOS deployment 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 | ||
+ | * [https://github.com/DBCDK/morph Morph] - a NixOS deployment tool | ||
+ | * [https://github.com/Infinisil/nixus Nixus] - an experimental NixOS deployment tool | ||
+ | * [https://github.com/nixcloud/nixcloud-webservices nixcloud-webservices] - nixpkgs extension for web-related technologies | ||
+ | * [https://github.com/rapenne-s/bento Bento] - a NixOS fleet manager supporting remote systems not up 24/7 | ||
+ | |||
+ | === Docker === | ||
+ | * [https://github.com/hercules-ci/arion Arion] - configure Docker Compose with Nix modules | ||
+ | * [https://nixery.dev Nixery ] - ad-hoc container images from Nix | ||
+ | |||
+ | === Kubernetes === | ||
* [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 | ||
− | * [https://github.com/ | + | |
− | * [https:// | + | === NixOps related === |
− | * [https://github.com/DBCDK/morph | + | * [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 == | ||
* [https://github.com/jwiegley/hnix hnix] (haskell, parser & evaluator) | * [https://github.com/jwiegley/hnix hnix] (haskell, parser & evaluator) | ||
− | * [https:// | + | * [https://github.com/nix-community/rnix-parser rnix] (rust, parser) |
* [https://github.com/orivej/go-nix go-nix] (go, parser & nix-compatible file hasher) | * [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) | * [https://github.com/NixOS/nix-idea/tree/master/src/gen/java/org/nixos/idea/lang nix-idea] (java, parser) | ||
Line 72: | Line 137: | ||
* [[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:Guide]] | ||
+ | [[Category:Nix]] |
Latest revision as of 22:18, 11 March 2024
This article lists applications built for and with Nix; it constitutes a listing of what may be called the Extended Nix Ecosystem.
Nix Derivatives
Various applications built on top of Nix:
- fractalide - Reusable Reproducible Composable Software
- not-os - build a system firmware for embedded devices
Built with Nix
Projects which leverage Nix.
- nix-bitcoin - Set of NixOS modules to install a bitcoin node with emphasis on security
- 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
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
- dotfiles - Popular flake-based NixOS configuration template. Has hey management command
- 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
Toolboxes
- nox - Tools to make Nix easier to use
- nix-update - Swiss army knife for updating nix packages
- nix-venient - A collection of convenient commands for working with nix/nixpkgs
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
Dependencies
- nix-visualize - Visualize the dependencies of a given package
- niv - Painless dependencies for Nix projects
Nix lang comprehension
- rnix-lsp - A language server which can provide in your text editor...
- Syntax checking, completion, renaming, go to definition, code formatting (with nixpkgs-fmt), etc.
- Supported in vim/neovim, Emacs, VSCode, Kakoune
- statix - Linter and suggestions for the nix programming language
- nixfmt - A formatter for Nix code
- nixpkgs-fmt - Nix code formatter for nixpkgs
- deadnix - Removes unused code from .nix files
- nil - Nix Language server, an incremental analysis assistent for writing in Nix.
Package maintenance
- nix-upgrade-scripts - Tools for Nixpkgs maintainers to upgrade packages
- nixpkgs-review - Review nixpkgs 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
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
Shell
- nix-bash-completions - Bash completion for
nix*
commands - nixos-shell (Mic92) - Spawns lightweight nixos vms in a shell (like vagrant)
- nixos-shell (chrisfarms) - like nix-shell, but for NixOS modules. Buildable version can be found in this fork
- extra-container - Run declarative NixOS containers from the command line. Similar to nixos-shell (chrisfarms)
Other
- nix-bundle - package Nix attributes into single-file executables.
- nix-user-chroot - install Nix as an unpriviliged user on any system
Nix Operations
Operations tools for the Nix Ecosystem:
Official
- Hydra - Nix's official continuous integration and build system.
- NixOps - Nix's official tool for deploying to NixOS machines in a network or the cloud.
Deployment
- colmena - a NixOS deployment tool
- deploy-rs - a simple multi-profile Nix-flake deploy tool
- lollypops - a parallel and stateles NixOS deployment tool
- Morph - a NixOS deployment tool
- Nixus - an experimental NixOS deployment tool
- nixcloud-webservices - nixpkgs extension for web-related technologies
- Bento - a NixOS fleet manager supporting remote systems not up 24/7
Docker
Kubernetes
- kubenix - Kubernetes resource builder written in Nix
- nix-kubernetes - Kubernetes deployment manager written in nix
- nixops-manager - NixOps wrapper for Git repositories
- krops - a stateless alternative to nixops with improved secret management.
- morph - a stateless alternative to nixops, deployment files mostly compatible to nixops's none backend
Alternative nix implementations & parser
- hnix (haskell, parser & evaluator)
- rnix (rust, parser)
- go-nix (go, parser & nix-compatible file hasher)
- nix-idea (java, parser)
See also
- Language-specific package helpers
- Alternative Package Sets
- Get inspiration from other peoples NixOS configuration
- NixOS Packages Search for searching through NixOS packages
- awesome-nix