Making a headless browser for fun

I've called it grome, outside of a fun exploration it's not very useful. Credit to the Browser Engineering book, I've pre-ordered my copy and can't wait to continue working on the browser when it arrives.

The code is pure spaghetti, and I think it was one of the reason it was so much fun. The things I learned about the browser, headers and various schemes were quite fascinating. Browsers are hard, especially considering they can run any website since the dawn of websites. So far these are some of the things that my headless browser does:

  • Caching assets based on the header
  • Keeping connections alive
  • Handling redirects
  • Handles http, https, view-source, file and a couple more I think

There are a few other things it does, but I don't remember all of it. As much I would like to keep going, I got nerd sniped by Tiger style. So the plans have changed, this will be my most ambitious fun project yet. Currently, I'm doing some advent of code to get familiar with Zig. Then I want to continue working on the browser project. I could have done it in Go, but since this is more for fun than anything else, I decided to use Zig. It's been over three years since I picked up a new language and I've wanted to try Zig out for a while. My goal is to draw the screen and build a simulator to perform Deterministic simulation testing on the browser. One of the requirements for Tiger style is to have a complex project and I think a browser qualifies. Thanks to ThePrimeagen for talking about these topics, his channel is how I come across interesting new things to explore.

Exciting times ahead.