SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Servo: The parallel web engine
Bruno de Oliveira Abinader	

brunoabinader@gmail.com
bruno.d@partner.samsung.com	

FISL 15 | 2014 | Porto Alegre, Brasil
/whoami	

abinader @ irc.freenode.org | irc.mozilla.org | irc.w3.org	

Ohloh: ohloh.net/accounts/brunoabinader	

GitHub: github.com/brunoabinader	

Blog: abinader.com.br
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
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
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
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
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
What is Servo?
What is Servo?	

document
html
head body
title p
DOM Example Hello World!
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
What is Servo?	

Under the hood:	

• SpiderMonkey JavaScript engine	

• Azure drawing library (Skia)	

• Hubbub HTML parser	

• Harfbuzz text shaping library
What is Rust?
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
What is Rust?	

Example:
Servo: Objectives
• Advantage from parallelism in various levels	

• Eliminate common causes for bugs and security flaws	

• Based on WHATWG live specifications
Servo: Current status
We do ACID2!
Servo: Challenges
• Performance: Parallelism trade-offs	

• Rust data structures	

• Rust language immaturity	

• Hostile libraries to parallelism and security controls
Servo: Challenges
Strategies for optimal parallelism:	

Task-based architecture
Copy-on-write DOM
Parallel rendering
Tiled rendering
Layered rendering
Selector matching
Parallel layout
Text shaping
Parallel parsing
Image decoding
Other decodings (eg. Video)
GC JS in parallel with layout
Servo: Future plans
Roadmap for 2014:	

• Demonstrate better performance than other web
engines (eg. Gecko, WebKit, Blink, Trident)	

• Implement all Servo architecture	

ACID2 | Parallel layout | HTML parser in Rust | Bidirectional
writing | Vertical writing | Gestures | XMLHTTPRequest |
Incremental layout | COW DOM | W3C Platform Tests | CSS WG
tests | Android buildbot | Embedding | Pagination | CSSOM |
CSS Properties | DOM bindings | Caching | FlexBox | Web
Animations | Multiprocess | Multimedia | Sandboxing | Addons
| Bookmarks | History | Cookies | …
Contributing to Servo and Rust	

• Contributions are welcome!	

• Servo: github.com/mozilla/servo	

• Rust: github.com/mozilla/rust | rust-lang.org	

• #servo | #rust | #rust-internals @ irc.mozilla.org	

• dev-servo | rust-dev @ lists.mozilla.org	

• Reviews: critic.hoppipolla.co.uk	

• News: blog.octayn.net
Contributing to Servo and Rust	

• Servo: Supported systems:
Contributing to Servo and Rust	

• First good bugs list @ GitHub issues	

• CSS properties	

• DOM Bindings	

• Janitoring	

• Tests	

• Documentation
Questions?
Thank you!
Special thanks:

Contenu connexe

Tendances

Building a GIS SaaS App using MongoDB
Building a GIS SaaS App using MongoDBBuilding a GIS SaaS App using MongoDB
Building a GIS SaaS App using MongoDB
DonnyV
 

Tendances (6)

Mago3D - An innovative AEC/GIS integration platform that can service millions...
Mago3D - An innovative AEC/GIS integration platform that can service millions...Mago3D - An innovative AEC/GIS integration platform that can service millions...
Mago3D - An innovative AEC/GIS integration platform that can service millions...
 
Building a GIS SaaS App using MongoDB
Building a GIS SaaS App using MongoDBBuilding a GIS SaaS App using MongoDB
Building a GIS SaaS App using MongoDB
 
Mago3D: A Brand-New Live 3D Geo-Platform
Mago3D: A Brand-New Live 3D Geo-PlatformMago3D: A Brand-New Live 3D Geo-Platform
Mago3D: A Brand-New Live 3D Geo-Platform
 
Codificando Night Week - Blazor, tornando o fullstack C# possível!
Codificando Night Week - Blazor, tornando o fullstack C# possível!Codificando Night Week - Blazor, tornando o fullstack C# possível!
Codificando Night Week - Blazor, tornando o fullstack C# possível!
 
Node.js - Greece JS Meetup 2012
Node.js - Greece JS Meetup 2012Node.js - Greece JS Meetup 2012
Node.js - Greece JS Meetup 2012
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)
 

En vedette

Rust-lang
Rust-langRust-lang
From consumer to prosumer
From consumer to prosumerFrom consumer to prosumer
From consumer to prosumer
Angelos Maragos
 

En vedette (18)

Rust Workshop - NITC FOSSMEET 2017
Rust Workshop - NITC FOSSMEET 2017 Rust Workshop - NITC FOSSMEET 2017
Rust Workshop - NITC FOSSMEET 2017
 
Ruby is Awesome and Rust is Awesome and Building a Game in Both is AWESOME
Ruby is Awesome and Rust is Awesome and Building a Game in Both is AWESOMERuby is Awesome and Rust is Awesome and Building a Game in Both is AWESOME
Ruby is Awesome and Rust is Awesome and Building a Game in Both is AWESOME
 
Type-Directed TDD in Rust: a case study using FizzBuzz
Type-Directed TDD in Rust: a case study using FizzBuzzType-Directed TDD in Rust: a case study using FizzBuzz
Type-Directed TDD in Rust: a case study using FizzBuzz
 
Rust: Unlocking Systems Programming
Rust: Unlocking Systems ProgrammingRust: Unlocking Systems Programming
Rust: Unlocking Systems Programming
 
What the &~#@<!? (Memory Management in Rust)
What the &~#@<!? (Memory Management in Rust)What the &~#@<!? (Memory Management in Rust)
What the &~#@<!? (Memory Management in Rust)
 
OOP in Rust
OOP in RustOOP in Rust
OOP in Rust
 
Embedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesEmbedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devices
 
Embedded Rust on IoT devices
Embedded Rust on IoT devicesEmbedded Rust on IoT devices
Embedded Rust on IoT devices
 
Rust: Systems Programming for Everyone
Rust: Systems Programming for EveryoneRust: Systems Programming for Everyone
Rust: Systems Programming for Everyone
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming Language
 
Machine Learning in Rust with Leaf and Collenchyma
Machine Learning in Rust with Leaf and CollenchymaMachine Learning in Rust with Leaf and Collenchyma
Machine Learning in Rust with Leaf and Collenchyma
 
Kernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring NaughtKernel-Level Programming: Entering Ring Naught
Kernel-Level Programming: Entering Ring Naught
 
Rust-lang
Rust-langRust-lang
Rust-lang
 
Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!
 
From consumer to prosumer
From consumer to prosumerFrom consumer to prosumer
From consumer to prosumer
 
Prosumer
ProsumerProsumer
Prosumer
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Introduction to Rust
Introduction to RustIntroduction to Rust
Introduction to Rust
 

Similaire à Servo: The parallel web engine

Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JS
Amit Kumar
 

Similaire à Servo: The parallel web engine (20)

SatyaMadhuKiran Software Developer
SatyaMadhuKiran Software DeveloperSatyaMadhuKiran Software Developer
SatyaMadhuKiran Software Developer
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Blazor.pptx
Blazor.pptxBlazor.pptx
Blazor.pptx
 
Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
 
【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
 
Building Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and BlazorBuilding Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and Blazor
 
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps Technologies
 
Global Logic sMash Overview And Experiences
Global Logic   sMash  Overview And  ExperiencesGlobal Logic   sMash  Overview And  Experiences
Global Logic sMash Overview And Experiences
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023
 
Angular.js vs node.js how are they different
Angular.js vs node.js  how are they different Angular.js vs node.js  how are they different
Angular.js vs node.js how are they different
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
Know the difference - Angular.js vs Node.js
Know the difference - Angular.js vs Node.jsKnow the difference - Angular.js vs Node.js
Know the difference - Angular.js vs Node.js
 
Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JS
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
playwrightmeetup-14jan2021-210114173639.pdf
playwrightmeetup-14jan2021-210114173639.pdfplaywrightmeetup-14jan2021-210114173639.pdf
playwrightmeetup-14jan2021-210114173639.pdf
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 

Servo: The parallel web engine

  • 1. Servo: The parallel web engine Bruno de Oliveira Abinader brunoabinader@gmail.com bruno.d@partner.samsung.com FISL 15 | 2014 | Porto Alegre, Brasil
  • 2. /whoami abinader @ irc.freenode.org | irc.mozilla.org | irc.w3.org Ohloh: ohloh.net/accounts/brunoabinader GitHub: github.com/brunoabinader Blog: abinader.com.br
  • 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
  • 9. What is Servo? document html head body title p DOM Example Hello World!
  • 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
  • 17. Servo: Challenges • Performance: Parallelism trade-offs • Rust data structures • Rust language immaturity • Hostile libraries to parallelism and security controls
  • 18. Servo: Challenges Strategies for optimal parallelism: Task-based architecture Copy-on-write DOM Parallel rendering Tiled rendering Layered rendering Selector matching Parallel layout Text shaping Parallel parsing Image decoding Other decodings (eg. Video) GC JS in parallel with layout
  • 19. Servo: Future plans Roadmap for 2014: • Demonstrate better performance than other web engines (eg. Gecko, WebKit, Blink, Trident) • Implement all Servo architecture ACID2 | Parallel layout | HTML parser in Rust | Bidirectional writing | Vertical writing | Gestures | XMLHTTPRequest | Incremental layout | COW DOM | W3C Platform Tests | CSS WG tests | Android buildbot | Embedding | Pagination | CSSOM | CSS Properties | DOM bindings | Caching | FlexBox | Web Animations | Multiprocess | Multimedia | Sandboxing | Addons | Bookmarks | History | Cookies | …
  • 20. Contributing to Servo and Rust • Contributions are welcome! • Servo: github.com/mozilla/servo • Rust: github.com/mozilla/rust | rust-lang.org • #servo | #rust | #rust-internals @ irc.mozilla.org • dev-servo | rust-dev @ lists.mozilla.org • Reviews: critic.hoppipolla.co.uk • News: blog.octayn.net
  • 21. Contributing to Servo and Rust • Servo: Supported systems:
  • 22. Contributing to Servo and Rust • First good bugs list @ GitHub issues • CSS properties • DOM Bindings • Janitoring • Tests • Documentation