"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.
... continue reading