Servo is a new rendering engine built with the Rust programming language

Dec 13, 2012 14:33 GMT  ·  By

Gecko has been powering Mozilla's browsers for more than a decade. It's going to stay that way for a while, but some people at Mozilla are looking at the future and for an alternative.

Servo, which is in the very early stages is a completely new browser engine, designed to right the many wrongs brought on by an engine created 15 years ago.

For one, it's built with parallelism in mind, in fact, it's completely designed around parallel tasks.

This should provide a boost in rendering speed on multi-core processors, basically the vast majority of desktop and mobile processors in use today.

Servo also aims to be significantly more secure than Gecko or any current engine, with better memory management and handling of data races.

To do this, Mozilla is working with Rust, a new programming language designed in house that has been in the works for several years, rather than the common C++.

Rust is designed as a low-level programming language for the modern age and for the web. Security, memory control and concurrency are its priorities.

Servo is in the design phase, some code has been written, but large parts are missing. It's not going to become a viable project any time soon; however, the team is working on the premise that Servo may eventually be used in an actual browser.

It's going to be years before it can replace Gecko, if that happens at all, but it's good to see that Mozilla is at least entertaining the idea of a Gecko replacement.

Gecko is no slouch, but it along with Firefox's existing codebase has prevented Mozilla from developing a proper multi-process architecture for the browser.

The Electrolysis project has been put on hold after a couple of years of work didn't provide much tangible results. Firefox only separates the plugin process from the main one.

Chrome runs each tab, plugin, extension and so on in separate processes. This is done at the browser level, WebKit, the rendering engine in Chrome, is still single-process. WebKit2, a proposed successor, is designed with multiple processes in mind.