WBP (Web Browser Project) is a lightweight, from-scratch web browser engine written in Rust. It parses HTML5 (but supports only HTML4 tags) and CSS2.2, builds a simple DOM tree, computes box-model layouts, and renders content in a native window using winit. Actual specifications supported only loosely, as proper implementation would require much more effort.
- Learn & Experiment: We want to explore how browsers work under the hood: parsing, styling, layout, and rendering.
- Upstream Contributions: Working on such a big projects like this can show shortcomings of used libraries, which is a great inspiration for contributions. So other goal is to improve rust ecosystem.
- Rust toolchain (stable or nightly)
# 1. Clone the repo
git clone https://github.com/remimimimimi/wbp.git
cd wbp
# 2. Build & Run against a sample page. Currently this page is hardcoded to the wbp/test.{html,css}.
cargo run --release- https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html
- https://web.dev/articles/howbrowserswork
This project is licensed under the AGPL-3.0. By using or contributing to wbp, you agree to keep it free and open for everyone.