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

A lightweight and flexible web browser built from scratch.

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, a JavaScript compilation target (to run in the browser), 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).