A hobby web browser developed from scratch
This is a web browser developed from scratch using Rust. To fit with the "make from scratch" spirit, the development of the browser avoids the use of external libraries as much as possible.
First, make sure you have all the right dependencies installed:
sudo apt install build-essential cmake pkg-config libssl-dev mold
Then it's just as simple as:
- Clone the repository.
- Run
cargo run
and wait for the code to compile & execute.
Check out the Getting Started Guide for more advanced stuff.
Rendering comparison between Moon & Firefox
- HTML: Spec-compliant HTML tokenizer, parser & DOM tree builder.
- CSS: Spec-compliant CSS tokenizer, parser & CSSOM tree builder.
- Style processing: Style cascading, style value computation, selector matching & render tree construction.
- Layout: Flow layout (Block & Inline).
- Rendering: GPU rendering & text rendering.
- Networking: Spec-compliant URL parser.
- User Interface: GTK-based browser UI.
I write about what I learn from this journey on my blog (order by latest):