Gosub – An open-source browser engine

Project Goals and Scope

  • New Rust-based browser engine intended to diversify the engine ecosystem and avoid monoculture, especially given concerns about Google’s dominance.
  • Emphasis on modularity: components should be swappable over time, with uncertainty about exactly how much will be written from scratch vs. reused.
  • Current focus appears to be HTML/CSS parsing and basic layout; writing a JavaScript engine is officially “out of scope” but a personal JS engine exists and may be integrated.
  • Long‑term monetization and organizational model are not clearly defined; contributors acknowledge some of these answers are “unknown” for now.

Reuse vs. Existing Projects (Servo, etc.)

  • Multiple commenters ask why effort isn’t going into Servo or a fork of existing engines.
  • Counterarguments:
    • People are free to work on what they find fun or meaningful.
    • Joining an existing project can involve politics and limited influence; starting anew allows setting one’s own agenda.
    • Forking doesn’t really avoid “why don’t you just…” criticism.

Feasibility and Complexity

  • Many stress that modern browser engines are enormous, security‑critical, and spec‑heavy; burnout and abandoned projects are common.
  • Some see Gosub as primarily an intellectual or educational exercise, unlikely to become a mainstream end‑user browser; others point to historical precedents where “hobby” projects became central infrastructure.
  • Discussion notes HTML5 parsing is relatively well-specified, but layout/CSS behavior is full of ambiguities and underspecification, making compatibility hard.

Rust, Security, and Architecture Choices

  • Rust is seen as a strong fit for browser engines: performance similar to C/C++ with improved memory safety, attractive to contributors, and good for security in a hostile environment.
  • Some caution that language choice only reduces, not eliminates, risk, and criticize “rewrite it in Rust” absolutism.
  • Concern is raised about the project implementing its own bytestream abstraction instead of reusing mature Rust libraries; maintainers respond that it was an early decision and is now swappable.

Use Cases and Niches

  • Several commenters suggest focusing on niches: embedded devices, automation/QA, or lightweight Electron‑like app hosting, where partial spec support might be acceptable.
  • Maintainers express interest in low memory usage and possibly compile-time feature flags, and longer‑term ideas about WASM-based applications with minimal or no JavaScript.

Branding, Naming, and Perception

  • The “Gosub” name evokes BASIC’s GOSUB and prompts nostalgia and jokes; some find it confusing given it’s not written in Go.
  • The AI‑influenced logo and tagline (“optimized search and unlimited browsing”) are perceived by some as vague or slightly “scammy”; others defend them or see branding as low priority at this stage.