u/Comprehensive_Leg642

Image 1 — Zervo: a sidebar-first browser built on Servo, in Rust and egui
Image 2 — Zervo: a sidebar-first browser built on Servo, in Rust and egui
▲ 32 r/servo+1 crossposts

Zervo: a sidebar-first browser built on Servo, in Rust and egui

I have been building a browser chrome on top of the Servo engine and it is finally at a point where it is worth showing. It is macOS-only for now, MPL-2.0, and the whole thing is Rust.

Github repo

There is no top toolbar. Navigation, the address bar, pinned "essentials", workspaces and tabs all live in one collapsible sidebar, which you can hide entirely and pull back out by putting the pointer at the window edge. The web content sits in a rounded card with real macOS vibrancy behind the chrome.

Two things might be interesting to people here:

It builds against the published servo crate. Version 0.5.0 off crates.io, no git submodule and no vendored engine tree. cargo build and you get a browser. Updating to a newer engine is a one-line version bump. That was not really practical until Servo started publishing to crates.io, and it makes the whole project a lot less intimidating to work on than I expected.

The chrome and the engine share one GL context. egui and Servo both draw through the same surfman context. Webviews render into an offscreen framebuffer which gets blitted underneath the chrome by an egui paint callback, so there is one window, one swap, and no compositing layer in between. That is the one genuinely surprising part of the codebase and it is written up in docs/ARCHITECTURE.md.

The honest caveat: Servo is not a complete web engine yet. Plenty of sites render wrong or refuse the user agent outright. That is a property of the engine, not something I can fix in the chrome, and if you are hoping for a daily driver this is not it yet.

I would like to stop working on this alone - contributors, councillors and friends along with enemies are welcome. If any of that appeals (session restore, tab drag-reordering, dialogs, IME, or a Linux port, since only the vibrancy, Dock icon and bundling are AppKit-specific) the issues are tagged and CONTRIBUTING.md explains the layout. Happy to answer anything about the Servo embedding side, which is the part with the least documentation out there.

u/Comprehensive_Leg642 — 23 hours ago
▲ 12 r/servo+1 crossposts

Zervo - Servo-backed web browser written in Rust.

Hey r/rust!

Over the last few days, I’ve been working on Zervo, my personal hobby project - experimental, lightweight web browser built from the ground up in Rust.

The goal of Zervo is simple: pair the modern, minimalist UX ideas pioneered by Zen Browser (vertical tabs, clean workspace, distraction-free layout) with Servo, the parallel, high-performance web rendering engine written in Rust.

Why Zervo? Why i'm even trying it?

  • 100% Rust Stack: Servo’s parallel rendering model (WebRender, parallel layout engine, Stylo CSS) makes it super fast and memory-safe.
  • Zen-Inspired Workspace: Vertical tab management, customizable sidebars, and clean canvas areas to keep browsing focused.
  • Lightweight Footprint: Avoiding heavy Chromium/Blink wrappers in favor of a lean, native Rust environment.
  • Just for fun: soon i'll become student at Ecole 42 Paris so i need something to do before the start, call it warm-up project. Also it's a good way to learn Rust (I fell in love with it).

Current Status & Tech Details

  • Engine: Servo (embedded via Rust bindings)
  • UI Framework: Custom native Rust UI shell mapping seamlessly to Servo’s WebRender pipelines
  • Target Platforms: Linux, macOS, and Windows

It’s still in early development, so rendering complex Web APIs and heavyweight JS frameworks is an ongoing effort alongside Servo’s upstream progress. However, basic page rendering, navigation flows, and vertical UI layouts are working (not without bugs lmao, but i'm working on it). I'll open the source code when it becomes at least alpha-stage ready for testing. You're welcome if you want to contribute.

And yeah, i do use AI but not to "code", instead to ask and learn (and write parts of this post). All you see on screen is my code, written by hand, except Servo code and some cargo deps for making it possible.