diff --git a/ROADMAP.md b/ROADMAP.md index 567079e..10e739b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,107 +1,104 @@ -# Secure Browser Engine — Build-from-Scratch Roadmap - -## Vision -A memory-safe, security-first web browser built from the ground up — own rendering -engine, own layout, own paint pipeline — targeting fast and smooth browsing without -depending on Chromium/WebKit/Gecko internals. - -## Language & core tech decisions -- **Language: Rust** — eliminates entire classes of memory-safety bugs (use-after-free, - buffer overflow) that make up the majority of historical Chrome/Firefox CVEs. -- **GPU/compositing**: `wgpu` (cross-platform GPU crate, works on Vulkan/Metal/DX12) -- **TLS**: `rustls` (pure Rust TLS, avoids OpenSSL memory-safety history) -- **Text shaping**: `harfbuzz` bindings or `rustybuzz` (Rust port) — needed for correct - complex-script rendering (Bengali, Arabic, etc.) -- **JS engine**: write a minimal one from scratch for early milestones; evaluate - embedding `boa` (Rust JS engine) or `QuickJS` (C) once static-page rendering works, - since a production-grade JS engine is itself a multi-year project on its own. - -## Batch plan - -### Batch 1 — HTML Tokenizer + Parser → DOM done -- [x] Byte stream → token stream (tags, attributes, text, comments, doctype) -- [x] DOM tree (arena-based: `Dom { nodes: Vec }`, index-linked parent/children) -- [x] Malformed-HTML recovery (never panic/crash on bad input — security requirement) -- [x] Unit tests against basic real-world HTML snippets -- [ ] Full WHATWG insertion-mode state machine (implied end tags, table - foster-parenting, `