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.