A web browser engine, also known as a rendering engine, is a software component responsible for rendering web content. It interprets HTML, CSS, and JavaScript code to display web pages on a user's device.

There are popular web browser engines such as Blink, which is used by Google Chrome and Opera, Gecko (Firefox), and WebKit (Safari).

However, there is room for more.

The hotdog web browser project and its web browser engine are built entirely from scratch in Golang. Only OpenGL and GLFW are used as external dependencies, and even the number of Go dependencies is kept to a minimum.

The main objective of this project is to gain a deeper understanding of how web browsers function by implementing one. Currently, the browser is not stable, compliant with specifications, or particularly useful. However, efforts are being made to gradually introduce more features and support additional websites.

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)

License

MIT license

Resources & Download

GitHub - danfragoso/thdwb: 🌭 The hotdog web browser and browser engine 🌭
🌭 The hotdog web browser and browser engine 🌭. Contribute to danfragoso/thdwb development by creating an account on GitHub.