This talk exposes the reasons what Servo is and why it is necessary, its current status, future plans and details on the Rust programming language, which has a symbiotic relationship with Servo.
3. Introdução
• Scenario: Mobile web browsers
• What is Servo? What is Rust?
• Servo: Objectives
• Servo: Current status
• Servo: Challenges and future plans
• Contributing to Servo and Rust
4. Scenario: Mobile web browsers
Predictions for 2014 and beyond*:
• Web pages will grow in size and complexity
• Focus on mobile web browsers performance
• Devices will have more cores, not faster cores
5. Scenario: Mobile web browsers
Load time of a web page in Desktop vs. Mobile**:
Sources:
http://www.webperformancetoday.com/2014/01/07/eight-web-performance-predictions-for-2014/
http://www.eecs.berkeley.edu/~lmeyerov/projects/pbrowser/pubfiles/playout.pdf
6. Scenario: Mobile web browsers
Slowness causes:
• Single-core mobile devices
• Browsers do not adapt to multi-core devices
• JavaScript code run in a single thread
7. Scenario: Mobile web browsers
Further issues:
• Huge code base: multiple architectures, multiple ports
• Support for deprecated platforms, specifications and
architectures
• Security vulnerabilities on C++ memory management
10. What is Servo?
Servo is an experimental web engine:
• Developed by Mozilla, in partnership with Samsung
• Aims to create a highly parallel and safe environment
• Focus on mobile and embedded
• Has symbiotic relationship with Rust programming language
11. What is Servo?
Under the hood:
• SpiderMonkey JavaScript engine
• Azure drawing library (Skia)
• Hubbub HTML parser
• Harfbuzz text shaping library
13. What is Rust?
Rust is a programming language:
• Developed to be safe, concurrent and practical
• Focus on creation of reliable and efficient systems
• #2 on GitHub’s “repositories with most amount of closed
issues” in 2013
15. Servo: Objectives
• Advantage from parallelism in various levels
• Eliminate common causes for bugs and security flaws
• Based on WHATWG live specifications