At a Glance:
Ladybird is a pre-alpha, multi-process web browser using a novel engine, with per-tab sandboxed renderers and out-of-process image decoding and networking for robustness against malicious content.
Overview:
Ladybird is a truly independent web browser built with a novel engine based on web standards. The project aims to build a complete, usable browser for the modern web, but it is currently in a pre-alpha state, suitable only for developers. Ladybird uses a multi-process architecture with isolated renderer processes for each tab, and it performs image decoding and network connections out of process to enhance robustness against malicious content. It is being developed for Linux, macOS, and other *Nixes, and can run on Windows through WSL2. Many of its core library components are currently inherited from SerenityOS.
Key Decision Points:
Pre-alpha development stage: This project is not ready for general use and is only suitable for developers who want to experiment with or contribute to an early-stage browser engine.
Novel multi-process architecture: The browser separates its UI, tab renderers, image decoding, and network requests into distinct processes, with per-tab sandboxing designed for robustness against malicious content.
Platform support: The browser runs directly on Linux, macOS, and "other *Nixes", while Windows support is facilitated through WSL2.
Independent web standards engine: The project is building its own web rendering and JavaScript engines (LibWeb, LibJS) rather than using established engines like WebKit, Gecko, or Blink.
SerenityOS core libraries: Many foundational libraries for rendering, networking, and media are currently inherited from the SerenityOS operating system project.
Core Features:
Multi-process architecture: Separates functionalities into individual processes, including a main UI process, per-tab WebContent renderer processes, an ImageDecoder process, and a RequestServer process.
Per-tab sandboxing: Each tab's renderer process is sandboxed from the rest of the operating system for security isolation.
Out-of-process media handling: Image decoding and network connections are performed outside of the tab renderers to increase robustness against potentially malicious content.
Custom JavaScript and WebAssembly engines: Uses internally developed LibJS and LibWasm components to handle script execution.
HTTP/1.1 client: Includes its own LibHTTP library for handling web requests.
Use Cases:
Web engine developers: Developers can study, experiment with, or contribute to a novel, multi-process browser engine built independently of major existing projects.
Early-stage browser testing: Developers can build and run the browser to test its rendering behavior against web standards and identify bugs in a pre-alpha, pre-production environment.
Open-Source Alternative Value:
As a truly independent web browser, Ladybird presents an open-source option that is not based on the dominant WebKit, Gecko, or Chromium engines. Its value lies in its novel architecture, which prioritizes process isolation and sandboxing at the core level. Developers who are interested in the design and evolution of web engines have access to the complete source code for its multi-process model, its custom web rendering engine (LibWeb), and its JavaScript engine (LibJS), offering a unique foundation for research and participation in a new standards-based browser project.




