文章目录
- Ladybird:一个从零造的独立浏览器
- 1、 为什么要自己造浏览器
- 2、 架构设计
- 3、 核心组件
- 4、 跨平台支持
- 5、 适合谁关注
Ladybird:一个从零造的独立浏览器
64,299 Star,Ladybird 在 GitHub 上的热度不低。
这个项目要干的事很简单——造一个真正独立的浏览器。不是套壳 Chromium,不是魔改 Firefox,而是从渲染引擎到 JavaScript 引擎全部自己写。
1、 为什么要自己造浏览器
现在市面上的浏览器,Chrome、Edge、Brave、Opera,底层全是 Chromium。Firefox 是唯一一个还在用独立引擎的主流浏览器。整个互联网的渲染标准,基本被一家公司说了算。
Ladybird 想打破这个局面。它基于 Web 标准构建了一套全新的引擎,目标是让现代网页能正常跑起来。
目前还处于 pre-alpha 阶段,只适合开发者折腾,离日常使用还有距离。但从架构上看,它走得挺扎实。
2、 架构设计
Ladybird 用了多进程架构:
- 一个主 UI 进程
- 多个 WebContent 渲染进程(每个标签页独立一个)
- 一个 ImageDecoder 进程
- 一个 RequestServer 进程
图片解码和网络连接都放到独立进程里处理,遇到恶意内容不会直接拖垮整个浏览器。每个标签页的渲染进程跟系统是隔离的,沙箱化做得比较彻底。
3、 核心组件
Ladybird 的底层库很多继承自 SerenityOS 项目:
- LibWeb:Web 渲染引擎,负责解析 HTML/CSS 并绘制页面
- LibJS:JavaScript 引擎,执行网页脚本
- LibWasm:WebAssembly 实现
- LibCrypto/LibTLS:加密和 TLS 协议支持
- LibHTTP:HTTP/1.1 客户端
- LibGfx:2D 图形库,处理图片解码和渲染
- LibUnicode:Unicode 和本地化支持
- LibMedia:音视频播放
- LibCore:事件循环和操作系统抽象层
- LibIPC:进程间通信
这些组件各司其职,组合起来构成完整的浏览器功能。
4、 跨平台支持
Ladybird 目前能在 Linux、macOS 上直接跑,Windows 用户需要通过 WSL2 来使用。BSD 等类 Unix 系统也有支持。
项目采用 2-clause BSD 协议开源,代码自由度很高。
5、 适合谁关注
- 对浏览器内核感兴趣、想研究渲染引擎实现的开发者
- 关注 Web 标准独立性、不希望 Chromium 一家独大的技术从业者
- 想参与一个大型 C++ 开源项目的贡献者
Ladybird 的目标不是做一个能用的浏览器,而是证明独立引擎在今天依然可行。6 万多个 Star 说明很多人在意这件事。
ybird 的目标不是做一个能用的浏览器,而是证明独立引擎在今天依然可行。6 万多个 Star 说明很多人在意这件事。