CLIツール
cachix/devenv avatar
cachix/devenv

devenvはNixの宣言性を開発環境の手順へ落とし込む

Nix を使用した、高速、宣言的、再現可能、および構成可能な開発者環境。

スター 7,645フォーク 567RustApache-2.0

ひと目でわかる

これは何?
Rust製のdevenvは、Nixを土台に言語、パッケージ、サービス、タスクを宣言し、再現可能な開発シェルを組み立てる。
誰に向いている?
devenvは、複数人や複数リポジトリで開発ツールの版と起動手順をそろえたいチームに向く。Nixの評価時間、キャッシュ、既存スクリプトとの境界は環境によって変わり、READMEの簡便さだけでは判断できない。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 2 日前です。
何の言語で書かれている?
主に Rust です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

devenvがNixに加える開発環境の構造

READMEの機能リストは開発者体験から始まります。ターミナルUIはライブビルドの進行状況、タスク階層、エラー詳細を表示します。ネイティブシェルのリロードはバックグラウンドで再構築し、シェルは対話的なままです。プロジェクトは「インスタント環境」を主張しており、Nix評価のインクリメンタルキャッシュにより、変更がない場合は100ミリ秒未満です。devenv.nix向けのLSPがあり、オートコンプリート、ホバードキュメント、組み込みのnixdによる定義へのジャンプを提供します。設定ファイルなしでCLIからアドホック環境を作成でき、`--option languages.rust.enable:bool true`のようなオプションを使用します。`--from github:myorg/configs`で他のリポジトリの設定を使用するアウトオブツリーdevenvも可能です。

devenvの宣言は、開発者ごとの手作業を一つのファイルに寄せる一方、Nixのflakeやinputsの更新を依存関係の更新として扱う。版を変えた時は、シェルに入れることだけでなく、サービスのポート、環境変数、タスクの終了コードも確認対象になる。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、devenvがNixに加える開発環境の構造を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。devenvがNixに加える開発環境の構造に関する版、入力、出力を残せば、同じ確認を後からやり直せる。

言語とパッケージを同じ宣言に置く

READMEは50以上の言語をサポートし、コンパイラ、LSPサーバー、フォーマッタ、リンター、バージョン選択などの組み込みツールを備えると主張しています。また、Linux、macOS、x64、ARM64(WSL2を含む)向けにNixpkgsから100,000以上のパッケージにアクセスできると主張しています。そのうえ、PostgreSQL、Redis、MySQL、MongoDB、Elasticsearch、Caddyなど40以上のサービスがリストされています。これらの数字はREADMEの記述であり、リポジトリのメタデータは独立して検証していません。

devenv shellで得られる環境とCIの実行環境を同じ定義から作れるかが採用判断の分岐になる。秘密情報を宣言へ直接書かず、READMEと公式ドキュメントが示す統合方法を確認し、ローカルのキャッシュ有無による初回時間も測るべきである。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、言語とパッケージを同じ宣言に置くを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。言語とパッケージを同じ宣言に置くに関する版、入力、出力を残せば、同じ確認を後からやり直せる。

サービスとプロセスの起動順

このプロジェクトにはRustで書かれたネイティブのプロセスマネージャが含まれています。依存関係の順序、再起動ポリシー、レディネスプローブ(exec、HTTP、systemd notify)、ソケットアクティベーション、ウォッチドッグハートビート、ファイル監視をサポートします。自動ポート割り当てにより空きポートを見つけ、並行環境が衝突しないようにします。タスクはDAGベースの実行、キャッシュ、並列実行、名前空間サポートを備えます。スクリプトはすべての環境パッケージにアクセスできます。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、サービスとプロセスの起動順を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。サービスとプロセスの起動順に関する版、入力、出力を残せば、同じ確認を後からやり直せる。

タスクとスクリプトを再実行可能にする

devenvはDockerなしで環境からOCIコンテナをビルドできます。出力は各言語の最良のツール(crate2nixやuv2nixなど)を使ってアプリをパッケージングするためのものです。ポリレポサポートにより、リポジトリをまたいで出力やオプションを参照できます。プロファイルは`--profile backend --profile testing`で環境バリアントを定義します。importsはプロジェクト間で環境を構成して再利用することを可能にします。inputsはNix依存関係の固定と上書きに使用します。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、タスクとスクリプトを再実行可能にするを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。タスクとスクリプトを再実行可能にするに関する版、入力、出力を残せば、同じ確認を後からやり直せる。

パッケージングとデプロイの接続

SecretSpecは宣言的でプロバイダに依存しないシークレット管理を提供し、言及されているバックエンドにはkeyring、1Password、dotenvがあります。git-hooks.nixによるGitフックには、事前設定されたフォーマッタとリンターが付属しています。`devenv test`コマンドはプロセスを自動的に起動および停止します。direnv統合により、ディレクトリに入ったときにシェルを自動的にアクティブ化できます。AIアシスタント統合用のMCPサーバーがあり、パッケージとオプションの検索を提供します。devenv.newによるAI生成は、自然言語の説明から環境をスキャフォールドします。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、パッケージングとデプロイの接続を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。パッケージングとデプロイの接続に関する版、入力、出力を残せば、同じ確認を後からやり直せる。

統合、秘密情報、テストの扱い

クイックスタートは`devenv init`を使用して`devenv.nix`ファイルを生成します。パッケージ、言語、プロセス、サービス、スクリプト、タスク、テスト、出力、Gitフックのコメント付き例が含まれています。`devenv shell`を実行すると環境がアクティブになります。コマンドリストには、init、generate、shell、update、search、info、up、processes、tasks、test、container、inputs、changelogs、repl、gc、build、eval、direnvrc、version、mcp、lsp、helpが含まれます。オプションでは、入力の上書き、型付き設定オプションの設定、Nixビルドの制御などが可能です。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、統合、秘密情報、テストの扱いを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。統合、秘密情報、テストの扱いに関する版、入力、出力を残せば、同じ確認を後からやり直せる。

コマンドとドキュメントから採用を決める

READMEは、入門、基本、ロードマップ、ブログ、`devenv.yaml`と`devenv.nix`のリファレンスに関するドキュメントにリンクしています。貢献ガイドへのリンクもあります。プロジェクトはApache-2.0でライセンスされています。ライセンスは、複製、派生物の作成、表示、実行、サブライセンス、配布を行うための永続的、世界的、非独占的、無償、ロイヤリティフリー、取消不能の著作権ライセンスを付与します。特許ライセンスも含まれます。ライセンステキストはサポート、保証、セキュリティ体制については言及しておらず、それらはREADMEやライセンスの抜粋では確立されていません。

devenvはNixの宣言性を開発環境の手順へ落とし込むでは、コマンドとドキュメントから採用を決めるを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。コマンドとドキュメントから採用を決めるに関する版、入力、出力を残せば、同じ確認を後からやり直せる。

編集部の結論

devenvは、複数人や複数リポジトリで開発ツールの版と起動手順をそろえたいチームに向く。Nixの評価時間、キャッシュ、既存スクリプトとの境界は環境によって変わり、READMEの簡便さだけでは判断できない。採用前にdevenv.nixのinputsとサービス定義を固定し、`devenv shell`、`devenv test`、`devenv build`で生成物と起動状態を確認してからCIへ移すのがよい。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート