这个项目能做什么

devenv 在 Nix 之上构建可复现的开发环境,通过 devenv.nix 和 devenv.yaml 进行配置。它专注于快速迭代:增量式 Nix 求值缓存、带实时构建进度的终端 UI,以及原生 shell 重载——在 shell 保持交互的同时于后台重新构建。内置基于 nixd 的 LSP 为 devenv.nix 提供自动补全、悬停文档和跳转到定义。 环境可以通过 CLI 临时创建,无需配置文件;也可以使用 --from 从其他仓库拉取,并且可以用带类型的值覆盖配置选项,例如 --option services.postgres.enable:bool true。 覆盖范围包括 50 多种语言,提供编译器、LSP 服务器、格式化工具、linter 和版本选择;来自 Nixpkgs 的 100,000 多个软件包,支持 Linux、macOS、x64 和 ARM64(包括 WSL2);以及 40 多种服务,例如 PostgreSQL、Redis、MySQL、MongoDB、Elasticsearch 和 Caddy。 用 Rust 编写的原生进程管理器处理依赖排序、重启策略、就绪探针(exec、HTTP、systemd notify)、套接字激活、看门狗心跳和文件监视,并自动分配空闲端口。任务支持基于 DAG 的执行、缓存、并行运行和命名空间,脚本运行时可以访问环境中的所有软件包。 打包和部署功能包括:无需 Docker 即可从环境构建 OCI 容器;用于配合特定语言工具打包应用的输出;以及用于跨仓库引用输出和选项的 polyrepo 支持。组合通过 profiles、imports 以及固定或覆盖的 inputs 来处理。 集成涵盖:用于声明式密钥管理的 SecretSpec;通过 git-hooks.nix 提供的 git hooks;使用 devenv test 进行测试,可自动启动和停止进程;用于自动激活 shell 的 direnv;用于 AI 助手集成的 MCP 服务器;以及基于 AI 从自然语言描述生成环境。 CLI 提供的命令包括 init、generate、shell、update、search、info、up、processes、tasks、test、container、inputs、changelogs、repl、gc、build、eval、direnvrc、version、mcp 和 lsp,以及用于 Nix 构建并发、封闭性、离线模式、profiles、求值缓存和跟踪输出的选项。