声明式构建环境工具
各维度得分依据公开资料与字段推算,加权后即综合评分,仅供参考。
garn 是一个基于 Nix 的开发者工具,用 garn.ts 声明式描述项目环境、检查和脚本。它关注解决“本机 Node/Go/格式化器版本不一致”“CI 反复调试”“脚本只在某台机器可用”等问题。与 Docker 或 Vagrant 不同,garn 使用 Nix store 提供依赖,脚本和检查在本机原生运行,避免虚拟机或容器在非 Linux 主机上的额外开销。
功能上,garn 可管理编译器、代码生成器、格式化器、测试运行器、linter 等开发依赖,并通过 garn enter 进入封装环境。它支持 addCheck 定义可复现检查,本地运行的结果可与 GitHub CI(如 garnix)保持一致;也支持 addExecutable 添加确定性脚本,用于开发服务器、打包、格式化或代码生成。当前明确支持 Go、Npm 和 Haskell,适合多语言项目统一工具链,但语言覆盖仍较窄。
garn 的配置方式是 TypeScript 风格 API,例如 mkNpmProject、mkGoProject、mkHaskellProject、withDevTools、addCheck 等。garn.ts 由 Deno 支撑,可配置 Deno LSP;garn edit 还能下载并启动预配置的 VSCodium。生态上,它依赖 Nix、nixpkgs 和 Garnix cache,并提供 Bash、Zsh、Fish 自动补全。文档覆盖安装、卸载、更新、手动安装、教程、概念和 TypeScript API,示例充分,入门路径清晰。
正文没有提供定价、付费计划、商业支持或 SLA 信息。是否开源也未在正文中直接说明,但安装方式引用了 github:garnix-io/garn,并提供 GitHub 入口。
优点是可复现性强、无需容器即可统一开发环境、对多语言 monorepo 友好,并能减少 CI 与本地差异。缺点是依赖 Nix,团队有学习和安装成本;当前仅明确支持 Go、Npm、Haskell;sandbox checks 默认无法访问互联网。它更适合重视工程一致性、愿意引入 Nix 的团队,而不太适合只需要简单语言包管理的小项目。
正文未提供中国大陆网络、镜像或支付信息,访问状态判定为未知。若 Nix/GitHub/外部缓存访问不稳定,可能需要代理或内部缓存。可替代方向包括 Docker、Vagrant、Nix flakes、direnv、Devbox、devenv 等。
本测评基于公开资料整理,不构成购买建议,请以 garn.io 官网实际信息为准。
基于Nix思路配置项目,适合可复现开发环境。
评分明细(分布与用户短评)接入中。当前展示 TG4G 综合评分,数据源自公开测评与用户反馈。