Repolode
cachix

cachix/devenv

基于 Nix 的声明式、可复现开发环境,通过 devenv.nix 配置语言、服务和进程。

可替代:Docker Desktop

Star
7,773
Fork
583
未关闭 Issue
376
最近提交
2小时前

这是什么?

devenv 是基于 Nix 构建的开发环境工具。你可以在 devenv.nix 文件中声明项目的 shell,包括语言工具链、软件包、PostgreSQL、Redis 等后台服务以及脚本,devenv 会构建一个隔离的环境,在不同机器上行为保持一致。

除了 shell 本身,它还提供原生进程管理器(支持依赖排序和就绪探针)、基于 DAG 执行并带缓存的任务运行器,以及会在测试前后自动启停进程的 test 命令。环境可以打包为不依赖 Docker 的 OCI 容器,配置也可以通过 imports、profiles 和外部来源在项目之间共享。

项目还包含终端界面、devenv.nix 的 LSP、direnv 集成、基于 git-hooks.nix 的 Git 钩子,以及面向 AI 助手的 MCP 服务。支持 Linux、macOS、x64 和 ARM64,包括 WSL2。

核心功能

  • 01在 devenv.nix 中声明式配置环境,支持 50 多种语言和 40 多种服务。
  • 02原生进程管理器,支持依赖排序、重启策略和就绪探针。
  • 03基于 DAG 的任务运行器,支持缓存和并行执行。
  • 04无需 Docker 即可从环境构建 OCI 容器。
  • 05集成 direnv、Git 钩子,并提供 devenv.nix 的 LSP。
  • 06通过 profiles 和 imports 在项目间复用环境配置。

适用场景

  • 让团队每位成员使用相同的工具链和数据库版本。
  • 在本地一起启动项目所需的 Postgres、Redis 和应用进程。
  • 将开发环境打包为容器,用于 CI 或部署。
  • 在多个仓库之间共享统一的环境配置。

快速上手

  1. 1

    按照 devenv.sh 上的入门指南安装 devenv

  2. 2

    使用 init 生成初始 devenv.nix

    devenv init
  3. 3

    使用 shell 激活开发环境

    devenv shell

使用前须知

  • 需要先安装 Nix,因为 devenv 基于 Nix 构建。
  • 环境依赖 Nixpkgs 和 Nix 求值,新用户需要一定学习成本。

标签

常见问题

devenv 是什么?
基于 Nix 的声明式、可复现开发环境,通过 devenv.nix 配置语言、服务和进程。 devenv 是基于 Nix 构建的开发环境工具。你可以在 devenv.nix 文件中声明项目的 shell,包括语言工具链、软件包、PostgreSQL、Redis 等后台服务以及脚本,devenv 会构建一个隔离的环境,在不同机器上行为保持一致。
devenv 可以免费使用吗?用的什么许可证?
devenv 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
devenv 还在维护吗?
活跃维护中。devenv 最近一次提交是在 2026年10月22日。
devenv 适合用来做什么?
让团队每位成员使用相同的工具链和数据库版本。 在本地一起启动项目所需的 Postgres、Redis 和应用进程。 将开发环境打包为容器,用于 CI 或部署。 在多个仓库之间共享统一的环境配置。
devenv 怎么安装和运行?
按照 devenv.sh 上的入门指南安装 devenv 使用 init 生成初始 devenv.nix: devenv init 使用 shell 激活开发环境: devenv shell
在哪里获取 devenv?
源代码和安装说明在 GitHub 上:https://github.com/cachix/devenv

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目