Servo

Screenshot of Servo rendering the Servo preview release page

Developer(s)| Mozilla Research, Samsung and others
Preview release|

Nightly build[1] / 29 August 2018; 7 years ago (2018-08-29)

Written in| Rust
Operating system| Cross-platform
Type| Browser engine
License| MPL 2.0[2][3]
Website| servo.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.[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.

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]

## Contents

* 1 Features
* 2 History
* 3 Servo project
* 3.1 Project goals
* 3.2 Relationship to Firefox
* 3.3 Chromium Embedded Framework
* 3.4 Project structure
* 4 See also
* 5 References
* 6 External links

## 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 2012. 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 have merged 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

* Gecko browser engine
* Quantum project

## References

1. ↑ "Servo Developer Preview Downloads". https://download.servo.org.
2. ↑ "Mozilla Foundation End-User Licensing Agreements" (in en-US). https://www.mozilla.org/en-US/about/legal/eula/.
3. ↑ "Mozilla Licensing Policies". mozilla.org. https://www.mozilla.org/foundation/licensing.html. Retrieved 26 March 2013.
4. ↑ "Samsung teams up with Mozilla to build browser engine for multicore machines". Ars Technica. 3 April 2013. https://arstechnica.com/information-technology/2013/04/samsung-teams-up-with-mozilla-to-build-browser-engine-for-multicore-machines/. Retrieved 24 October 2014.
5. ↑ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. https://lwn.net/Articles/647969/. Retrieved 27 June 2015.
6. ↑ Eich, Brendan (13 October 2012). "Add a new UI crate". https://github.com/mozilla/servo/issues/111#issuecomment-9415000. Retrieved 2 April 2014.
7. ↑ Moffitt, Jack (17 April 2014). "Another Big Milestone for Servo—Acid2". https://blog.mozilla.org/research/2014/04/17/another-big-milestone-for-servo-acid2/. Retrieved 26 November 2015.
8. ↑ "Servo Continues Pushing Forward". 1 May 2015. https://blog.servo.org/2015/05/01/forward/. Retrieved 26 November 2015.
9. ↑ Bergstrom, Lars. "Mozilla's Project Quantum and Servo". https://groups.google.com/forum/m/#!topic/mozilla.dev.servo/3bH1KaqJq0s. Retrieved 9 November 2016.
10. ↑ Clark, Lin (10 October 2017). "The whole web at maximum FPS: How WebRender gets rid of jank". https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/. Retrieved 22 October 2017.
11. ↑ Larabel, Michael. "Mozilla's Servo Engine Is Crazy Fast Compared To Gecko". https://www.phoronix.com/scan.php?page=news_item&px=MTgzNDA. Retrieved 10 May 2016.
12. ↑ "Mozilla's Servo Is Whooping The Other Browsers In Performance". https://www.phoronix.com/scan.php?page=news_item&px=Google-Servo-Perf-Comparison. Retrieved 10 May 2016.
13. ↑ "initial add · servo/servo@ce30d45". https://github.com/servo/servo/commit/ce30d4520d67f2c6ef960571a9b3e450c5dcbebe.
14. ↑ "Add some stubs and a makefile · servo/servo@783455f". https://github.com/servo/servo/commit/783455f684bc613dba25d5c2e54157c336093f35.
15. ↑ "Mozilla and Samsung Collaborate on Next Generation Web Browser Engine". https://blog.mozilla.org/blog/2013/04/03/mozilla-and-samsung-collaborate-on-next-generation-web-browser-engine/.
16. ↑ "Mozilla, Samsung team up on 'Servo' next-gen browser engine". http://www.androidcentral.com/mozilla-samsung-team-servo-next-gen-browser-engine.
17. ↑ "Servo Nightly Builds Available". 30 June 2016. http://blog.servo.org/2016/06/30/servo-nightlies/.
18. ↑ "Windows nightly builds now available". 13 April 2017. https://blog.servo.org/2017/04/13/windows/.
19. ↑ "Design · servo/servo Wiki". https://github.com/servo/servo/wiki/Design.
20. ↑ "Quantum - MozillaWiki". https://wiki.mozilla.org/Quantum.
21. ↑ Bryant, David (27 October 2016). "A Quantum Leap for the Web – Mozilla Tech". https://medium.com/mozilla-tech/a-quantum-leap-for-the-web-a3b7174b3c12.
22. ↑ Blumenkrantz, Mike; Bergstrom, Lars (13 May 2015). "Servo: The Embeddable Browser Engine - Samsung Open Source Group Blog" (in en-US). Samsung Open Source Group Blog. https://blogs.s-osg.org/servo-the-embeddable-browser-engine/.
23. ↑ Willis, Nathan (17 June 2015). "Parallel page rendering with Mozilla Servo". LWN.net. https://lwn.net/Articles/647969/. Retrieved 30 October 2016.

## External links

* "The Changelog #228: Servo and Rust with Jack Moffitt". 2016-11-18.

* v
* t
* e

Browser engines

Active|

* Blink
* EdgeHTML
* Gecko
* Goanna
* NetSurf
* Servo
* WebKit

Discontinued|

* KHTML
* Mariner
* Presto
* Tasman
* Tkhtml
* Trident

Comparisons|

* General info
* Support
* HTML
* CSS
* graphics
* typography

* v
* t
* e

Mozilla

Projects

| Mozilla
Labs|

* Bugzilla
* ChatZilla
* Electrolysis Project
* Jetpack
* Lightning
* Persona
* Prism
* Raindrop
* Skywriter
* Sunbird
* PDF.js
* Sync
* Tinderbox
* Ubiquity

|

Mozilla
Research|

* asm.js
* Daala
* Firefox OS
* OpenFlint
* Open Media
* Rust
* Servo
* Shumway
* WebAssembly
* WebVR

Mozilla
Foundation|

* Mozilla Location Service
* SeaMonkey
* Thunderbird

| Firefox|

* Firefox Browser

* 1
* 1.5
* 2
* 3
* 3.5
* 3.6
* 4
* 5–current
* Future releases
* for Android
* Preview
* for iOS
* Focus

* Firefox Lockwise
* Firefox Monitor
* Firefox Send
* IRL - Online Life is Real Life

|

Origins|

* Mozilla Application Suite
* Netscape Navigator
* Netscape Communicator
* Netscape Communications
* Beonex Communicator

Forks|

* Basilisk
* BurningDog
* Classilla
* Flock
* Gnuzilla
* Goanna
* Iceape
* IceCat
* Icedove
* Iceowl
* Miro
* Netscape 9
* Pale Moon
* Portable Edition
* Swiftfox
* Swiftweasel
* TenFourFox
* UXP
* Waterfox
* xB Browser

Frameworks|

* Add-on
* Gecko
* Necko
* NPAPI
* XPConnect
* XBL
* XPCOM
* XPInstall
* XUL
* XULRunner

Components|

* Composer
* NSPR
* NSS
* Rhino
* SpiderMonkey
* Tamarin

Typefaces|

* Fira Sans
* Zilla Slab

Discontinued|

* Calendar Project
* Camino
* Firefox Home
* Grendel
* Minimo

Discontinued projects are in italics. Some projects abandoned by Mozilla that are still maintained by third parties are in bold.

Organization

| Foundation|

* Former Mozilla Organization
* Mozilla Foundation

|

Subsidiaries|

* Mozilla Corporation
* Mozilla Messaging
* Mozilla Online

Official affiliates|

* Mozilla China
* Mozilla Europe
* Mozilla Japan
* Mozilla Taiwan

People|

* Mitchell Baker
* David W. Barron
* Sheeri Cabral
* Tantek Çelik
* Brendan Eich
* John Hammink
* Robert O'Callahan
* Johnny Stenbäck
* Doug Turner
* Boris Zbarsky

Community

* mozdev.org
* Mozilla Add-ons
* MDN Web Docs
* MozillaZine
* Spread Firefox

Other topics

* The Book of Mozilla
* Code Rush
* Mozilla Public License
* Localizations
* Mascot
* Rebranding / forking

0.00

(0 votes)

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Servo&oldid=787992"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template