I tried Servo, the undercover web browser engine made with Rust

I tried Servo, the undercover web browser engine made with Rust
Servo was supposed to be Firefox's future. Now it's an independent effort to make a fast and secure web browser engine.
Corbin Davenport
— 5 min read
"Everything is chrome in the future" was a line said by SpongeBob SquarePants in an episode from 1999, and it turned out to be a prophecy about web browsers. Google Chrome is the world's most popular browser, and most of its competitors are based on the same Chromium code: Microsoft Edge, Vivaldi, Opera, Brave, and Arc, just to name a few. The main exceptions are Safari and Firefox.
It wasn't always this way. At the start of the millennium, Internet Explorer used its own Trident engine on Windows and Tasman on Mac, Opera used Presto, some embedded devices used NetFront, Netscape had Gecko, and KDE made KHTML for its Konqueror browser. Those browsers eventually faded away or adopted a competing engine to simplify development. KHTML was the basis for Safari's WebKit, which in turn became Chromium's Blink engine, and Netscape's Gecko engine became the foundation for Firefox. Opera ditched its custom Presto engine in 2013 and switched to Chromium, and Microsoft Edge made the same move in 2020.
This is a danger to the open web in more ways than one. If there is only one functioning implementation of a standard, the implementation becomes the standard. The web becomes to Google what Java is to Oracle. It also means the limitations and security flaws in Chromium affect most other browsers, which became a topic of conversation with Google's recent Manifest V3 transition.
Thankfully, there is an alternative browser engine that could one day give Chrome, Safari, and Firefox a run for their money, and you've probably never heard about it. It's called Servo.
Hello, Servo
Servo's goal is to create a web rendering engine entirely in the Rust programming language, which is built around multi-threaded operations and memory safety. The first one is important because modern CPUs are designed to split work across multiple cores or threads. The more rendering code you can move to parallel operations, the faster performance you get. The second part is important because it shrinks the potential for security vulnerabilities—Chromium developers said at one point that "around 70% of our serious security bugs are memory safety problems."
Servo is unique for a few other reasons, too. It's managed by the Linux Foundation Europe with decisions made by a technical steering committee, not a big tech company. One of the main goals is to be an "embeddable web rendering engine," meaning it's not just for browsers—it could be a replacement for Electron or the Android WebView. Servo is also the first completely new browser engine in decades, so it's taking lessons learned from mainstream browsers while building a new foundation.
There are no full-featured web browsers using Servo right now, but you can try it out with the nightly snapshots for Windows, macOS, Android, and Linux. Those builds are just the engine with a basic web browser interface around it. No data synchronization, bookmarks, extensions, or anything else.
Most sites have at least a few rendering bugs, and a few are completely broken. Google search results have many overlapping elements, and the MacRumors home page crashed after some scrolling. Sites like Wikipedia, CNN Lite, my personal site, and text-only NPR worked perfectly.
There are also some demo pages on the Servo website to show off the engine's graphical capabilities. The Dogemania test ran at a smooth 60 FPS on my M4 Pro MacBook Pro until reaching around 400 images, and the Particle Physics test averaged around 55 FPS. Safari 18.5 on the same computer could handle over 1,500 images on Dogemania and roughly 60 FPS on Particle Physics. Servo was running under x86 emulation since there are no ARM builds for macOS yet, so it wasn't a completely fair fight in performance.
I also tried the classic Acid3 test, which was created in 2008 to test various web browser standards—Internet Explorer famously had a failing grade until the IE 9 beta builds in late 2010 pushed the score to 95/100. Most modern browsers get around 95 points, since some elements of the test are now broken, but Servo is a bit behind at 83/100.
Servo still has a long way to go for general browsing, but I'm impressed with it. The current roadmap lists Shadow DOM and CSS Grid as priorities, which should fix many rendering issues on popular websites, among other improvements.
Here's the plot twist: Servo was originally a Mozilla project. Development kicked off in 2012, and Samsung joined the effort in 2013. There were plans to develop an Android browser or other application based around Servo, and once the technology was proven and stable, it could have potentially replaced Firefox's long-running Gecko engine.
Mozilla later decided to replace parts of Gecko in Firefox with Servo code, instead of waiting for the entire engine to be a drop-in replacement. A blog post from 2017 described it as "replacing a jet engine while the jet is still in flight." The first major component in Firefox to be replaced was the CSS engine, which finally rolled out with the release of Firefox 57. Mozilla nicknamed that update Firefox Quantum, and benchmarks showed the browser was significantly faster and used less RAM.
The plan to slowly replace bits of Firefox's Gecko code seemed to be going well, until Mozilla laid off 250 employees in 2020, including many of the developers responsible for Servo development. It's still baffling to me that Mozilla threw out Firefox's technical future, to say nothing of the workers impacted by the layoffs. Five years later, Mozilla's side projects still aren't working out, and the company has done more rounds of layoffs.
The Servo project reorganized under the Linux Foundation in November of that year, and later in 2023, it gained new backing from Igalia and other organizations while moving to Linux Foundation Europe. Servo got a second chance at life, and development is fairly active.
A guessing game
The United States Department of Justice is currently wrapping up its legal action against Google, which alleged the company of holding a monopoly over search engines that was perpetuated by Chrome and Android's popularity. Google lost in court, and the DOJ wants Google to sell off the Chrome browser and stop making search engine deals with other browsers.
Mozilla is asking the case's judge to not kill those deals, because Google's default search engine placement in Firefox is the vast majority of Mozilla's income. The company said it could have to "scale back operations and cut support for critical projects like Gecko, the only remaining browser engine competing with Google’s Chromium and Apple’s WebKit."
It's game theory time. Let's say Mozilla loses those Google paychecks, and Firefox switches to WebKit or Chromium/Blink to save on development costs. I'm pretty sure someone would try to fork the Gecko-based Firefox and keep it going outside of Mozilla—maybe the Linux Foundation, maybe someone else. If the Gecko engine comes under community ownership just like Servo, perhaps the original plan to slowly morph Gecko into Servo could be revived.
Alternatively, Gecko could just fade away. WebKit is already established in the Linux ecosystem, and the general population will probably continue using Chrome and Safari. It's fun to think about the possibilities, though.
No matter what happens to Firefox or Gecko, I'm excited to see where Servo goes next.
What's Your Reaction?






