From an HTML viewer for the SerenityOS, it has grown into a cross-platform browser support Linux, macOS, and other Unix-like systems.

All of the open-source and privacy focused browser always catches my attention. I decided to take a look at this browser.

A completely new browser engine, along with others popular one like Blink, WebKit, Gecko.

Basic architecture

The browser use LibWeb and LibJS, which are very new engines.

Here’s a rough breakdown of the current stack:

  • Ladybird: Tabbed browser GUI application
  • LibWeb: Web engine, multiple standards: HTML, DOM, CSS, SVG, …
  • LibJS: The 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: Miscellaneous support functions (I/O, datetime, MIME data, …)
  • Qt: Cross-platform GUI and networking

MacOS installation

Xcode 14 versions before 14.3 might crash while building ladybird. Xcode 14.3 or clang from homebrew may be required to successfully build ladybird.

xcode-select --install
brew install autoconf autoconf-archive automake ccache cmake nasm ninja pkg-config

To build using clang from homebrew:

CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ ./Meta/ladybird.sh run

This will take around 30 minutes to 1 hour to install all dependencies and start building, once done the next open will be fast.

Maturity

This is still in very early stage development, the app can load a website, that is a good thing. But the website is fully function and looking good? No, I don’t think so!

But the future is bright, i truly believe the creator and the community will turn this into the future of web browsing, where the “big” should be more respected towards user privacy.