Gosub: An independent modular browser engine

jaytaph1 pts1 comments

Gosub - An independent modular browser engine

0 m · surface<br>A browser engine, built from scratch.<br>Gosub is a modular web browser engine written in Rust. Developers can plug in their own components like a JavaScript engine, the rendering pipeline, the networking stack, etc, without any single company setting the agenda for the web.<br>Get involved<br>Dive in<br>Scroll to descend ▾

20 m · periscope depth<br>A new web engine, written from scratch<br>Gosub is not a shell around an existing engine. It is a modular system in which every part - parsing, styling, scripting, rendering - is designed to be replaced, extended, or recombined. We hope this leads to a more diverse landscape of browsers without a single engine or browser dominating the market.<br>Choose your JavaScript engine<br>The scripting layer is pluggable by design. Run V8 today, swap in a different engine tomorrow. The choice belongs to the developer, not the vendor.

Customize the rendering pipeline<br>Build your own rendering pipeline on top of the engine's core, and tailor how content is laid out, painted, and composited.

Components that fit together<br>Each component has a clear boundary and a clear job, so you can take what you need and leave the rest.

200 m · twilight zone<br>Where the project stands<br>Gosub is in active early-stage development. We are building the core components of the engine like a CSS system, the rendering pipeline, and JavaScript integrations, while shaping an architecture that is as modular as possible.<br>HTML5 parser<br>Working<br>Parses almost all HTML5 documents correctly and passes nearly the entire html5lib test suite. The current processing speed is almost at par with the more mature parsers available today.

CSS3 parser<br>Workable<br>Already parses a large amount of real-world CSS, with a value-syntax parser for validation. A new and better CSS system is currently in development, but for now we have a minimal but workable system.

JavaScript engine<br>Early stage<br>Initial V8 integration behind a pluggable interface, including a basic console API.

Network stack<br>Usable<br>Our network stack is capable of handling many connections and deals with premature cancellations, multiplexing, priorities, streaming and much more.

Full project status

1 000 m · midnight zone<br>Why go this deep?<br>Most browsers today are built on the same engine, concentrated in the hands of two companies with enormous influence over how the web evolves. We already see the downsides of this happening: anti-privacy functionality is implemented without a voice to fight back against.<br>The web should be open and free for everyone to use. That takes more than one engine.<br>Building a browser engine demands expertise across many domains. No small team can do it alone, which is why Gosub is a community project. Read the full story

4 000 m · the abyss

Join the crew<br>Gosub is built by a community of volunteers. Whether you write code, documentation, or tests: there is a bunk for you aboard.<br>View on GitHub<br>Join the Zulip chat<br>- seafloor reached · resurface at ↑ 0 m -

engine gosub browser modular rendering javascript

Related Articles