Ladybird 跨平台 Web 浏览器开源项目

我要开发同款
匿名用户2022年09月13日
263阅读

技术信息

开源地址
https://github.com/SerenityOS/ladybird
授权协议
BSD-2

作品详情

Ladybird浏览器于2022年7月4日诞生,最初Ladybird的开发是作为SereityOS 系统的 “LibWeb” 浏览器引擎调试工具,随后作者AdreasKlig想给它构建一个简单的GUI。

随着Ladybird的不断完善,两个月后,Adreas发现自己完成了一个Web浏览器的大部分开发工作,Ladybird已经算是一个跨平台的Web浏览器。

 

LibWeb和LibJS都是新的引擎。作者有Qt和WebKit项目的开发历史,所以从中得到了一些灵​​感,但所有的代码都是新的,浏览器和库用则C++编写。

这是当前浏览器堆栈的粗略细分:

Ladybird :选项卡式浏览器GUI应用程序LibWeb:Web引擎,多种标准:HTML、DOM、CSS、SVG,……LibJS:ECMAScript语言、运行时库、垃圾收集器LibGfx:2D图形、文本渲染、图像格式(PNG、JPG、GIF,...)LibRegex:正则表达式引擎LibXML :XML解析器LibWasm:WebAssembly解析器和解释器LibUicode:Uicode支持库LibTextCodec :文本编码转换库LibMarkdow :Markdow解析器LibCore:其他支持功能(I/O、日期时间、MIME数据……)Qt:跨平台GUI和网络LibWeb有一个 Platform 层,Ladybird为事件循环、计时器、系统字体设置等注入Qt支持代码。目前Ladybird使用Qt进行网络任务,因为在SereityOS之外还没有多进程RequestServer系统。同样,Ladybird目前是单进程的,而SereityOS浏览器是每个选项卡的进程。

构建条件需要Qt6开发包和支持c++20的编译器。在Debia/Ubutu上,所需的软件包包括但不限于:

sudoaptistallbuild-essetialcmakelibgl1-mesa-devija-buildqt6-base-devqt6-tools-dev-tools在ArchLiux/Majaro上:

sudopacma-Sbase-develcmakelibglijaqt6-baseqt6-toolsqt6-waylad对于c++编译器,至少需要gcc-11或clag-13才能支持c++20。

对于Ubutu20.04及更高版本,请确保Qt6Waylad软件包可用:

sudoaptistallqt6-waylad

 

功能介绍

Ladybird 浏览器于 2022 年 7 月 4 日诞生,最初 Ladybird 的开发是作为 SerenityOS 系统的 “LibWeb” 浏览器引擎调试工具,随后作者 Andreas ...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论