Servo (software)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by KAMiKAZOW (talk | contribs) at 12:42, 13 December 2017 (→‎History: Partial revert of last edit that broke things). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Servo
Developer(s)Mozilla Research, Samsung and others
Preview release
Nightly build[1] / 8 October 2017; 6 years ago (2017-10-08)
Repository
Written inRust
Operating systemCross-platform
TypeLayout engine
LicenseMPL 2.0[2][3]
Websiteservo.org

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

Mozilla Servo showing the Acid2 test

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

Mozilla Research's projects diagram featuring Servo

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

  1. ^ "Servo Developer Preview Downloads". servo-builds.s3.amazonaws.com. Retrieved 8 October 2017.
  2. ^ "Mozilla Foundation End-User Licensing Agreements". Mozilla. Retrieved 6 July 2016.
  3. ^ "Mozilla Licensing Policies". mozilla.org. Retrieved 26 March 2013.
  4. ^ "Samsung teams up with Mozilla to build browser engine for multicore machines". Ars Technica. 3 April 2013. Retrieved 24 October 2014.
  5. ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 27 June 2015.
  6. ^ Eich, Brendan (13 October 2012). "Add a new UI crate". Retrieved 2 April 2014.
  7. ^ Moffitt, Jack (17 April 2014). "Another Big Milestone for Servo—Acid2". Retrieved 26 November 2015.
  8. ^ "Servo Continues Pushing Forward". 1 May 2015. Retrieved 26 November 2015.
  9. ^ Bergstrom, Lars. "Mozilla's Project Quantum and Servo". mozilla.dev.servo - Google Groups. Retrieved 9 November 2016.
  10. ^ 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.
  11. ^ Larabel, Michael. "Mozilla's Servo Engine Is Crazy Fast Compared To Gecko". Phoronix. Retrieved 10 May 2016.
  12. ^ "Mozilla's Servo Is Whooping The Other Browsers In Performance". Phoronix. Retrieved 10 May 2016.
  13. ^ "initial add · servo/servo@ce30d45".
  14. ^ "Add some stubs and a makefile · servo/servo@783455f".
  15. ^ "Mozilla and Samsung Collaborate on Next Generation Web Browser Engine".
  16. ^ "Mozilla, Samsung team up on 'Servo' next-gen browser engine".
  17. ^ "Servo Nightly Builds Available". Servo Blog. 30 June 2016.
  18. ^ "Windows nightly builds now available". Servo Blog. 13 April 2017.
  19. ^ "Design · servo/servo Wiki". GitHub. Retrieved 28 October 2016.
  20. ^ "Quantum - MozillaWiki". wiki.mozilla.org. Retrieved 28 October 2016.
  21. ^ Bryant, David (27 October 2016). "A Quantum Leap for the Web – Mozilla Tech". Medium. Retrieved 28 October 2016.
  22. ^ 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.
  23. ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 30 October 2016.

External links