explaingit

gosub-io/gosub-engine

Analysis updated 2026-07-03

3,663RustAudience · developerComplexity · 5/5Setup · hard

TLDR

A modular browser engine written in Rust that handles HTML parsing, CSS, networking, and page layout in separate swappable components, designed to be embedded in custom apps rather than used as a finished browser.

Mindmap

mindmap
  root((repo))
    What it does
      Browser engine
      HTML and CSS parsing
      Page layout
    Components
      HTML parser
      CSS engine
      Network layer
      Layout engine
    Use Cases
      Embedded rendering
      Custom browser shell
      WebAssembly target
    Tech Stack
      Rust
      WebAssembly
      GTK4
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Embed a standards-compliant web page renderer in a Rust desktop app without shipping a full Chromium binary.

USE CASE 2

Build a custom browser shell on top of Gosub's modular HTML, CSS, and network components, swapping in your own renderer.

USE CASE 3

Compile Gosub to WebAssembly to run a lightweight web renderer inside an existing web application.

USE CASE 4

Contribute to or study a from-scratch browser engine implementation to learn how browsers work at the systems level.

What is it built with?

RustWebAssemblyGTK4

How does it compare?

gosub-io/gosub-enginesozu-proxy/sozugrvydev/project-lightspeed
Stars3,6633,6623,670
LanguageRustRustRust
Setup difficultyhardhardhard
Complexity5/54/54/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires Rust's standard toolchain, the graphical GTK4 demo also needs GTK4 development libraries installed on Linux.

In plain English

Gosub is a browser engine, which is the core software that sits underneath a web browser and handles loading web pages, parsing HTML and CSS, running JavaScript, and drawing the result on screen. Most people interact with finished browsers like Chrome or Firefox, but Gosub is the engine layer that a developer could embed inside their own application or custom browser shell rather than building everything from scratch. The project is written in Rust and is organized into distinct pieces: one part handles HTML parsing, another handles CSS, another manages network requests, another does page layout, and there are separate rendering backends for different graphics systems. This modular design means you can swap out the renderer or connect your own interface on top. The engine also supports running multiple tabs simultaneously, with each tab having its own isolated cookies and local storage. As of now, Gosub can parse HTML and CSS according to web standards, fetch resources over the network, and manage multiple tabs through an event-based interface. Full pixel-perfect rendering and complete JavaScript execution are still in progress. The project also compiles to WebAssembly, which means it can in theory run inside a web browser itself, demonstrated by a screenshot in the README showing a browser running inside another browser. Gosub is an open project welcoming contributors and is under active development. The team coordinates through Zulip and Discord chat. If you are a developer curious about how browsers work internally, or someone building a tool that needs a programmable web-page renderer without shipping a full browser binary, this project is worth watching. Setup requires Rust's standard toolchain, and GTK4 libraries are needed only for the graphical demo examples.

Copy-paste prompts

Prompt 1
Show me how to embed the Gosub browser engine in a Rust application to load and render a local HTML file in a GTK4 window.
Prompt 2
How do I plug in a custom rendering backend to Gosub instead of using the default GTK4 renderer?
Prompt 3
Walk me through Gosub's architecture, how do the HTML parser, CSS engine, network layer, and layout engine communicate with each other?
Prompt 4
I want to contribute to Gosub. What are the main Rust crates, what does each own, and where should I start?
Prompt 5
How do I compile Gosub to WebAssembly and run it in a browser to render HTML inside a webpage?

Frequently asked questions

What is gosub-engine?

A modular browser engine written in Rust that handles HTML parsing, CSS, networking, and page layout in separate swappable components, designed to be embedded in custom apps rather than used as a finished browser.

What language is gosub-engine written in?

Mainly Rust. The stack also includes Rust, WebAssembly, GTK4.

How hard is gosub-engine to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is gosub-engine for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub gosub-io on gitmyhub

Verify against the repo before relying on details.