CodeMusings Logo CodeMusings

Gosub Browser Progress, pt45

2026-06-05 · 9 hours ago

A lot has happened. We were able to merge the "big three" components: network stack, rendering pipeline and engine api into the main engine system and things are speeding up!

Since we work with a pluggable system (not quite what we want, but it's getting there), we can swap out backends without problem. And we have three different backends we currently support: Cairo, Skia, Vello. And those backends can run on multiple toolkits: gtk4, egui, winit. And with these items, we can have a complete matrix of browser applications: egui-vello, gtk4-cairo, winit-vello, winit-skia etc.. Some of them doesn't make sense (having a skia-gpu which uses a CPU-only toolkit for instance).. but the fact that this works pretty much out of the box shows the flexibility of the browser-engine-to-be.

Our next big goal will be the CSS parser. We already can do a lot, but still there are some parsing issues here and there which we need to take care of. Fortunately, we can fetch CSS files from literally everywhere and test them against proper parsing so we can see how it works in the real world. But after this part, we still need to make sure the css actually gets applied. We already use taffy for layouting which uses a lot of css properties, but we must support others as well, and things like animations, gradients and whatnot.

Gosub starts to feel more and more like an engine instead of some half components, so I'm really excited for the future!

Nobody amused yet.