danfragoso/thdwb

🌭 The hotdog web browser and browser engine 🌭

Go

1,141

315 commits

updated Mar 7, 2023

See the code

README

thdwb

This is the hotdog web browser project. It's a web browser with its own layout and rendering engine, parsers, and UI toolkit!

It's made from scratch entirely in golang. External dependencies are only OpenGL and GLFW, even go dependencies are kept to a minimum.

The main goal of this project is to learn how web browsers work under the hood by implementing one. The browser is far from stable, spec-compliant, or even really useful, but, I'm slowly working on bringing more features and supporting more sites.

🌭🌭🌭

Components

  • ketchup (html parser and DOM Tree builder)
  • mayo (css parser and Render Tree builder)
  • mustard (UI Toolkit, events and OpenGL)
  • sauce (requests, cache and filesystem)
  • bun (css layout calculator)
  • gg (drawing routines and text rendering)

Getting started

  • Running

    make
    

    This command will start the browser and load an example page

  • Testing

    make test
    

    This command will run all the configurated unit tests

  • Building

    make build
    

    This command will build the binary version

Screenshots

browser-engine
golang
hotdog
html-renderer
ketchup
mayo
mustard
sauce
web-browser

danfragoso/thdwb

🌭 The hotdog web browser and browser engine 🌭

Go

1,141

315 commits

updated Mar 7, 2023

See the code

README

thdwb

This is the hotdog web browser project. It's a web browser with its own layout and rendering engine, parsers, and UI toolkit!

It's made from scratch entirely in golang. External dependencies are only OpenGL and GLFW, even go dependencies are kept to a minimum.

The main goal of this project is to learn how web browsers work under the hood by implementing one. The browser is far from stable, spec-compliant, or even really useful, but, I'm slowly working on bringing more features and supporting more sites.

🌭🌭🌭

Components

  • ketchup (html parser and DOM Tree builder)
  • mayo (css parser and Render Tree builder)
  • mustard (UI Toolkit, events and OpenGL)
  • sauce (requests, cache and filesystem)
  • bun (css layout calculator)
  • gg (drawing routines and text rendering)

Getting started

  • Running

    make
    

    This command will start the browser and load an example page

  • Testing

    make test
    

    This command will run all the configurated unit tests

  • Building

    make build
    

    This command will build the binary version

Screenshots

browser-engine
golang
hotdog
html-renderer
ketchup
mayo
mustard
sauce
web-browser

Project health

Overall

2.3/10

Maintained

0/10

Code review

2/10
OpenSSF Scorecard

Significant stargazers

(top 24 of 28)

Mathias Bynens

13,103 followers · starred Oct 2021

Brad Fitzpatrick

13,833 followers · starred Apr 2021

Julien Voisin

556 followers · starred Jan 2021

Sebastien Binet

777 followers · starred Aug 2020