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

Leave a Comment

Your email address will not be published. Required fields are marked *