aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: c80e145273836285daee4ae09b117911b367d095 (plain) (blame)
1
2
3
4
5
6
7
8
9
# bamboo

A lightweight and flexible web browser built from scratch. Loosely based on [browser.engineering](https://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`](https://nim-lang.org/docs/net.html) to provide a cross-platform implementation of Berkeley Sockets. This also relies on [`treeform/[windy,`](https://github.com/treeform/windy)[`boxy]`](https://github.com/treeform/boxy) for a cross-platform windowing API, and [`treeform/pixie`](https://github.com/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).