Gosub – An open-source browser engine
An open-source project called Gosub aims to build a new Rust-based browser engine as an alternative to the Chrome/WebKit monoculture, emphasizing modularity, security, and potential uses beyond end-user browsing, such as embedding or automation. Commenters are divided between enthusiasm for fresh experimentation and skepticism about the immense complexity, security demands, and long-term sustainability of competing with mature engines like Chromium, Firefox, or Servo. Alongside technical debates (e.g., Rust’s suitability, partial spec compliance, reusing existing components), the exchange touches on open-source culture, branding choices, and whether such efforts should focus on narrow, well-defined niches rather than a full general-purpose browser.
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
GOSUBand 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.