Libghostty 1.0 发布,终端模拟器迎来稳定 ABI
Libghostty 1.0 正式发布了。这是一个从 Ghostty 核心提取的高性能 C 库,如今其 C ABI 已完全稳定。过去一年,它的影响力远超预期:JetBrains 全家桶的终端已切换至 Libghostty,服务超过 1250 万活跃用户;Neovim 也计划用它替换 libvterm。从 Vercel 的 Turborepo 到 OrbStack 等商业产品,再到 Emacs 和 WASM 环境,Libghostty 正成为终端生态的基石。这次 1.0 发布不仅带来了严格的 ABI 兼容性承诺,还完善了打包工具链,支持从 Linux 到 WebAssembly 的广泛平台,让开发者能用约 1500 行 C 代码构建出功能强大的终端。
如今,使用 Libghostty 驱动终端的用户数量,远超直接使用 Ghostty 应用程序的用户,而且倍数非常惊人。
HN 评论区
81- jdorfman
“而且,基于它构建了一整波新的终端和‘代理型’编码工具,例如 herdr 和 cmux,而不是再去写另一个模拟器。”
Mitchell 本可以轻松把他的竞品 Rex 塞进去,但他克制住了。致敬。
- smj-edison
我目前正在开发自己的 Zig 项目(一个解释器),现阶段正在为其设计 C 接口。看到文中提到的诸如将对象作为不透明句柄,或使用枚举键控的 getter 和 setter 等做法,让我反思自己当前的 API 设计显得多么笨拙,因为我对调用方泄露了太多细节。
真正引起我注意的是这句话:“所以从一开始,我就从我喜欢使用的 C 库中汲取灵感,设计了具有强大且稳定 ABI 的 API,以便未来扩展。”有哪些好的例子吗?我觉得自己对设计精良的 C 库经验不足,不知道该关注什么。
- JuniperMesos
Libghostty 是一个非常酷的项目,这次发布令人兴奋,向 spearheading 此项目的 mitchellh 以及所有为该项目做出贡献的人致敬。我现在将 ghostty 作为主要的终端模拟器,几个月前我曾尝试在一个 Android 项目中使用 libghostty,计划等有时间时再回来继续,因此我个人也受益于这项工作。
- spudlyo
Ghostty 真正大放异彩的一个领域是那些花哨的 TUI 程序,比如 pi agent。Pi 最近有一个 tuiMode “全屏”功能,体验极佳。通过 Kitty 图形协议显示内联图像也是一个巨大的改进——我特别喜欢模型调用 `read` 读取图像文件后,我能在终端直接看到结果。OSC-8 超链接支持也非常实用。视口滚动速度极快,而且 pi 可以根据需要隐藏或显示滚动条。
- ximm
“任何 libghostty-vt 嵌入者报告的每一个 bug 都会让整个生态系统变得更好。我们在 libghostty-vt 中发布的每一个功能都能快速、安全地供所有人使用。终端的发展可以更快,碎片化更少。”
有人能对比一下 libvte 吗?许多终端只是它的薄包装(gnome-terminal, xfce4-terminal, mate-terminal, lxterminal, sakura, …)。它绑定于 GTK,因此适用范围要窄得多。但感觉上两者在精神上是相通的。