jaytaph
Ship's Log: Current state of the Gosub engine
Three years of writing a browser engine, in 50 posts
Three years of writing a browser engine, in 50 posts
We are still far from where Servo or Ladybird are, but we are able to do a lot of neat things already: html5/css3 parsing works, we have a modular system that allows multiple backend renderers, sites are starting to look like sites instead of garbled text and we are in the process of implementing process isolation.
During this time, i tried to blog the experience, the planning and the things we've faced over time.
Happy to answer any questions!
Three years of writing a browser engine, in 50 posts
So, here is the proof of concept: a browser engine for over 2 years in the making and we just got to the part where we connected a lot of moving parts into a single engine system. Rendered web pages are starting too look more and more like their intended view although we are still very far away to render everything as intended.
Our goal is to become yet another browser engine. Not the best, not the fastest, not the smallest. Just an alternative. We need more of them to keep the web open. We want our engine to be modular by design, meaning you are able to swap backend renderers, font systems, HTML/CSS parsers, render pipelines, and even the network stack if you want.
Right now, we are busy getting our process isolation system merged into our main engine so we can separate parts of the engine and confine them to the lowest possible security state.
On AI: yes, we do use and merge PR's generated by LLM's, provided all code is owned, understood, reviewed and tested. We are still formalizing this process, just like any other software project these days.
We are not as far as a Servo or Ladybird, and we don't pretend that we will ever reach that level, but we are hopeful considering that we never thought we would even come to this point. This also mean that we don't have all the organization, marketing, experience skills on building large software, so right now we are trying to get the word out for enthusiasts to join us and to make the project good enough to gain enough traction.
More information about the engine: https://gosub.io, and of course the GitHub repo: https://github.com/gosub-io/gosub-engine. You are always welcome to join us at the Zulip developer chat to say hi and ask questions.
Gosub: An independent modular browser engine
I'm not taking about "chatgpt, write me an android clone, make no mistakes". But large software projects do not have to be a solely large player game anymore. I think that with much and much less resources, there can be new alternative phone os'es either or not even based on android.
The biggest issue is market share and lock-in where this problem falls into. But this happens in every monopoly that exists. The technical barrier not a technical problem anymore, its now a political one.
Verifying your age in a privacy preserving manner
Verifying your age in a privacy preserving manner
Posting on the Internet Frightens Me
We are building a new browser from scratch
Preparing for the Worst: Disasterstrikes
There are a lot of things that can (and will) go wrong when it comes to computers, life, work, holiday and cats. This project will send you disaster drills when you least expect it to see how well prepared you are. It contains tips and tricks and you can score yourself and match against others on your preparedness level.
I've set this up as a small weekend side-project for two reasons: first, because i fail too often when it comes to disaster prepping myself, and secondly, I was very curious to see if I could use LLM systems like chatgpt and deepseek to "generate" apps/sites. Turns out that it wasn't too bad, although i wouldn't fire my whole development team just yet.
I was surprised with the actual code that was generated (symfony7), and even though it sometimes got things completely wrong, i found that with some nudges in the right direction, it ultimately could figure things out well enough for me to incorporate. Although, without any (deep) knowledge of what I'm wanting to do, or symfony knowledge, i would not have been able to create this project.
So about the project: Suppose you lost your phone. How would you cope with this situation? What is your laptop failed to start up? Would you have backups? Have you tried to restore them? Do you have a plan on how to get back up and running quickly?
There are a lot of things that can (and will) go wrong when it comes to computers, life, work, holiday and cats. This project will send you when you least expect it a disaster drill with a scenario to see how well prepared you are. It contains tips and tricks and you can score yourself and match against others on your preparedness level.
An AI side project: DisasterStrikes
Obviously we cannot write everything by scratch, but we don't know yet where we draw the line.. We like to keep things modular as possible so we can easily swap out the systems we use in favor of better ones in the future.
Today, we're excited to introduce Gosub, a new open-source browser engine that we are building from the ground up in Rust!
Gosub aims to be a modern, modular, and highly flexible browser engine. While still in the early development and experimentation phase, Gosub is shaping up nicely, and we’re looking to onboard more contributors to help us bring this project to life.
Some of the key highlights:
* Written in Rust: We're leveraging Rust's safety and performance features to create a robust and efficient engine.
* Modular Design: The project is organized around modules, allowing for clean separation of concerns and easier collaboration. It also allows us to easily swap components based on needs and allows more freedom for engine implementers in the future.
* Collaborative and open source: We’re building Gosub with the intention of making it approachable and open to contributions, aiming to create a project that's easier to understand and collaborate on compared to existing browsers.
Instead of writing another shell around Chromium or WebKit, we decided to write a browser engine from scratch. We believe that having a diverse landscape of engines is the only way to defeat a monoculture that is currently threatening current browsers and by extension the internet itself. We cannot and should not let a very small number of large companies dictate the future of the web and its usage.With Gosub, we're aiming to build something more approachable that can evolve with the latest web technologies, all while being open to contributors from day one.
We’re looking for developers with or without experience in Rust. You just need to be interested in browser technologies. There are plenty of opportunities to work on core modules, document our progress, and help shape the project's direction.
We can already render simple pages, including the hackernews front page. However, to render most sites correctly, it is still a long journey, so come and join us!
Gosub – An Open-Source Browser Engine Built in Rust
I'm still fed up and a browser is coming along fine
I'm still fed up and a browser is coming along fine
Yes, there are a lot of browsers out there where I can contribute to which would be more efficient. But that would result in just a few browsers instead of a lot of browsers. I'm all for the last one, as this would give people options.
This IS a pet project. I never told anyone otherwise. I would start writing it even when I wasn't fed up with the tech industry. But I get angry about not being able to do anything about anything. And this is my way of trying to do something about it. It's the best I can do.
I think this project will not result in an actual browser. That's not why i'm writing this. I want people to see my code, either laugh at it, or get some own idea's to make things better. For instance, I LOVE the whatwg site where the whole html5 tokenizer and parser algorithms are step by step described. This means it should be easy(?) enough for anyone to write their own html5 parser. What would happen if google and/or microsoft decide to create their own custom html5 (html5, ghtml) as a closed format? Who would be able to stop them when they have such a market share?
I want to start for scratch - BECAUSE i want to know more about the underlying technical challenges.