Servo: Building a Parallel Browser
Servo is an experimental browser engine for modern multi-core hardware written in an experimental memory safe language called Rust. Current browsers were designed over a decade ago when phones were not smart, clock speeds were still increasing, and web pages were still static. Taking advantage of modern amenities requires a new approach.
Servo is written from scratch to be parallel at every level. It uses CPU and GPU, multiple tasks per functional unit, fork-join concurrency, and SIMD, and the team is not done yet.
Browser security is paramount, both to prevent attacks and to solve in such a way that vulnerabilities are difficult for programmers to introduce. Servo uses Rust and its advanced type system to help overcome the status quo of C++ code.
I'll talk about Servo's goals, its design, and how the Rust language is
helping. I'll discuss where it is possible to get more parallelism in the
browser, especially in its layout algorithms, and how we plan to do it.
Jack Moffitt is an engineering manager at Mozilla Research and works on the Servo and Daala projects. Previously he founded or worked at startups that created real-time search engines, mobile MMORPGs, and new communication systems. He also helped create Ogg Vorbis and founded the Xiph.org Foundation, a non-profit which works on open, royalty-free multimedia codecs.