[!TIP] UniRTM 强大的任务编排能力让你能够极其轻松地将 Trivy 、Syft 等安全工具无缝集成到你的日常构建和部署流程中。
介绍
UniRTM (Universal Runtime Manager) 能够在每次执行命令前自动准备好你的开发环境。它将项目所需的工具版本、环境变量和常用任务统一集中在 .unirtm.toml 文件中进行管理,确保每次打开新终端、切换分支或运行 CI 任务时,环境配置都绝对一致。
- 安装并在诸如 node, python, go 等各类 开发工具 之间无缝切换。
- 基于不同目录加载隔离的 环境变量,支持读取
.env以及 SOPS 加密数据。 - 编写并运行项目的构建、测试、代码检查及部署 任务。
虽然在概念上我们深受伟大的 mise 启发(在此致敬),但 UniRTM 在架构上引入了几个独特的选择:
- 纯 Go 引擎: 底层完全由 Go 语言编写,利用 goroutines 实现了极致的并发下载能力。
- 轻量级 Go 垫片 (Lightweight Shims): 彻底抛弃了缓慢的 Bash 垫片。所有的命令均由高性能的单一 Go 引擎拦截并极速路由,既避免了环境变量( PATH )无限制爆炸,又保证了极致的执行性能。
- 任务无缝集成安全工具: 虽然保持了引擎本身的极致精简,但你能在项目中利用 UniRTM 的任务系统,丝滑地串联 Trivy 、Syft 等安全漏洞扫描工作流。
- 强制版本锁定: 自动生成
unirtm.lock锁文件,不仅锁定版本号,还精确锁定所有下载包的校验和,从而保障团队环境的绝对可复现。
支持的操作系统 (Supported Platforms)
完全支持 macOS (Apple Silicon / Intel)、Linux (glibc & musl/Alpine) 以及 Windows 平台。
演示 (Demo)
以下演示展示了如何使用 UniRTM 全局安装指定版本的 go。
请注意安装的速度以及内置的安全漏洞扫描功能!
快速入门
安装 UniRTM
你可以通过多种方式安装 UniRTM ,详见 快速开始。
$ curl -sL https://raw.githubusercontent.com/snowdreamtech/UniRTM/main/install.sh | bash
$ ~/.local/bin/unirtm --version
UniRTM v0.1.0 macos-arm64 (2026-05-28)
将 UniRTM 挂载到你的 Shell 中(请选择与你对应的 Shell ):
# 假设 unirtm 被安装在默认的 ~/.local/bin/unirtm 下
echo 'eval "$(~/.local/bin/unirtm env)"' >> ~/.bashrc
echo 'eval "$(~/.local/bin/unirtm env)"' >> ~/.zshrc
echo '~/.local/bin/unirtm env | source' >> ~/.config/fish/config.fish
单次执行指定版本的工具
$ unirtm exec node@20 -- node -v
unirtm [email protected] ✓ installed
v20.x.x
全局安装开发工具
$ unirtm use --global node@22 [email protected]
$ node -v
v22.x.x
$ go version
go version go1.22.x macos/arm64
查看 开发工具指南 获取更多示例。
管理环境变量
# .unirtm.toml
[env]
SOME_VAR = "foo"
$ unirtm set SOME_VAR=bar
$ echo $SOME_VAR
bar
此外,UniRTM 同样可以自动读取本地的 .env 文件。
运行任务
# .unirtm.toml
[tasks.build]
description = "编译项目"
run = "echo building..."
$ unirtm run build
building...
查看 任务系统指南 获取更多高级用法。
UniRTM 综合实战配置
下面是一个综合的 .unirtm.toml 示例,展示了如何在一个项目中同时管理开发工具、环境变量,并使用内置的安全扫描执行高级的部署任务编排:
# .unirtm.toml
[tools]
terraform = "1"
aws-cli = "2"
node = "20"
[env]
TF_WORKSPACE = "development"
AWS_REGION = "us-west-2"
NODE_ENV = "production"
[tasks.plan]
description = "运行带有工作区配置的 terraform plan"
run = """
terraform init
terraform workspace select $TF_WORKSPACE
terraform plan
"""
[tasks.validate]
description = "验证 AWS 凭据与 terraform 配置"
run = """
aws sts get-caller-identity
terraform validate
"""
[tasks.audit]
description = "执行深度的底层安全扫描"
run = """
trivy fs --format cyclonedx --output sbom.json .
gitleaks detect --source . --no-banner
"""
[tasks.deploy]
description = "在验证和安全扫描后正式部署基础设施"
depends = ["validate", "audit", "plan"]
run = "terraform apply -auto-approve"
你可以这样运行:
unirtm install # 安装所需要的所有开发工具
unirtm run deploy # 在部署前,将自动按顺序并行执行校验和安全审查任务
官方文档
完整的架构解析与高级配置指南请前往官网:snowdreamtech.github.io/UniRTM
多维度深度对比 (Architecture & Environments)
为了满足现代企业级和高并发容器化环境的严苛要求,UniRTM 在底层架构上做出了极具针对性的设计抉择。以下是我们在多个关键维度上与优秀的生态前辈 (mise, asdf) 的深度对比:
1. 核心架构与执行路径
| 对比维度 | asdf (Bash) |
mise (Rust) |
UniRTM (Go) |
核心优势与意义 |
|---|---|---|---|---|
| 命令执行路径 | Bash 垫片 | Rust 垫片 / PATH | 轻量级 Go 垫片 | 使用 Go 编译的单一入口代理,彻底解决 Bash 垫片的性能低下问题,且完美解决跨平台兼容性。 |
| 并发下载模型 | 无 | 操作系统线程 | 原生 Goroutines | 依托 Go 语言极其轻量的协程机制,在海量工具链下载更新时实现极致的并发吞吐量。 |
| 配置层级 | .tool-versions |
mise.toml |
.unirtm.toml |
使用标准化的 TOML 文件统一管理项目的工具、环境和任务。 |
2. 环境变量与上下文管理
| 功能特性 | asdf |
mise |
UniRTM |
详细说明 |
|---|---|---|---|---|
| 统一管理范畴 | 仅开发工具 | 工具+环境+任务 | 工具+环境+任务 | 根据当前所在目录,自动且无缝地切换整体上下文环境。 |
.env 文件解析 |
❌ | 原生支持 | 原生支持 | 告别额外的环境变量加载器,内置完美解析传统 .env 文件。 |
| 密钥加密管理 | ❌ | 插件集成体系 | 内置 SOPS 原生支持 | 将基于 SOPS 的加密环境变量作为一等公民,提供开箱即用的敏感信息保护。 |
3. 跨平台兼容与系统韧性
| 功能特性 | asdf |
mise |
UniRTM |
详细说明 |
|---|---|---|---|---|
| Windows 原生支持 | 依赖 WSL/MSYS | 支持 | 自底向上原生设计 | 从设计之初就兼顾 Windows 与 Cygdrive ,提供极其丝滑的原生跨平台体验。 |
| Alpine / Musl 兼容 | 部分支持 | 支持 | 硬核底层兼容 | 完美无缝运行在没有任何 glibc 依赖的极简 Alpine 容器环境之中。 |
| 版本与校验锁定 | 仅版本号 | mise.lock (支持) |
unirtm.lock (默认) |
锁定版本的同时严格校验所有底层文件的 Hash ,保障团队环境的一致性。 |
4. 生态亲和度与极简主义
| 功能特性 | asdf |
mise |
UniRTM |
详细说明 |
|---|---|---|---|---|
| 混合路径解析 | ❌ | 部分支持 | 深度支持 (Cygdrive) | 对 Windows Git Bash / MSYS2 的原生路径转换进行了专项优化。 |
| 外部依赖要求 | 依赖 Bash 生态 | 极少 | 绝对零依赖 | 核心插件直接编译入独立二进制,丢进任意极简系统开箱即用。 |
| 垫片开销 | 常规 (Bash 脚本) | 已优化 (Rust 二进制) | 极速 (Go 二进制) | 所有工具软链回 unirtm 引擎进行毫秒级极速路由,彻底杜绝 PATH 爆炸问题。 |
| DevOps 集成 | 自定义脚本 | 良好 | 原生级无缝集成 | Go 语言血统,天生匹配云原生基础设施,极其适合企业内部自研平台的二次集成。 |
致谢鸣谢
本项目在架构设计和开发者体验上深受伟大的 mise 的启发。
开源协议
本项目基于 MIT 许可证开源。版权所有 (c) 2026-至今 SnowdreamTech Inc 。
