gosub-io/gosub-engine

The Gosub browser engine

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 54 minutes ago
Added to GitGenius on September 18th, 2026
Created on August 8th, 2023
Open Issues & Pull Requests: 44 (+0)
GitHub issues: Enabled
Number of forks: 180
Total Stargazers: 3,684 (+0)
Total Subscribers: 34 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.9 days
Mean response time: 108.6 days
90th percentile: 559.5 days
Tracked items: 81

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 14% of issues opened in the past year have never received a reply. 79% of issues opened in the past year have been closed, leaving a working backlog. Three people close 99% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 19
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 479 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • type/improvement (16)
  • area/ci (10)
  • area/css3 (9)
  • good first issue (9)
  • area/engine-api (6)
  • type/feature (6)
  • area/render-pipeline (5)
  • area/html5 (4)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Gosub Engine is a modular, embeddable browser engine written in Rust that can be integrated into applications by providing a render backend and compositor.

The engine addresses the need for a browser implementation that can be embedded and controlled programmatically rather than used as a standalone application. It works by exposing a unified entry point through the GosubEngine struct, which manages multiple zones and tabs with isolated cookies and storage. Applications drive the engine via TabCommand and EngineCommand, receiving EngineEvent notifications for navigation, resource loading, and redraw events. The engine handles HTML5 and CSS3 parsing with spec compliance, async networking with priority queuing and request coalescing, layout through Taffy with support for block, inline, flex, grid, floats, and absolute positioning, and painting through pluggable render backends including Cairo, Skia, and Vello.

Adoption suits projects that need a headless or embedded browser component rather than a full user-facing browser application. The modular architecture means you only integrate the components you need, and the pluggable render backend system lets you choose between CPU rendering with Cairo or Skia, GPU rendering with Vello, or headless operation. The event-driven interface gives your application full control over navigation, resource fetching, and UI interactions like form pickers. A significant limitation is that JavaScript execution is not yet wired into the engine; the V8 bindings and web API implementations exist but no page currently runs scripts, though the engine uses a separate test binding for DOM testing.

Development shows active work across the modular crate structure with ongoing implementation of layout and rendering features. The project maintains conformance measurement through gated web-platform-tests runs and a reftest runner, indicating attention to standards compliance. Documentation is detailed, with separate guides covering crate organization, JavaScript status, and web-platform-test results, suggesting the maintainers prioritize clarity about what works and what remains incomplete.