aboutsummaryrefslogtreecommitdiff

bamboo

A lightweight and flexible web browser built from scratch. Loosely based on browser.engineering.

This project currently includes an implementation of most of HTTP, a (fragile) HTML parser, an OpenGL-based renderer, and a basic style engine. This is planned to include the rest of HTTP, an implementation of HTML5, an implementation of CSS3, and JavaScript support through an embedded external library.

This does not implement TCP or UDP, and instead relies on Nim's std/net to provide a cross-platform implementation of Berkeley Sockets. This also relies on treeform/[windy,boxy] for a cross-platform windowing API, and treeform/pixie for a Skia-like graphics engine.

bamboo is primarily a learning project, but also happens to be a lightweight and embeddable browser due to its multiple frontends and backends and minimal dependencies. As it is a learning project first and foremost, many features better provided by the standard library have been reimplemented here (notably HTML and URI parsing).