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

我要开发同款
匿名用户2022年09月13日
26阅读
开发技术C/C++
所属分类应用工具、浏览器
授权协议BSD-2

作品详情

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

随着Ladybird的不断完善,两个月后,Andreas发现自己完成了一个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解析器和解释器LibUnicode:Unicode支持库LibTextCodec :文本编码转换库LibMarkdown :Markdown解析器LibCore:其他支持功能(I/O、日期时间、MIME数据……)Qt:跨平台GUI和网络LibWeb有一个 Platform 层,Ladybird为事件循环、计时器、系统字体设置等注入Qt支持代码。目前Ladybird使用Qt进行网络任务,因为在SerenityOS之外还没有多进程RequestServer系统。同样,Ladybird目前是单进程的,而SerenityOS浏览器是每个选项卡的进程。

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

sudoaptinstallbuild-essentialcmakelibgl1-mesa-devninja-buildqt6-base-devqt6-tools-dev-tools在ArchLinux/Manjaro上:

sudopacman-Sbase-develcmakelibglninjaqt6-baseqt6-toolsqt6-wayland对于c++编译器,至少需要gcc-11或clang-13才能支持c++20。

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

sudoaptinstallqt6-wayland

 

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

评论