Verso 浏览器上手指南:用 Servo 引擎写一个自己的 Rust 浏览器
【免费下载链接】versoMirror of https://gitlab.com/verso-browser/verso项目地址: https://gitcode.com/GitHub_Trending/vers/verso
如果你想在本地动手跑一个不依赖 Chromium、改用 Servo 引擎渲染网页的浏览器,或者正想借一个真实项目搞懂 Rust 是怎么嵌入网页引擎的,Verso 就是为此准备的。它用 Rust 写成,把 Servo 引擎装进一个多窗口、多标签的图形界面里,定位是"探索 Servo 如何长成成熟浏览器"的实验场,而不是一个追求功能齐全的日常主力浏览器。下面直接带你把它装起来,再讲清楚它能做什么、里面怎么搭。
三步跑起来
最短路径就三步:克隆仓库、进目录、用 cargo 启动。装好 Rust 工具链后,在仓库根目录执行下面的命令即可拉起窗口。
git clone https://gitcode.com/GitHub_Trending/vers/verso cd verso cargo run三个平台要额外备好的依赖不一样,先看这张表再开跑:
| 平台 | 前置工具 |
|---|---|
| Windows | 用 scoop 装 git、python、llvm、cmake、curl,再pip install mako |
| macOS | 装 Xcode,brew 装 cmake、pkg-config、harfbuzz、python@3,pip3 install mako,并用 rustup 装 Rust |
| Linux | 推荐 Flatpak(配 24.08 的 Platform 与 Rust/LLVM 扩展)或 Nix(shell.nix),项目不再单独排查裸机编译问题 |
Linux 用户如果不想碰 Flatpak/Nix,按 Servo 官方书的说明自己搭环境也可以,但作者只对前两种方式的构建问题做处理,这点要心里有数。
装起来之后能做什么
Verso 的界面是为"多视图"设计的,想同时对照两个页面时,它支持多窗口、多标签独立浏览,各自有地址和状态,不用来回切。你打开的每个标签由独立的 WebView 驱动,窗口大小、缩放、位置都能单独调。
对网页本身的兼容性,它走 WebRender 做合成,WebGPU 的纹理通道已经接进渲染管线;但 WebGL 线程目前还是关着的,重度 3D 页面暂时别指望。需要蓝牙设备的功能页能跑,因为蓝牙线程是默认启用的;而音视频多媒体现在挂的是占位的 dummy 后端,还没接真正的解码,遇到需要播放的页面会打折扣。
想边看边查页面,可以加--devtools-port启动,起一个 DevTools 服务,用 Firefox 的开发者工具远程连进来检查 DOM 和样式。下载、书签、历史记录、本地存储这些日常状态都有模块在管,触控和键盘输入也被统一处理过。
这些能力能稳,跟选 Rust 直接相关:内存安全让它在开一堆标签时更少出野指针式的崩溃。安全上,网络层走 rustls 做 TLS,证书可配,沙盒能力正在逐步补齐。整体说,它适合拿来"看引擎怎么干活",不适合当唯一的主力浏览器。
它的里面长什么样
选型上,Verso 把 Servo 当成"引擎"来嵌入,Rust 负责引擎之外的一切:窗口、事件、输入、UI 状态。整个代码库按职责拆得很细,src/webview/ 装着标签和网页视图相关的逻辑,src/compositor.rs 负责把渲染组件拼到一起,src/tab.rs 管单个标签的状态与历史,src/window.rs 管窗口。浏览器和引擎进程之间靠一套独立的消息定义通信,就是 versoview_messages/ 里那组可序列化的指令。你读代码时按"窗口→标签→视图→合成"这条线走,基本就能抓住主干。
常见问题
怎么自定义启动行为?配置集中在 src/config.rs,启动参数也都能透传,比如用--user-agent改标识、--zoom-level调缩放、--init-script在每个文档开始时注入脚本、--devtools-port开调试服务。
想加功能应该从哪下手?入口在 src/webview/webview.rs 附近,照着现有标签逻辑扩就行。不过要提前说清:项目目前处于归档状态、不再接受新功能请求,作者只接 bug 修复类的改动。
已知限制和后续计划?多进程模式、全平台沙盒、Gstreamer 多媒体、以及把 WebGL 线程真正打开,都还列在未来计划里没做完;这也是它没能跟上 Servo 后续大版本、选择先归档的原因。它的一些改动已经并回了 Servo 上游。
Verso 现在已归档维护,但作为"Rust + Servo"的完整样例仍然完整,适合照着读、照着改来理解一个浏览器是怎么从引擎里长出来的。
【免费下载链接】versoMirror of https://gitlab.com/verso-browser/verso项目地址: https://gitcode.com/GitHub_Trending/vers/verso
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考