Ladybird:一个从零造的独立浏览器

Ladybird:一个从零造的独立浏览器

文章目录

  • 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 说明很多人在意这件事。