neko-browser
A from-scratch, cross-platform browser engine and application written in modern C++20, with a working URL-to-paint rendering pipeline and a Qt6 GUI, not a WebView wrapper or a toy HTML renderer.
The engine implements its own URL parser, HTTP/1.1 networking, an HTML tokenizer and tree builder, a DOM, a CSS parser and cascade, block and inline layout, and software rasterization, all covered by tests that run in CI with ASan and UBSan.
It includes a software compositor with layers and dirty-rectangle scrolling; cookie, history and bookmark storage; a from-scratch PNG and GIF decoder with GIF animation support, plus JPEG, WebP and AVIF wrappers; WAV audio decoding and FFmpeg-based video playback; partial PDF text extraction and page rendering; and a QuickJS-based JavaScript runtime with DOM bindings, fetch, XMLHttpRequest, localStorage, IndexedDB and ES module support.
The Qt6 GUI provides tabs, history, bookmarks, downloads, page zoom, in-page find, and DevTools with a DOM tree, network log and JS console; a multi-process mode is in progress.