这周的工具列表里,突然多了很多"移植"的影子。
不是新想法,是旧思路在换场景。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 这件事
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 的动向,看看四月中还会出现哪些"省心智成本"的工具。