用 GPUI 与 Servo 拼一个 macOS 浏览器:Meridian 的做法
来源:op.tngl.io — 2026-11
📋 概述
Meridian 是一个跑在 macOS 上的浏览器:网页内容与浏览状态交给 Servo 管理,浏览器外壳(地址栏、标签栏、书签、历史、右键菜单、深色模式、阅读视图)用 GPUI 绘制——也就是 Zed 编辑器背后的那套 UI 框架。整个项目用 Rust 写成,最关键的一步是把粘合代码抽成独立库 gpui-servo,把 Servo 包装成一个普通的 GPUI 组件,于是任何人都能照着它写自己的 Servo 浏览器。功能清单相当完整:带补全的地址栏、横向与纵向两种标签栏、书签与历史、按站点缩放、音视频播放、阅读模式、标签预览、从书签与历史里做补全。作者对适用边界的描述很克制——对 JavaScript 与布局特性用得少的站点,它现在已经相当可用。字体、快捷键、配色、标签都能配置,用 nix run 一条命令即可试用,源码托管在 Tangled 上并公开 issue 列表欢迎贡献。
🔑 核心要点
- 浏览器外壳用 GPUI 绘制(Zed 编辑器的 UI 框架),网页内容与浏览状态由 Servo 管理,两者职责切得干净。
- 关键工程决定是把粘合代码抽成独立库 gpui-servo:把 Servo 变成普通的 GPUI 组件,谁都能拿它写浏览器。
- 功能表相当完整:带补全的地址栏、横竖两种标签栏、书签历史、按站点缩放、音视频播放、阅读模式、标签预览、深色模式。
- 作者对适用范围的说明很克制:JavaScript 与布局特性用得少的站点已经相当可用,没有夸大成通用浏览器。
- 试用成本只有一条命令:nix run git+https://tangled.org/oppi.li/meridian。
- 项目托管在 Tangled 上,issue 列表公开,作者明确欢迎贡献。
💡 金句
对于 JavaScript 和复杂布局用得少的网站,Meridian 现在就已经相当好用了。
👍 0
👎 0
← 返回 Lobsters 首页