A Year of the Servo Reboot: Where Are We Now?

igalia 45 views 28 slides May 02, 2024
Slide 1
Slide 1 of 28
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28

About This Presentation

Created by Mozilla Research in 2012 and now part of Linux Foundation Europe, the Servo project is an experimental rendering engine written in Rust. It combines memory safety and concurrency to create an independent, modular, and embeddable rendering engine that adheres to web standards. Stewardship ...


Slide Content

The Embeddable, Independent, Memory-Safe,
Modular, Parallel Web Rendering Engine
Rakhi Sharma (She/her) [email protected]

About Me
Open Source Engineer working on Servo
Igalia Web Platform Team
Servo Technical Steering Committee (TSC)
member
atbrakhi on internet

What’s Servo?
Servo is
a web rendering engine
written in Rust,
with WebGL and WebGPU support,
and adaptable to desktop, mobile,
and embedded applications.

Servo’s Journey So Far
2012: Started at Mozilla
2020: Mozilla’s layoffs impacted the Servo team
2020: Joined Linux Foundation
2022: Talks about restarting Servo, but how?
2023: Team formed and restarted at Igalia

About Igalia
Open Source Consultancy founded in 2001
140 people, fully remote (25 countires)
Flat structure (cooperative like model)
Top contributors to Chromium, WebKit and
Gecko

Servo’s Restart Announcement

Servo In 2023
Restarted the Project/Maintainence/Outreach
Layout Engine, CSS2 Support
Built and
Embedding, Minibrowser
internal WPT Servo demos

Restarting Servo
2485 commits (+375% over 523 in 2022)
1037 pull requests (+382% over 215 in 2022)
53 unique contributors (+140% over 22 in 2022),

Servo Demos
https://demo.servo.org/

Internal WPT Dashboard
Internal WPT https://wpt.servo.org/

Choosing A Layout Engine
Layout 2013 (legacy) vs Layout2020 (started in
2020)
Moving forward with Layout2020
Servo Layout Engines Report

Layout: Support For Floats

Layout: Support For Tables

Layout: WPT For Tables

Layout: Many More
font fallback
<div align>, <center>, sticky positioning
text-align-last, text-align: justify, vertical-align
Migration from floating-point coordinates (f32)
to fixed-point coordinates (Au)

Embedding Servo
Start getting applications using Servo
Applications can use Servo to render web
content
Provide good API for embedders
Servo on embedded devices (e.g. Raspberry Pi)

Minibrowser

No-Minibrowser
Run servo with --no-minibrowser

Collaboration With Tauri
Thank you NLnet for sponsoring this collboration
Hello Tauri._

Dioxus (Stylo-Blitz)
Use Stylo for CSS styles and selectors matching

Servo inside Qt,
using KDAB’s CXX-
Qt library as
bridge
CXX-Qt is a safe
interop between
Rust and Qt
KDAB QT

Preliminary Android
build support
Servo running in
Android emulators
Support for x86_64
images
Servo On Android

Servo And Outreachy
Servo participated in Outreachy this year
Outreachy is a 3 month paid remote internship
program
Many new contributors during contribution
phase
Helping improve code health, layout and docs

Future Roadmap

Support Servo
https://opencollective.com/servo
https://github.com/sponsors/servo

Thanks
Rakhi Sharma (She/her) [email protected]