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











评论