Ladybird browser was born on July 4, 2022, and Ladybird was originally developed as a SerenityOS The system’s “LibWeb” browser engine debugging tool, and then author Andreas Kling wanted to build a simple GUI for it.
With the continuous improvement of Ladybird, two months later, Andreas found that he had completed most of the development of a Web browser, Ladybird has been regarded as a cross-platform Web browser.
Both LibWeb and LibJS are new engines. The author has a history of developing Qt and WebKit projects, so I got some inspiration from it, but all the code is new, and the browsers and libraries are written in C++.
Here’s a rough breakdown of the current browser stack:
- Ladybird : Tabbed browser GUI application
- LibWeb: Web engine, multiple standards: HTML, DOM, CSS, SVG, …
- LibJS: ECMAScript language, runtime library, garbage collector
- LibGfx: 2D graphics, text rendering, image formats (PNG, JPG, GIF, …)
- LibRegex: Regular Expression Engine
- LibXML : XML parser
- LibWasm: WebAssembly parser and interpreter
- LibUnicode: Unicode Support Library
- LibTextCodec : Text encoding conversion library
- LibMarkdown : Markdown parser
- LibCore: Other supported functions (I/O, datetime, MIME data…)
- Qt: Cross-platform GUI and networking
LibWeb has a Platform
layer, Ladybird injects Qt support code for event loops, timers, system font settings, etc. Ladybird currently uses Qt for network tasks because there is no multi-process RequestServer system outside of SerenityOS. Likewise, Ladybird is currently single-process, while the SerenityOS browser is a per-tab process.
build condition
Requires the Qt6 development package and a compiler that supports c++20. On Debian/Ubuntu, the required packages include but are not limited to:
sudo apt install build-essential cmake libgl1-mesa-dev ninja-build qt6-base-dev qt6-tools-dev-tools
On Arch Linux/Manjaro:
sudo pacman -S base-devel cmake libgl ninja qt6-base qt6-tools qt6-wayland
For a c++ compiler, at least gcc-11 or clang-13 is required to support c++20.
For Ubuntu 20.04 and above, make sure the Qt6 Wayland package is available:
sudo apt install qt6-wayland
#Ladybird #Homepage #Documentation #Downloads #Cross #Platform #Web #Browser #News Fast Delivery