Awesome Nix
Nixを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
- リソース
- インストールメディア
- チャンネル履歴
- デプロイツール
- 仮想化
- コマンドラインツール
- 開発
- DevOps
- プログラミング言語
- NixOSモジュール
- NixOS設定エディター
- オーバーレイ
- ディストリビューション
- コミュニティ
リソース
学習
- NixでRustサービスを構築する - NixでRustアプリケーションを作成する方法を詳しく扱うブログシリーズ。
- Explainix - Nix構文を視覚的に説明します。
- Nixの学び方 - Let’s Playのような形式で、知られざるソフトウェアのドキュメントを扱います。
- Nix - A One Pager - Nix言語を1ページで紹介します。
- nix-book - NixOSの堅牢化と設定に関する包括的なガイド。
- Nix from First Principles: Flake Edition - Nixの機能とFlakeの利用、Nixによる開発を短時間で学べる現代的な入門。
- Nix in 100 Seconds - FireshipがNixを100秒で紹介するYouTube動画。
- Nix Notes - 同じ仮想マシンイメージへ寄与する、Nixについての短いメモのコレクション。
- Nix Pills - 例を使った最良の学習方法。
- Nix Shorts - Nixの使い方に関する短いメモ集。Nix Flakes向けに更新されています。
- Nix Starter Config - NixOSとhome-managerを始めるための簡潔なNix Flakeテンプレート集。
- nix.dev - Nixエコシステムを使って物事を進める開発者向けの方針を明確にしたガイド。
- NixOS & Flakes Book - 初心者向けの非公式で方針を明確にしたNixOS・Flakes解説書。
- NixOS Asia Tutorial Series - Nix Flakes、NixOS、home-managerなどの使い方を扱う高レベルなチュートリアルシリーズ。
- NixOS in Production - PDF形式の無料(任意額支払い)書籍。
- Unofficial NixOS test driver manual - クイックスタートガイドとベストプラクティスを備えた、方針を明確にした非公式NixOSテストドライバーマニュアル。
- Official Nix manual - Nix公式マニュアルの最新安定版。リファレンスガイドとしての利用に最適で、更新が提供されると反映されます。
- Official NixOS manual - NixOS公式マニュアルの最新安定版。チュートリアルとリファレンスガイドを兼ね、更新が提供されると反映されます。
- Official Nixpkgs manual - Nixpkgs公式リファレンスマニュアルの最新安定版。更新が提供されると反映されます。
- Tour of Nix - Nix言語の構造を学べるオンライン対話型チュートリアル。
- Wombat’s Book of Nix - NixとFlakeについての書籍相当の入門。
- Zero to Nix - 初心者がすぐに学び始められるようDeterminate Systemsが作成した、Nixとその概念を扱うFlake中心のガイド。
探索
-
Home Manager Option Search - 2,000を超えるHome Managerの全オプションを検索し、使い方を確認できます。
-
Nix Package Versions - チャンネルで提供されたパッケージの全バージョンと、それをダウンロードできるリビジョンを検索します。
-
Nix Software - 使いやすいパッケージ検索。ロゴ、スクリーンショット、カテゴリ、多言語翻訳に対応します。
-
nix-search-tv - Nixpkgs、Home Managerなどのパッケージとオプションを対象にしたCLIファジーファインダー。
-
Noogle - 型やその他の属性に基づいて関数を検索できるNix API検索エンジン。
-
NüschtOS Search - 簡潔で高速な静的ページ型NixOSオプション検索。
-
Searchix - NixOS、Darwin、Home ManagerのNixパッケージとオプションを検索します。
インストールメディア
- nix-installer-scripts - 公式インストーラーを実行しつつ、SELinux用fcontextの追加や、誤ってアンインストールしないよう既定プロファイル外へNixをインストールするなどの調整も行います。
- nix-installer - Nix公式インストールスクリプトに代わる方針を明確にしたツール。
- nixos-anywhere - SSH経由でどこにでもNixOSをインストールします。
- nixos-generators - NixOS設定から、VirtualBox VM、Azureイメージ、インストールISOなど複数種類のイメージを構築します。
- nixos-infect - 稼働中のNixOS以外のLinuxホストをNixOSへ置き換えます。
- nixos-up - インストールISOから利用できる非常に簡単なNixOSインストーラー。
チャンネル履歴
-
npc- Nixpkgsチャンネル履歴を表示・二分探索するCLI。 -
Nix Infra Status - 各Nixチャンネルの経過時間と現在のGitコミットを取得します。
-
Nix Review Tools Reports - 主要なHydra jobsetについて、問題のある依存関係(ビルド失敗を最も多く引き起こす依存関係)を示すレポート。
-
nixpkgs PR tracker - PRがすでにチャンネルへ入ったかを追跡します。
デプロイツール
- bento - NixOSフリート(サーバーとワークステーション)を最新に保つKISSなデプロイツール。
- Clan - シークレットの組み込み対応と、分散ネットワークを管理するモジュールシステムを備えたP2Pデプロイツール。
- Colmena - NixOpsとmorphを模した、簡潔でステートレスなNixOSデプロイツール。
- comin - Gitリポジトリから継続的にpullするデプロイツール。
- deploy-rs - 簡潔なマルチプロファイルNix Flakeデプロイツール。
- krops - NixOSシステムをリモートまたはローカルへデプロイする軽量ツールキット。
- KubeNix - Nixを使うKubernetesリソースビルダー。
- KuberNix - Nixパッケージによる単一依存関係のKubernetesクラスター。
- morph - 既存のNixOSホストを管理するツール。
- Nixery - Nixを介してその場でイメージを構築するDocker互換コンテナレジストリ。
- Nixinate - SSH経由で既存のNixOSホストを管理するapp出力を提供するNix Flakeライブラリ。
- Nixlets - Nixだけを使うHelmのようなツール。内部でKubenixを使用します。
- NixOps - AWS、Hetznerなどに対応するNix公式デプロイツール。
- pushnix - NixOS設定をpushし、SSHを使って再ビルドを開始する簡潔なCLIユーティリティ。
- terraform-nixos - NixOSのデプロイ用に設計されたTerraformモジュール集。
- terranix - NixとNixOSモジュールシステムを使ってTerraformコードを記述します。
仮想化
- agent-sandbox.nix - Linuxではbubblewrap、macOSではsandbox-execを使い、任意のパッケージ(AIコーディングエージェントなど)を宣言的にサンドボックス化します。
- extra-container - コマンドラインから宣言的なNixOSコンテナを実行します。
- microvm - NixOSベースのMicroVM。
- nixos-shell - Nixを使う簡潔なヘッドレスVM設定(Vagrantに類似)。
コマンドラインツール
- alejandra - 速度と一貫性を重視した、方針を明確にしたNixコードフォーマッター。
- angrr - Auto Nix GC Roots Retention。シンボリックリンク先の更新時刻に基づいて自動GC rootを削除します。
- comma - あらゆるバイナリをすばやく実行します。
nix runとnix-indexを組み合わせます。 - deadnix - Nixファイルのデッドコードをスキャンします。
- devenv - 開発用shell環境を迅速かつ再現可能に作成するNixベースのツール。
- dix - Diff Nix。Nix関連の要素を比較する超高速ツール。
- manix - Nixpkgs、NixOS、Home Managerの設定オプションと関数ドキュメントを検索します。
- nh -
nix、nixos-rebuild、home-manager、nix-darwin CLIの出力を、dixとnix-output-monitorを活用して改善します。 - nix-alien - パッチ未適用のバイナリをNix/NixOS上で簡単に実行します。
- nix-diff - 2つのNix derivationが異なる理由を説明するツール。
- nix-du - Nix storeの空き容量を増やすために削除すべきgc-rootを可視化します。
- nix-index - 特定のファイルを含むNixパッケージをすばやく特定します。
- nix-init - ハッシュの事前取得、依存関係推論、ライセンス検出などを使ってURLからNixパッケージを生成します。
- nix-melt - ranger風のflake.lockビューアー。
- nix-output-monitor - derivationのビルド時に有用なグラフと統計を生成するツール。
- nix-prefetch - ソースチェックサム更新用の汎用ツール。
- nix-tree - Nix derivationの依存関係グラフを対話的に参照します。
- nixfmt - 統一スタイルを容易に適用するためのNixコードフォーマッター。
- nixos-cli - ユーザー体験の向上を重視した、一般的なNixOSツール向けの設定可能な統合CLI。
- nixpkgs-hammering - Nixpkgsパッケージ式向けの方針を明確にしたリンター。
- nurl - リポジトリURLからNix fetcher呼び出しを生成します。
- nvd - 2つのstore path間でパッケージバージョンを比較します。再ビルド時にNixOS generationを比較する場合に特に便利です。
- optnix - Nixモジュールシステム向けの端末ベースオプション検索。
- statix - Nixコードのアンチパターンを検査・修正するリンター兼フィクサー。
開発
- Arion - Nix/NixOSの支援を受けて
docker-composeを実行します。 - attic - マルチテナント対応Nix Binary Cache。
- cached-nix-shell - キャッシュを使い、2回目以降のshellをすばやく開く
nix-shell代替。 - Cachix - ホスト型バイナリキャッシュサービス。オープンソースプロジェクトは無料です。
- compose2nix - Docker ComposeプロジェクトからNixOS設定を生成します。
- Conflake -
flake.nix向けの、必要な機能を内蔵し、ファイルを自動読込する規約ベース設定フレームワーク。 - Devbox - 即時利用でき、移植可能で予測可能な開発環境。
- devshell - Nix未経験者も導入できるよう、追加機能とtoml設定オプションを備えた
mkShell。 - dream2nix - 他のビルドシステムからNixへパッケージを自動変換するフレームワーク。
- flake-edit - 自動followと更新機能を使い、CLIから直接Flake入力を編集します。
- flake-utils-plus - NixOS Flakeを容易に設定する軽量なNixライブラリFlake。
- flake-utils - Flakeの記述を支援する純粋なNix製Flakeユーティリティ関数。
- flake.parts - Flake向けの最小限のNixモジュールフレームワーク。Flakeをモジュールへ分割し、コミュニティモジュールを利用できます。
- flakelight - ボイラープレートの最小化を目指すモジュール式Flakeフレームワーク。
- flox - 開発環境の管理・共有、パッケージプロジェクト、成果物の公開をどこからでも行えます。
- gitignore.nix - 最も高機能で使いやすい
.gitignore統合。 - haumea - ファイル階層と可視性をサポートする、従来のプログラミング言語に似たNix言語向けファイルシステムベースのモジュールシステム。
- lorri - direnvを拡張する、開発向けの大幅に改善された
nix-shell。 - make-shell -
mkShellとモジュールを組み合わせた、pkgs.mkShell関数のモジュール式でほぼドロップイン可能な代替。 - MCP-NixOS - NixOSパッケージ、オプション、Home Manager、nix-darwin設定について正確な情報をAIアシスタントへ提供するMCPサーバー。
- namaka - haumeaを基にしたNix向けスナップショットテスト。
- nil - Nixでの記述を支援する増分解析対応Nix言語サーバー。
- niv - パッケージ固定を使うNixプロジェクト向けの簡単な依存関係管理。
- nix2container - Nixによる効率的なコンテナ構築ワークフロー。
- nix-direnv - direnv環境自動ローダー向けの高速でFlake準拠の設定ローダー。
- nix-health - Nixインストールの状態を検査するプログラム。各プロジェクトは独自の状態検査を
flake.nixで設定することもできます。 - nix-oci - nix2containerで最小かつ再現可能なOCIコンテナを構築するflake-partsモジュール。
- nix-update - Nixパッケージのバージョン/ソースハッシュを更新します。
- nixd - Nixライブラリを基にしたNix言語サーバー。
- nixpkgs-review - NixpkgsのPull Requestが正しくビルドされることを確認する最良のツール。
- Nixtest - スナップショット・単体テスト対応、JUnit生成などを備えたNix向けテストフレームワーク。
- npins - Nixプロジェクトで各種依存関係を扱う簡潔なツール。Nivに着想を得ており、同様の機能を持ちます。
- pog - Bashスクリプトの新しく強力な作成方法。開発者によるCLI作成方法を変える強力なNixライブラリです。
- pre-commit-hooks.nix - コミット時およびCI上でリンター/フォーマッターを実行します。
- rnix-lsp - Nix向けの構文検査対応言語サーバー。
- robotnix - Android(AOSP)イメージ向けの宣言的で再現可能なビルドシステム。
- services-flake - Nix Flake向けのNixOS風サービス設定フレームワーク。
- Snowfall Lib - 方針を持つファイル構造を課すことでNix Flakeを簡単に管理できるライブラリ。
- templates - Nix Flakeを使う多数の言語向けプロジェクトテンプレート。
- treefmt-nix - 単一の
.nixファイルから一つのコマンドでプロジェクトの全ファイルを整形できるフォーマッター。
DevOps
- Nix GitLab CI - すべてのNixパッケージへ完全にアクセスし(キャッシュを含む)、純粋なNixでGitLab CIパイプラインを定義します。
- nixidy - NixとArgo CDによるKubernetes GitOps。
- Standard - 大規模プロジェクトのNixコードを整理する、方針を明確にしたNix Flakesフレームワーク。DevOpsシナリオ向けの使いやすいCLI/TUIを備えます。
プログラミング言語
Arduino
- nixduino - Arduinoスケッチのビルドを支援するNixベースのツール。
Clojure
- clj-nix - Clojureプロジェクト向けNixヘルパー関数。
Crystal
- crystal2nix -
shard.lockをNix式へ変換します。
Elixir
- deps_nix - Mix依存関係をNix derivationへ変換します。
Elm
- elm2nix -
elm.jsonをNix式へ変換します。
Gleam
- nix-gleam - Gleamアプリケーション向け汎用Nixビルダー。
Haskell
- cabal2nix - CabalファイルをNixビルド式へ変換します。
- haskell-flake - Haskell開発向けの
flake-partsNixモジュール。 - haskell.nix - Nixpkgs向けの代替Haskell基盤。
- nix-haskell-mode - Emacs上でHaskellを自動設定します。
- nixkell - Nixとdirenvを使うHaskellプロジェクトテンプレート。
Haxe
Julia
- Manifest2Nix.jl - 事前コンパイルにより、再現可能なJuliaのビルドと実験を作成するNixライブラリ。
Lean
- lean4-nix - Lean 4向けNix Flakeビルドと
lake2nix。
Node.js
- Napalm - 軽量npmレジストリを使い、Nixでnpmパッケージをビルドします。
- node2nix -
package.json(またはpackage-lock.json)から、ファイルとして保存するNix式を生成します。 - npmlock2nix - 主にWebプロジェクト向けに、
package-lock.jsonからメモリー内でNix式を生成します。
OCaml
- opam2nix - opamパッケージからNix式を生成します。
PHP
- composer-plugin-nixify - Nixパッケージ化を支援するComposerプラグイン。
- composer2nix - ComposerパッケージをビルドするNix式を生成します。
- composition-c4 -
composer.lockからComposerパッケージをビルドします(IFDを使用)。 - nix-phps - 古く保守されていないPHPバージョンを含むFlake(CI利用を想定)。
- nix-shell - PHP開発向けNix shell。
PureScript
- Easy PureScript Nix - PureScriptなどのツールをNixで容易に使うためのプロジェクト。
- purs-nix - Nixを使うPureScriptプロジェクト管理向けのCLI・ライブラリ。プロジェクト内で使えるNix APIと、開発プロセス管理用CLIを提供します。
Python
- poetry2nix - Poetryの
poetry.lockからPythonパッケージを直接ビルドします。変換工程は不要です。 - uv2nix -
uvworkspacesを純粋なNix derivationへ変換します。
Ruby
Rust
- cargo2nix - 細粒度キャッシュ、開発用shell、Nix・Rust統合。
- crane - 成果物の増分キャッシュを使ってCargoプロジェクトをビルドするNixライブラリ。
- fenix - Nix向けRustツールチェーンとRust analyzer nightly。
- naersk -
Cargo.lockからRustパッケージを直接ビルドします。変換工程は不要です。 - nix-cargo-integration - Cargoプロジェクトを簡単かつ手軽に統合できるライブラリ。
- rust-nix-templater - Rustプロジェクト向けNixビルド・開発ファイルを生成します。
Scala
- sbt-derivation - buildGoModuleに似たsbt向けmkDerivation。
Zig
NixOSモジュール
- base16.nix - base16配色でプログラムをテーマ設定するFlake方式。mustacheテンプレートにも対応します。
- Home Manager - NixOSと同じようにユーザー設定を管理します。
- impermanence - 再起動後も保持するファイルとディレクトリを選択できます。
- musnix - NixOSでリアルタイム音声処理を行います。
- nix-bitcoin - セキュリティを重視した、上位層プロトコル対応Bitcoinノード向けモジュールとパッケージ。
- nix-darwin - NixOSと同じようにmacOS設定を管理します。
- nix-mineral - NixOSを手軽かつ適切に堅牢化します。
- nix-topology - NixOS設定からインフラストラクチャーとネットワークの図を直接生成します。
- NixOS hardware - さまざまなハードウェア向けに設定を最適化するNixOSプロファイル。
- NixOS-WSL - Windows Subsystem for LinuxでNixOSを実行するモジュール。
- Nixvim - NixモジュールとNixpkgsで構築されたパッケージ済みNeovimディストリビューション。
- nvf - Nix向けの移植可能でモジュール式のNeovim設定フレームワーク。
- Self Host Blocks - NixOSモジュールを基にし、ベストプラクティスへ注力したモジュール式サーバー管理。
- Simple Nixos Mailserver - NixOSモジュールで管理される完全なメールサーバー。
- Stylix - NixOS向けのシステム全体の配色・タイポグラフィー設定。
NixOS設定エディター
デスクトップアプリ
- Nix Software Center - Nixパッケージをインストール・管理します。RustとGTKによるデスクトップアプリ。
- NixOS Configuration Editor - NixOS設定のグラフィカルエディター。RustとGTKによるデスクトップアプリ。
Webインターフェース
- MyNixOS - Nix Flake用グラフィカルエディター。NixOSとNix home-managerの設定・モジュールを作成・管理します。Nixファイルをインポートできないため、NixエディターというよりNixジェネレーターです。
オーバーレイ
- awesome-nix-hpc - High Performance Computingパッケージセット。
- neovim-nightly-overlay - 毎日更新されるNeovim nightlyパッケージ。
- nixpkgs-firefox-darwin - 自動更新されるmacOS向けFirefoxバイナリパッケージ。
- nixpkgs-mozilla - RustツールチェーンとFirefoxを含むMozillaのオーバーレイ。
- nixpkgs-wayland - 最新開発版のWaylandパッケージ。
- NUR - Nix User Repositories。すべてのオーバーレイの中心で、ユーザーリポジトリへのアクセスと属性によるパッケージのインストールを可能にします。
- rust-overlay - バイナリ配布されたRustツールチェーンの純粋で再現可能なNixオーバーレイ。
- System Manager - Nix上に構築された、NixOS以外のLinux向けシステム設定ツール。
- zig-overlay - Zigコンパイラーをパッケージ化するNix Flake。Zigが公式にビルドしたバイナリをミラーし、ソースからビルドしません。
ディストリビューション
- nixbsd - FreeBSDカーネルを使うNixOSフォーク。
- NixNG - NixOSに似たGNU/Linuxディストリビューション。コンテナと軽量性への注力が主な違いです。
- SnowflakeOS - 初心者の使いやすさと簡単な操作を重視したNixOSベースのLinuxディストリビューション。
コミュニティ
- #nix:nixos.org
- Libera.Chatの#nixos
- Discord - Nix/Nixos(非公式)
- Discourse - Nix関連の話題について支援を得たり議論したりするのに最適な場所。
- NixCon - Nix・NixOSの貢献者と利用者向けに毎年開かれるコミュニティカンファレンス。
- Wiki(公式)
- Wiki(非公式)