Servo (software)
Developer(s) | Mozilla Research, Samsung and others |
---|---|
Preview release | Nightly build[1]
/ 8 October 2017 |
Repository | |
Written in | Rust |
Operating system | Cross-platform |
Type | Layout engine |
License | MPL 2.0[2][3] |
Website | servo |
Servo is an experimental web browser layout engine being developed by Mozilla Research, with Samsung porting it to Android and ARM processors.[4] The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. Source code for the project is written in the Rust programming language.
Two significant components used by Servo are based on pre-existing C++ code from Mozilla. JavaScript support is provided by SpiderMonkey, and the 2D graphics library Azure is used to interface with OpenGL and Direct3D.[5]
Servo is named after Tom Servo, a robot from the television show Mystery Science Theater 3000.[6]
Features
This section needs expansion. You can help by adding to it. (November 2015) |
Development on Servo is still at an early stage; however, it can already render Wikipedia and GitHub, and successfully passes the Acid2 test. It features innovations like a parallel layout algorithm and its own CSS3 and HTML5 parser implemented in Rust.[7][8]
Servo makes use of GPU acceleration to render web pages more quickly and smoothly.[9][10] Servo is significantly faster, in certain benchmarks, than Gecko, Mozilla's other layout and rendering engine, as of November 2014.[11][12]
History
Development of Servo began in 2013. The very first commit on 8 February 2012 did not contain any source code.[13] The first rudimentary code commit occurred on 27 March 2012.[14]
On 3 April 2013 Mozilla announced that they and Samsung collaborate on Servo.[15][16]
As of 30 June 2016, a preview version is available for download.[17] This is marked as 0.0.1 and is available for macOS and Linux.
As of 13 April 2017, builds are now available for Windows as well.[18]
Servo project
Project goals
The Servo project itself is officially a research project. The goal is to create a new layout engine using a modern programming language (Rust), and using parallelism and code safety, to achieve greater security and performance versus contemporary browsers.
Using Browser.HTML as a GUI, Servo can act as a standalone browser. This configuration of the browser was originally intended as a research project and proof-of-concept.[19]
Relationship to Firefox
Servo developers plan to merge parts of Servo into Gecko, thus lending the Servo project's advancements to Firefox.[20][21]
Chromium Embedded Framework
Servo intends to re-implement the Chromium Embedded Framework (CEF) API. This would allow Servo to be used as a drop-in replacement for Chromium in applications using CEF, and positions Servo as a competitor to Chromium in these cases.[22]
Project structure
The Servo project is sponsored and maintained by Mozilla, with several Mozilla employees contributing a majority of code to the project. As an open-source, free software project, it is open to contributions from anyone.[23] Servo, including all community contributions, is licensed under the Mozilla Public License version 2.0.
See also
References
- ^ "Servo Developer Preview Downloads". servo-builds.s3.amazonaws.com. Retrieved 8 October 2017.
- ^ "Mozilla Foundation End-User Licensing Agreements". Mozilla. Retrieved 6 July 2016.
- ^ "Mozilla Licensing Policies". mozilla.org. Retrieved 26 March 2013.
- ^ "Samsung teams up with Mozilla to build browser engine for multicore machines". Ars Technica. 3 April 2013. Retrieved 24 October 2014.
- ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 27 June 2015.
- ^ Eich, Brendan (13 October 2012). "Add a new UI crate". Retrieved 2 April 2014.
- ^ Moffitt, Jack (17 April 2014). "Another Big Milestone for Servo—Acid2". Retrieved 26 November 2015.
- ^ "Servo Continues Pushing Forward". 1 May 2015. Retrieved 26 November 2015.
- ^ Bergstrom, Lars. "Mozilla's Project Quantum and Servo". mozilla.dev.servo - Google Groups. Retrieved 9 November 2016.
- ^ Clark, Lin (10 October 2017). "The whole web at maximum FPS: How WebRender gets rid of jank". Mozilla Hacks – the Web developer blog. Retrieved 22 October 2017.
- ^ Larabel, Michael. "Mozilla's Servo Engine Is Crazy Fast Compared To Gecko". Phoronix. Retrieved 10 May 2016.
- ^ "Mozilla's Servo Is Whooping The Other Browsers In Performance". Phoronix. Retrieved 10 May 2016.
- ^ "initial add · servo/servo@ce30d45".
- ^ "Add some stubs and a makefile · servo/servo@783455f".
- ^ "Mozilla and Samsung Collaborate on Next Generation Web Browser Engine".
- ^ "Mozilla, Samsung team up on 'Servo' next-gen browser engine".
- ^ "Servo Nightly Builds Available". Servo Blog. 30 June 2016.
- ^ "Windows nightly builds now available". Servo Blog. 13 April 2017.
- ^ "Design · servo/servo Wiki". GitHub. Retrieved 28 October 2016.
- ^ "Quantum - MozillaWiki". wiki.mozilla.org. Retrieved 28 October 2016.
- ^ Bryant, David (27 October 2016). "A Quantum Leap for the Web – Mozilla Tech". Medium. Retrieved 28 October 2016.
- ^ Blumenkrantz, Mike; Bergstrom, Lars (13 May 2015). "Servo: The Embeddable Browser Engine - Samsung Open Source Group Blog". Samsung Open Source Group Blog. Retrieved 28 October 2016.
- ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 30 October 2016.