Convert Figma logo to code with AI

nix-community logoawesome-nix

😎 A curated list of the best resources in the Nix community [maintainer=@cyntheticfox]

3,081
140
3,081
13

Top Related Projects

17,805

Nix Packages collection & NixOS

12,081

Nix, the purely functional package manager

Manage a user environment using Nix [maintainer=@rycee]

nix modules for darwin

A collection of NixOS modules covering hardware quirks.

Pure Nix flake utility functions [maintainer=@zimbatm]

Quick Overview

Awesome-nix is a curated list of the best resources for Nix, a powerful package manager and system configuration tool. It provides links to tutorials, tools, and projects related to Nix and NixOS, serving as a comprehensive starting point for both beginners and experienced users.

Pros

  • Extensive collection of high-quality Nix-related resources
  • Regularly updated with community contributions
  • Well-organized into categories for easy navigation
  • Includes resources for various skill levels, from beginners to advanced users

Cons

  • May be overwhelming for complete beginners due to the large number of resources
  • Some listed projects or tools may become outdated over time
  • Lacks detailed explanations or comparisons of the listed resources
  • Primarily focuses on linking to external resources rather than providing in-depth content

Competitor Comparisons

17,805

Nix Packages collection & NixOS

Pros of nixpkgs

  • Comprehensive package collection with over 80,000 packages
  • Official repository maintained by the NixOS project
  • Provides the core functionality for NixOS and Nix package management

Cons of nixpkgs

  • Large codebase can be overwhelming for newcomers
  • Slower to update due to strict review process and testing requirements
  • Steeper learning curve for contributing

Code comparison

nixpkgs:

{ stdenv, fetchFromGitHub, ... }:

stdenv.mkDerivation rec {
  pname = "example";
  version = "1.0.0";
  src = fetchFromGitHub { ... };
}

awesome-nix:

## Packages
- [example](https://github.com/example/example) - A brief description of the package

Summary

nixpkgs is the official package repository for NixOS and Nix, offering a vast collection of packages and serving as the foundation for the Nix ecosystem. It provides a comprehensive set of tools and packages but can be complex for beginners.

awesome-nix, on the other hand, is a curated list of Nix-related resources, tools, and projects. It serves as a starting point for discovering useful Nix-related content and is more accessible for newcomers to the Nix ecosystem.

While nixpkgs focuses on package definitions and system configurations, awesome-nix provides a broader overview of the Nix ecosystem, including tutorials, tools, and community projects.

12,081

Nix, the purely functional package manager

Pros of nix

  • Official repository for the Nix package manager
  • Contains the core implementation and documentation
  • Actively maintained by the NixOS organization

Cons of nix

  • Focused solely on the Nix package manager
  • May not include as many community resources or third-party tools

Code comparison

nix:

{ stdenv, lib, fetchurl, curl }:

stdenv.mkDerivation rec {
  pname = "nix";
  version = "2.3.16";

awesome-nix:

# Awesome Nix [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

> A curated list of the best resources in the Nix community

## Contents

Summary

nix is the official repository for the Nix package manager, containing the core implementation and documentation. It's actively maintained by the NixOS organization but focuses solely on the package manager itself.

awesome-nix, on the other hand, is a community-curated list of Nix-related resources, tools, and projects. It provides a broader overview of the Nix ecosystem but doesn't contain the actual Nix implementation.

While nix is essential for using and developing the Nix package manager, awesome-nix serves as a valuable resource for discovering additional tools, learning materials, and community projects within the Nix ecosystem.

Manage a user environment using Nix [maintainer=@rycee]

Pros of home-manager

  • Provides a comprehensive system for managing user environments and configurations
  • Allows for declarative and reproducible user-specific setups
  • Integrates seamlessly with the Nix ecosystem and NixOS

Cons of home-manager

  • Steeper learning curve compared to a curated list of resources
  • Requires more setup and configuration to get started
  • May be overkill for users only interested in exploring Nix concepts

Code comparison

home-manager:

{ config, pkgs, ... }:

{
  home.packages = [ pkgs.htop pkgs.ripgrep ];
  programs.git = {
    enable = true;
    userName = "John Doe";
    userEmail = "john@example.com";
  };
}

awesome-nix:

## Applications

- [Nix Searcher](https://github.com/nix-community/nix-searcher) - Search for Nix packages and options.
- [NixOS Generator](https://github.com/nix-community/nixos-generator) - Generate NixOS images for various targets.

## Learning Resources

- [Nix Pills](https://nixos.org/guides/nix-pills/) - A series of articles introducing Nix and NixOS.

home-manager is a powerful tool for managing user environments, while awesome-nix serves as a curated list of Nix-related resources. The former provides a practical implementation, while the latter offers a comprehensive overview of the Nix ecosystem.

nix modules for darwin

Pros of nix-darwin

  • Focused specifically on macOS system configuration and management
  • Provides a declarative approach to managing macOS settings and applications
  • Integrates well with existing Nix ecosystem and tools

Cons of nix-darwin

  • Limited scope compared to the broader Nix ecosystem covered by awesome-nix
  • Steeper learning curve for users not familiar with Nix concepts
  • May require more setup and configuration for non-macOS systems

Code Comparison

nix-darwin configuration example:

{ config, pkgs, ... }:
{
  environment.systemPackages = [ pkgs.vim ];
  programs.zsh.enable = true;
}

awesome-nix doesn't typically include code snippets, as it's a curated list of Nix-related resources. However, it might reference projects with code examples like:

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = [ pkgs.hello ];
}

Summary

nix-darwin is a specialized tool for managing macOS systems using Nix, offering deep integration with macOS-specific features. awesome-nix, on the other hand, is a comprehensive resource list covering the entire Nix ecosystem, including tools, tutorials, and projects. While nix-darwin provides a more focused and streamlined experience for macOS users, awesome-nix offers a broader overview and collection of resources for Nix users across different platforms and use cases.

A collection of NixOS modules covering hardware quirks.

Pros of nixos-hardware

  • Focused specifically on hardware support for NixOS
  • Maintained by the official NixOS organization
  • Provides ready-to-use configurations for specific hardware models

Cons of nixos-hardware

  • Limited scope compared to the broader Nix ecosystem
  • May not cover all hardware configurations or use cases
  • Less frequently updated than community-driven resources

Code Comparison

nixos-hardware:

{ config, lib, pkgs, ... }:

{
  imports = [ ./common.nix ];
  hardware.enableRedistributableFirmware = true;
}

awesome-nix:

## Hardware

- [nixos-hardware](https://github.com/NixOS/nixos-hardware) - A collection of NixOS modules covering hardware quirks.
- [nixos-generators](https://github.com/nix-community/nixos-generators) - Collection of image builders for NixOS.

Summary

nixos-hardware is a specialized repository focusing on hardware support for NixOS, providing ready-to-use configurations for specific hardware models. It's maintained by the official NixOS organization, ensuring reliability and integration with the core system.

awesome-nix, on the other hand, is a comprehensive list of Nix-related resources, covering a broader range of topics including hardware support. It serves as a curated directory of tools, projects, and documentation for the entire Nix ecosystem.

While nixos-hardware offers more detailed hardware-specific configurations, awesome-nix provides a wider overview of available resources, including hardware-related projects like nixos-hardware itself.

Pure Nix flake utility functions [maintainer=@zimbatm]

Pros of flake-utils

  • Focused utility library for Nix flakes, providing reusable functions
  • Simplifies common flake patterns, reducing boilerplate code
  • Actively maintained with regular updates and improvements

Cons of flake-utils

  • Limited in scope compared to the comprehensive resource list in awesome-nix
  • Requires familiarity with Nix flakes, which may not be suitable for beginners
  • Less community-driven content and contributions

Code Comparison

flake-utils:

{
  description = "Example using flake-utils";

  inputs.flake-utils.url = "github:numtide/flake-utils";

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system: {
      # System-specific outputs
    });
}

awesome-nix:

# Awesome Nix

A curated list of the best resources in the Nix community.

## Learning
- [Nix Pills](https://nixos.org/nixos/nix-pills/)
- [Nix Package Manager Guide](https://nixos.org/nix/manual/)

## Tools
- [nix-direnv](https://github.com/nix-community/nix-direnv)
- [nixfmt](https://github.com/serokell/nixfmt)

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Awesome Nix Awesome NixOS

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

Learning

  • Building a Rust service with Nix - An in-depth blog series about creating a Rust application with Nix.
  • Explainix - Explain Nix syntax visually.
  • 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 in 100 Seconds - A YouTube video from Fireship presenting Nix in 100 seconds.
  • 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.
  • NixOS Asia Tutorial Series - A series of high-level tutorials on using Nix Flakes, NixOS, home-manager, etc.
  • 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

  • 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.
  • Home Manager Option Search - Search through all 2000+ Home Manager options and read how to use them.
  • NüschtOS Search - Simple and fast static-page NixOS option search.
  • Searchix - Search Nix packages and options from NixOS, Darwin and Home Manager.

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 - Opinionated alternative to the official Nix install scripts.
  • nix-installer-scripts - Runs the official installer but does some tweaking as well such as adding fcontext for selinux and installing nix outside of the default profile so you don't accidently uninstall it.

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.

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.
  • 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.
  • 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 and nix-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.
  • nh - Better output for nix nixos-rebuild and home-manger CLI using nvd and nix-output-monitor.
  • 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

  • attic - Multi-tenant Nix Binary Cache.
  • 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.
  • compose2nix - Generate a NixOS config from a Docker Compose project.
  • 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-health - A program to check the health of your Nix install. Furthermore, individual projects can configure their own health checks in their flake.nix.
  • 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.
  • services-flake - A NixOS-like service configuration framework for Nix flakes.
  • 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.
  • nixidy - Kubernetes GitOps with Nix and Argo CD.
  • 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.

Gleam

  • nix-gleam - Generic Nix builder for Gleam applications.

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.

Haxe

  • haxix - Nix flake to build haxe/Heaps.io projects.
  • kebab - Haxe packages for Nix.

Node.js

  • Napalm - Support for building npm packages in Nix with a lightweight npm registry.
  • node2nix - Generate Nix expression from a package.json (or package-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

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.
  • nix-darwin - Manage macOS configuration just like on 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.
  • Self Host Blocks - Modular server management based on NixOS modules and focused on best practices.
  • 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.
  • nix-mineral - Conveniently and reasonably harden NixOS.
  • nix-topology - Generate infrastructure and network diagrams directly from your NixOS configuration.
  • impermanence - Lets you choose what files and directories you want to keep between reboots.

NixOS Configuration Editors

Desktop apps

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.
  • 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.
  • System Manager - A non-NixOS Linux system configuration tool built on Nix.

Distributions

  • nixbsd - A NixOS fork with a FreeBSD kernel.
  • NixNG - A GNU/Linux distribution similar to NixOS, defining difference is a focus on containers and lightweightness.
  • SnowflakeOS - A NixOS-based Linux distribution focused on beginner friendliness and ease of use.

Community