To be very clear: Servo is a research project. It is not aimed to replace Gecko. It gives us the opportunity to experiment with new approaches, new patterns and new technologies, like Rust, another research project we are working on.
Servo, a browser engine research project
You know Gecko. It's the layout engine used by Firefox. While we are still working hard on adding new feature and improving gecko, we are also experimenting with a new engine: servo.
How is servo different from Gecko?
It's not written in C++. We are working on our own language, named Rust. C++ is not very suitable for things that need to be parallelized and safe at the same time. However, Rust has been designed for that.
Modularity. From the
Servo Mailing list:
We make heavy use of Git submodules for modularity--like WebKit, we want
the pieces of Servo to be independently hackable.
A scalable rendering engine. Isolating the different operations of your browser is important for responsiveness. Rust comes with "lightweight threads" we call "Tasks". There are tasks for all the major operations: rendering, i/o, layers compositing, and for each page.
Networking operations are handled by libuv. A library that has been developed first for NodeJS.
How is servo similar to Gecko?
2D Graphics: for Gecko, we are working on a new graphic engine named Azure. Some parts are already present in Firefox. Azure abstracts the different ways to render 2D elements on the screen (Cairo, OpenGL, Skia, …). Easy then for us to switch between the right backend depending on the device (Android, osx, Windows, Linux, with or without a supported GPU, …)