🍺 Homebrew 更新周报 # 20260407 | 迁移的成本

这周的工具列表里,突然多了很多"移植"的影子。

不是新想法,是旧思路在换场景。Swift 想去 Android,Python 想用 Rust 重写,AI 订阅想借给编辑器用。看起来我们进入了"不是造新轮子,是把轮子装到别的车上"的时期。


本周一句话总结

一批关于"如何把 A 搬到 B"的工具。

四月初的工具箱,越来越多的是"怎么把这套路子移到那边去"


本周新增工具速览

🧪 New Formulae

名称 中文说明
copilot-language-server GitHub Copilot 的语言服务器协议实现
dartaotruntime 运行 Dart AOT 编译快照的命令行工具
expert Elixir 官方语言服务器实现
git-format-staged 在提交前格式化暂存文件的 Git 命令
graalvm 带 Graal 编译器和 Native Image 的 JDK 发行版
libkiwix Kiwix 所有移植版本的通用代码库
libpathrs Linux 上更安全的路径解析 C 友好 API
merve 从 CommonJS 模块提取命名导出的 C++ 词法分析器
rustpython 用 Rust 编写的 Python 解释器
rvvm RISC-V 虚拟机
sarif-fmt 将 SARIF 文件格式化为易读输出
skip 用 Swift 构建 Android 应用的工具
t2sz 压缩文件为可寻址的 zstd 格式,支持 tar 存档的按文件寻址
tini 容器用的最小但有效的 init 进程
yelp-xsl Yelp 文档转换工具

🧩 New Casks

名称 中文说明
craft-agents 连接多个数据源的 AI 助手
font-ioskeley-mono 等宽字体
font-strichpunkt-sans 无衬线字体
proton-meet Proton Meet 桌面客户端
radial 基于手势的应用、文本片段和脚本启动器
remanager reMarkable 平板的模组管理桌面应用
super 融合结构化和半结构化数据的分析数据库
vibeproxy 让 AI 订阅在编码工具中可用的菜单栏应用
wallspace 动态壁纸应用

值得留意的几个方向


skip:把 Swift 搬到 Android 这件事

skip

Swift 本来只活在苹果生态里。skip 想做的是:让你用 Swift 写一套代码,同时编译出 iOS 和 Android 应用。

不是跨平台框架那种"写一次,到处丑"的方案。是"写 Swift,编译出真的 Kotlin"。它在编译层动了手脚,不是在运行时做兼容。

这省掉的是"又要学 Kotlin 又要学 Swift"这件事。但代价是你得接受 skip 对 Swift 的理解——它能翻译的只是 Swift 的子集。


rustpython:用 Rust 重写 Python 解释器

Python 慢是因为解释器用 C 写的,Rust 重写能快多少?rustpython 在试这个问题。

它不是要替代 CPython,是在做"如果我想嵌入一个 Python 解释器到 Rust 项目里,我能不能不依赖 CPython"。这解决的是 FFI(Foreign Function Interface)的心智负担——不用管内存怎么在 Rust 和 C 之间传,直接在 Rust 里跑 Python 代码。

但这意味着很多 CPython 的扩展不能用。如果你的代码依赖 numpy、pandas 这些,rustpython 暂时帮不了你。


vibeproxy:让 AI 订阅共享给多个工具

你订阅了 Claude Pro,想在 VSCode、Cursor、终端里都用。vibeproxy 做的是:它假装自己是 OpenAI API,把请求转给你的 AI 订阅。

省掉的是"每个编辑器都要配一遍 API key"这件事。也省掉"买多个订阅"的钱。

但它是个代理层,所以延迟会多一点。而且它要一直跑在后台。适合那种"我就是想把 Claude 用在所有地方"的人。


git-format-staged:只格式化你改过的代码

你在一个老项目里改了三行代码,prettier 想把整个文件重新格式化一遍。git commit 的时候 diff 一团糟,reviewer 看不出你到底改了什么。

git-format-staged 做的是:只对你这次暂存的那几行代码跑格式化工具,其他地方不碰。

这省掉的是"要不要先提一个纯格式化的 commit"这种纠结。也省掉"手动选中要格式化的行"的操作。


一点个人感受

graalvm 进 Homebrew 了,这是个信号——Native Image 的编译时间从"能忍"变成"可以接受"了吗?还是大家放弃了等它再快一点?

skip 的思路很聪明,但我不确定会有多少人愿意把 Android 的生命周期交给一个编译层。万一哪天 Kotlin 出了新特性,skip 跟不上怎么办?

vibeproxy 让我想起以前用 SS 的时候,那种"把一个订阅分给所有设备用"的感觉。工具本身没问题,但我隐约觉得这类需求的存在,说明现在 AI 订阅的定价模式还没稳定下来。


结语

迁移永远比重新开始便宜,但只在你知道终点不会变的时候。

这周的工具都在省一个成本:学习新东西的成本。但它们的代价是你得相信这条迁移路径会一直有人维护。

工具在变,但节奏不必跟着变。


下期预告
继续观察 Homebrew 的动向,看看四月中还会出现哪些"省心智成本"的工具。