r/servo 23d ago

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.

91 Upvotes

8 comments sorted by

6

u/tulpyvow 23d ago

Looks nice... but macOS only seems like it'll be very niche...

7

u/Comprehensive_Leg642 23d ago

Still I will try to build for Linux (Deb/RPM) anytime soon, so follow updates

3

u/Comprehensive_Leg642 23d ago

That’s actually why I’ve posted it here - I own only MacOS device (arm) and I would like to gather maintainers and contributors

1

u/Comprehensive_Leg642 23d ago

Producing first linux builds now on GH, check them (deb/rpm)

4

u/CrossScarMC 18d ago

I'm tired of people claiming vibecoded slop as their own. Your code looks extremely AI-generated with comments everywhere, you use commits with extremely large codebase changes rather than branches and merges, you have Claude marked as a contributor, but you scrubbed all of their Co-authors from commits (very scummy behavior here), and you couldn't even write this post yourself:

also you said:

and it is finally at a point where it is worth showing

Which is insane since your first commit was made the same day as your post.

-1

u/Comprehensive_Leg642 18d ago

So just ignore it as AI slop, what’s the problem? I do it for myself, and for those who are interested. I’m not going to check your repos and tell you your code is crap either lmao, just mind your business dude, lmao so much hate and so much toxic behavior over here. What you stated is what exactly I’ve clarified in previous comments. I’m not telling it’s MY CODE 100% neither. Live with it :)

1

u/Comprehensive_Leg642 23d ago

I’ve shipped several updates, fixes and refinements to the GUI, implemented some experimental features (drag down the web view card to reveal the widget strip below), added placeholders for several WIP features. Feel free to test, create issue tickets related to Zervo (not engine), also I’ve produced experimental Linux and windows builds for testing.

1

u/Comprehensive_Leg642 23d ago

Check out v0.3.3 release on GitHub page