mirror of
https://github.com/nix-community/awesome-nix.git
synced 2024-11-28 12:08:51 +03:00
20 KiB
20 KiB
Awesome Nix
A curated list of the best resources in the Nix community.
Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible.
Please read the contribution guidelines before contributing.
Contents
- Resources
- Installation Media
- Channel History
- Deployment Tools
- Virtualisation
- Command-Line Tools
- Development
- DevOps
- Programming Languages
- NixOS Modules
- NixOS Configuration Editors
- Overlays
- Community
Resources
Learning
- Building a Rust service with Nix - An in-depth blog series about creating a Rust application with Nix.
- How to Learn Nix - It's like a Let's Play, but for obscure software documentation.
- Nix - A One Pager - A one page introduction to the Nix language.
- Nix from First Principles: Flake Edition - A modern crash-course to using Nix features, Flakes, and developing with Nix.
- Nix Notes - A collection of short notes about Nix, each contributing to the same virtual machine image.
- Nix Pills - The best way to learn, with examples.
- Nix Shorts - A collection of short notes about how to use Nix, updated for Nix Flakes.
- nix.dev - An opinionated guide for developers about getting things done using the Nix ecosystem.
- NixOS & Flakes Book - An unofficial and opinionated NixOS & Flakes book for beginners.
- Tour of Nix - An online interactive tutorial on Nix language constructs.
- Wombat's Book of Nix - A book-length introduction to Nix and flakes.
- Zero to Nix - A flake-centric guide to Nix and its concepts created by Determinate Systems to quickly onboard beginners.
Discovery
- Hound - Handily search across all or selected Nix-related repositories.
- Nix Package Versions - Find all versions of a package that were available in a channel and the revision you can download it from.
- Noogle - Nix API search engine allowing to search functions based on their types and other attributes.
- Pkgs on Nix - A database with Nix packages at all versions, from all channels.
- Home Manager Option Search - Search through all 2000+ Home Manager options and read how to use them.
Installation Media
- nixos-generators - Take a NixOS config and build multiple different images types including VirtualBox VMs, Azure images, and installation ISOs.
- nixos-infect - Replace a running non-NixOS Linux host with NixOS.
- nixos-up - Super easy NixOS installer that can be used from the installation ISO.
- nix-installer - Opinonated alternative to the official Nix install scripts.
Channel History
- Channel History - Get historical git commits for Nix channels.
- Nix Infra Status - Get the age and current git commit of each Nix channel.
- Nix Review Tools Reports - Reports showing problematic dependencies (dependencies causing the most failed builds) for major Hydra jobsets.
- Nixpkgs Bot - A Matrix bot to track when a Nixpkgs pull request reaches a relevant branch.
- nixpkgs PR tracker - A tracker for whether a PR has made it into a channel yet.
Deployment Tools
- bento - A KISS deployment tool to keep your NixOS fleet (servers & workstations) up to date.
- Colmena - A simple, stateless NixOS deployment tool modeled after NixOps and morph.
- deploy-rs - A simple multi-profile Nix-flake deploy tool.
- krops - A lightweight toolkit to deploy NixOS systems, remotely or locally.
- KubeNix - A Kubernetes resource builder using Nix.
- KuberNix - Single-dependency Kubernetes clusters via Nix packages.
- morph - A tool for managing existing NixOS hosts.
- Nixery - A Docker-compatible container registry which builds images ad-hoc via Nix.
- Nixinate - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH.
- NixOps - The official Nix deployment tool, compatible with AWS, Hetzner, and more.
- pushnix - Simple cli utility that pushes NixOS configuration and triggers a rebuild using ssh.
- terraform-nixos - A set of Terraform modules designed to deploy NixOS.
- terranix - Use Nix and the NixOS module system to write your Terraform code.
Virtualisation
- nixos-shell - Simple headless VM configuration using Nix (similar to Vagrant).
- extra-container - Run declarative NixOS containers from the command line.
- microvm - NixOS-based MicroVMs.
Command-Line Tools
- alejandra - An opinionated Nix code formatter optimized for speed and consistency.
- comma - Quickly run any binary; wraps together
nix run
andnix-index
. - deadnix - Scan Nix files for dead code.
- devenv - A Nix-based tool for creating developer shell environments quickly and reproducibly.
- manix - Find configuration options and function documentation for Nixpkgs, NixOS, and Home Manager.
- nixfmt - A formatter for Nix code, intended to easily apply a uniform style.
- nixpkgs-fmt - Nix code formatter for nixpkgs.
- nixpkgs-hammering - An opinionated linter for Nixpkgs package expressions.
- nix-alien - Run unpatched binaries on Nix/NixOS easily.
- nix-diff - A tool to explain why two Nix derivations differ.
- nix-du - Visualise which gc-roots to delete to free some space in your Nix store.
- nix-index - Quickly locate Nix packages with specific files.
- nix-init - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more.
- nix-melt - A ranger-like flake.lock viewer.
- nix-output-monitor - A tool to produce useful graphs and statistics when building derivations.
- nix-prefetch - A universal tool for updating source checksums.
- nix-tree - Interactively browse the dependency graph of Nix derivations.
- nurl - Generate Nix fetcher calls from repository URLs.
- nvd - Diff package versions between two store paths; it's especially useful for comparing NixOS generations on rebuild.
- statix - A linter/fixer to check for and fix antipatterns in Nix code.
Development
- Arion - Run
docker-compose
with help from Nix/NixOS. - cached-nix-shell - A
nix-shell
replacement that uses caching to open subsequent shells quickly. - Cachix - Hosted binary cache service; free for open-source projects.
- Devbox - Instant, portable, and predictable development environments.
- devshell -
mkShell
with extra bits and a toml config option to be able to onboard non-nix users. - dream2nix - A framework for automatically converting packages from other build systems to Nix.
- flake.parts - Minimal Nix modules framework for Flakes: split your flakes into modules and get things done with community modules.
- flake-utils - Pure Nix flake utility functions to help with writing flakes.
- flake-utils-plus - A lightweight Nix library flake for painless NixOS flake configuration.
- flakelight - A modular flake framework aiming to minimize boilerplate.
- flox - Manage and share development environments, package projects, and publish artifacts anywhere.
- gitignore.nix - The most feature-complete and easy-to-use
.gitignore
integration. - haumea - Filesystem-based module system for the Nix language similar to traditional programming languages, with support for file hierarchy and visibility.
- lorri - A much better
nix-shell
for development that augments direnv. - namaka - Snapshot testing for Nix based on haumea.
- nil - NIx Language server, an incremental analysis assistent for writing in Nix.
- niv - Easy dependency management for Nix projects with package pinning.
- nix-direnv - A fast loader and flake-compliant configuration for the direnv environment auto-loader.
- nix-update - Update versions/source hashes of nix packages.
- nixd - Nix language server, based on Nix libraries.
- nixpkgs-review - The best tool to verify that a pull-request in Nixpkgs is building properly.
- pre-commit-hooks.nix - Run linters/formatters at commit time and on your CI.
- rnix-lsp - A syntax-checking language server for Nix.
- robotnix - A declarative and reproducible build system for Android (AOSP) images.
- Snowfall Lib - A library that makes it easy to manage your Nix flake by imposing an opinionated file structure.
- templates - Project templates for many languages using Nix flakes.
DevOps
- Makes - A Nix-based CI/CD pipeline framework for building, testing, and releasing projects in any language, from anywhere.
- Standard - An opinionated Nix Flakes framework to keep Nix code in large projects organized, accompanied by a friendly CLI/TUI optized for DevOps scenarios.
Programming Languages
Arduino
- nixduino - Nix-based tool to help build Arduino sketches.
Clojure
- clj-nix - Nix helper functions for Clojure projects.
Crystal
- crystal2nix - Convert
shard.lock
into Nix expressions.
Elm
- elm2nix - Convert
elm.json
into Nix expressions.
Haskell
- cabal2nix - Converts a Cabal file into a Nix build expression.
- haskell-flake - A
flake-parts
Nix module for Haskell development. - haskell.nix - Alternative Haskell Infrastructure for Nixpkgs.
- nix-haskell-mode - Automatic Haskell setup in Emacs.
- nixkell - A Haskell project template using Nix and direnv.
Node.js
- Napalm - Support for building npm packages in Nix with a lightweight npm registry.
- node2nix - Generate Nix expression from a
package.json
(orpackage-lock.json
) (to be stored as files). - npmlock2nix - Generate Nix expressions from a
package-lock.json
(in-memory), primarily for web projects.
OCaml
- opam2nix - Generate Nix expressions from opam packages.
PHP
- composer2nix - Generate Nix expressions to build composer packages.
- composer-plugin-nixify - Composer plugin to help with Nix packaging.
- composition-c4 - Support for building composer packages from a
composer.lock
(using IFD). - nix-phps - Flake containing old and unmaintained PHP versions (intended for CI use).
- nix-shell - Nix shells for PHP development.
PureScript
- Easy PureScript Nix - A project to easily use PureScript and other tools with Nix.
- purs-nix - CLI and library combo designed for managing PureScript projects using Nix. It provides a Nix API that can be used within your projects, as well as a command-line interface for managing your development process.
Python
- poetry2nix - Build Python packages directly from Poetry's
poetry.lock
. No conversion step needed.
Ruby
- Bundix - Generates a Nix expression for your Bundler-managed application.
- ruby-nix - Generates reproducible ruby/bundler app environment with Nix.
Rust
- cargo2nix - Granular caching, development shell, Nix & Rust integration.
- crane - A Nix library for building Cargo projects with incremental artifact caching.
- fenix - Rust toolchains and Rust analyzer nightly for nix.
- naersk - Build Rust packages directly from
Cargo.lock
. No conversion step needed. - nix-cargo-integration - A library that allows easy and effortless integration for Cargo projects.
- nixpkgs-mozilla - Mozilla's overlay with Rust toolchains and Firefox.
- rust-nix-templater - Generates Nix build and development files for Rust projects.
- rust-overlay - Pure and reproducible nix overlay of binary distributed Rust toolchains.
Scala
- sbt-derivation - mkDerivation for sbt, similar to buildGoModule.
Zig
- zon2nix - Convert the dependencies in
build.zig.zon
to a Nix expression.
NixOS Modules
- base16.nix - Flake way to theme programs in base16 colorschemes, mustache template support included.
- Home Manager - Manage your user configuration just like NixOS.
- musnix - Do real-time audio work in NixOS.
- nixcloud-webservices - A Nixpkgs extension with a focus on ease of deployment of web-related technologies.
- NixVim - A NeoVim distribution built with Nix modules and Nixpkgs.
- Simple Nixos Mailserver - A complete mailserver, managed with NixOS modules.
- Stylix - System-wide colorscheming and typography for NixOS.
- nix-bitcoin - Modules and packages for Bitcoin nodes with higher-layer protocols with an emphasis on security.
NixOS Configuration Editors
Desktop apps
- NixOS Configuration Editor - Graphical editor for NixOS configuration. Desktop app in Rust and GTK.
- Nix Software Center - Install and manage Nix packages. Desktop app in Rust and GTK.
Webinterface
- MyNixOS - Graphical editor for Nix flakes. Create and manage configurations and modules for NixOS and Nix home-manager. Rather a Nix generator than a Nix editor, because it does not allow to import Nix files.
Overlays
- awesome-nix-hpc - High Performance Computing package sets.
- chaotic-nyx - Daily bumped bleeding edge packages like
mesa_git
& others that aren't yet in Nixpkgs. Created by the makers of Chaotic-AUR. - nix-darwin - Manage macOS configuration just like on NixOS.
- nixpkgs-firefox-darwin - Automatically updated Firefox binary packages for macOS.
- nixpkgs-wayland - Bleeding-edge Wayland packages.
- NUR - Nix User Repositories. The mother of all overlays, allowing access to user repositories and installing packages via attributes.
Community
- #nix:nixos.org
- #nixos on Libera.Chat
- Discord - Nix/Nixos (Unofficial)
- Discourse - The best place to get help and discuss Nix-related topics.
- NixCon - The annual community conference for contributors and users of Nix and NixOS.
- Wiki (Unofficial)