About
Blitz is an open source web engine written in Rust with a focus on modularity, embeddibilty, and API flexibility. Blitz is currently in alpha. This means that it ready for experimentation and early adoption, but is not ready for production usage. We are aiming to reach a broadly usable beta status by the end of 2025, with a production-ready release sometime in 2026.
For more details on the current status, see the dedicated status page.
For details on planned work, see the roadmap issue
Vision
By taking a modular approach to development with an emphasis on clean module boundaries and sharing code, Blitz aims to:
- Power Dioxus Native (and perhaps other UI toolkits) - ...
Enable "alternative" web engine use cases. Including:
-
Rendering ePUB, HTML Email, Markdown and other non-web HTML formats.
(see the readme app for markdown) -
Rendering HTML to image (PNG, JPEG, or even SVG)
(see himg or the screenshot example for examples of rendering to image). - Rendering HTML to PDF
- Embedded “mini html” engines within wider UI toolkits.
- Clients for alternative content (e.g. a Gopher / Gemini) or alternative scripting environments such as a native HTMX client, or a web client with Python-based scripting.
-
Rendering ePUB, HTML Email, Markdown and other non-web HTML formats.
- Provide a new alternative to existing web engines. - In this regard Blitz aims competes with the likes of Servo, Ladybird, and Flow. This is a longer term aim. C
Lower the barrier to entry for creating new browser engines — Traditional browser engines are largely monolithic meaning that if you want to create a new engine you are left with a choice between forking the existing engine or rebuilding most things from scratch. Given how enormous the web specification is, this makes it difficult to bootstrap new independent engines.
By building on existing general-purpose libraries (making our improvements available to all users) and making core parts of our stack (style, layout, text, etc) available as libraries with supported public APIs, Blitz aims to make it easier to create new engines by enabling new engine creators to combine modular parts of our engine with new modules of their own.
Strategy
Blitz is deliberately focussing on (1) and (2) from above and avoiding trying to build an "entire web browser" at once.
and focussing on two targeted subsets: 1. being an excellent application runtime (for Dioxus Native) and 2. HTML-and-CSS-only rendering. By deferring work on complex features like JavaScript execution, browser-grade network caching and security, and process-isolation we hope to be able to bring Blitz to a useful, production-ready state (for the features it supports) much sooner. And we hope that
Comparison with other projects
Compared to UI toolkits
- Flutter / React Native / LynxJS -
- Ultralight / Sciter / litehtml - Blitz, Ultralight and Sciter are all lightweight engines with strong support for customisation and integration into a wider rendering engine. Ultralight is a WebKit fork whereas Blitz and Sciter are their own engines (Sciter currently has better support for older CSS2 styles/layout, Blitz has better support for modern standards like Flexbox and CSS Grid). Ultralight and Sciter have a proprietary licences whereas Blitz is open source.
- Clay - Clay is a lightweight C library that inspired Blitz
Compared to browser engines
-
Servo / Ladybird - Blitz, Servo and Ladybird all aim to provide high quality implementations of web standards (both modern and legacy) that can compete with those in Gecko/Webkit/Blink.
Servo and Ladybird are focussed on creating a “complete” web engine that competes directly with top-tier engines. Blitz would also like to compete on those terms eventually, but has more of a focus on “alternative” use cases which may only need part of a web engine, and benefit from flexible APIs that allow the engine to be customised and extended.
Blitz can be used in many scenarios in which Servo and Ladybird are unsuitable. For example, if you want to bring your own renderer or scripting engine.
Additionally, Blitz is a less established project at an earlier stage of development than Servo / Ladybird
-
Ekioh Flow - Flow is another "challenger browser" similar to Servo and Ladybird, and more mature than either. It is also more similar to Blitz in terms of being embeddable. However, it is neither free nor open source, and is only available under a commericial license.
- Gecko (Firefox) / WebKit (Safari) / Blink (Chrome) - These engines are much more complete than Blitz. Blitz may be able to compete with them eventually, but is unlikely to be able do so anytime soon.
Relationship to dependencies
Blitz's approach to modularity allows it to take full advantage of existing libraries where appropriate libraries are available which, (due to the flourishing Rust crates ecosystem and the legacy of the Servo project), turns out to be quite a lot of places.