Servo (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Servo
Servo Logo.svg
Developer(s)Mozilla Research, Samsung, and others
Repository Edit this at Wikidata
Written inRust
Operating systemCross-platform
TypeBrowser engine
LicenseMPL 2.0[1]
Websiteservo.org

Servo is an experimental browser engine developed to take advantage of the memory safety properties and concurrency features of the Rust programming language. The project was initiated by Mozilla Research with effort from Samsung to port it to Android and ARM processors.[2] 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.

A part of the project, the Servo CSS style engine, has been incorporated into Firefox, Mozilla's open-source web browser.[3]

JavaScript support is provided by the C++ SpiderMonkey engine that is also used by Firefox.[4]

Servo is named after Tom Servo, a robot from the television show Mystery Science Theater 3000.[5]

Features[edit]

Mozilla Servo showing the Acid2 test

As of 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.[6][7]

Servo makes use of GPU acceleration to render web pages more quickly and smoothly.[8][9] Servo is significantly faster, in certain benchmarks, than Gecko, Mozilla's other layout and rendering engine, as of November 2014.[10][11]

History[edit]

Mozilla Research's projects diagram featuring Servo

Development of Servo began in 2012. The first commit on 8 February 2012 did not contain any source code.[12] The first rudimentary code commit occurred on 27 March 2012.[13]

On 3 April 2013 Mozilla announced that they and Samsung are collaborating on Servo.[14][15]

As of 30 June 2016, a preview version has been available for download for macOS and Linux.[16]

Since then, builds have also been made available for Windows (starting on 13 April 2017),[17] Android (14 September 2018),[18] and the Magic Leap One augmented reality headset (3 December 2018).[19]

In 2017 with the release of Firefox 54 the Servo CSS style engine (a part of the project) was incorporated by Mozilla into their open-source web browser.[3]

Firefox Reality AR, the first browser built entirely on Servo, was released in 2020.[20]

In August 2020 during the COVID-19 pandemic, due to lack of funds and organization restructuring, Mozilla laid off most of the Servo development team, along with its own threat management security team, to "adapt its finances to a post-COVID-19 world and re-focus the organization on new commercial services". [21]

Servo project[edit]

Project goals[edit]

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.

Relationship to Firefox[edit]

Servo developers have merged parts of Servo into Gecko, thus lending the Servo project's advancements to Firefox.[22][23]

Chromium Embedded Framework[edit]

Servo intended to re-implement the Chromium Embedded Framework (CEF) API. This would have allowed Servo to be used as a drop-in replacement for Chromium in applications using CEF, and would have positioned Servo as a competitor to Chromium in these cases.[24]

CEF support never reached a usable state and support was removed from Servo in early 2018.[25]

Project structure[edit]

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.[26] Servo, including all community contributions, is licensed under the Mozilla Public License version 2.0.

See also[edit]

References[edit]

  1. ^ "servo/LICENSE". GitHub. Retrieved 5 December 2018.
  2. ^ "Samsung teams up with Mozilla to build browser engine for multicore machines". Ars Technica. 3 April 2013. Retrieved 24 October 2014.
  3. ^ a b "Servo engines written in Rust deliver memory safety and multithreading". Mozilla Research. Retrieved 5 July 2020.
  4. ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 27 June 2015.
  5. ^ Eich, Brendan (13 October 2012). "Add a new UI crate". Retrieved 2 April 2014.
  6. ^ Moffitt, Jack (17 April 2014). "Another Big Milestone for Servo—Acid2". Retrieved 26 November 2015.
  7. ^ "Servo Continues Pushing Forward". 1 May 2015. Retrieved 26 November 2015.
  8. ^ Bergstrom, Lars. "Mozilla's Project Quantum and Servo". mozilla.dev.servo - Google Groups. Retrieved 9 November 2016.
  9. ^ 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.
  10. ^ Larabel, Michael. "Mozilla's Servo Engine Is Crazy Fast Compared To Gecko". Phoronix. Retrieved 10 May 2016.
  11. ^ "Mozilla's Servo Is Whooping The Other Browsers In Performance". Phoronix. Retrieved 10 May 2016.
  12. ^ "initial add · servo/servo@ce30d45".
  13. ^ "Add some stubs and a makefile · servo/servo@783455f".
  14. ^ "Mozilla and Samsung Collaborate on Next Generation Web Browser Engine".
  15. ^ "Mozilla, Samsung team up on 'Servo' next-gen browser engine".
  16. ^ "Servo Nightly Builds Available". Servo Blog. 30 June 2016.
  17. ^ "Windows nightly builds now available". Servo Blog. 13 April 2017.
  18. ^ "Add Android download link". GitHub. Retrieved 8 December 2018.
  19. ^ "A new browser for Magic Leap". 3 December 2018. Retrieved 20 May 2019.
  20. ^ "Firefox Reality for HoloLens 2". 21 May 2020. Retrieved 17 July 2020.
  21. ^ "Mozilla lays off 250 employees while it refocuses on commercial products". 11 August 2020. Retrieved 17 August 2020.
  22. ^ "Quantum - MozillaWiki". wiki.mozilla.org. Retrieved 28 October 2016.
  23. ^ Bryant, David (27 October 2016). "A Quantum Leap for the Web – Mozilla Tech". Medium. Retrieved 28 October 2016.
  24. ^ 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.
  25. ^ Dropping CEF support?, retrieved 7 November 2018
  26. ^ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. Retrieved 30 October 2016.

External links[edit]