|
| 1 | +--- |
| 2 | +layout: slides-new.html |
| 3 | +title: Servo @ Ubuntu Summit 2024 |
| 4 | +--- |
| 5 | +<!-- .slide: class="cover" --> |
| 6 | + |
| 7 | +<img src="/img/servo-color-negative-no-container-600.png" style="margin: 2em;" alt="Servo logo" /> |
| 8 | + |
| 9 | +<h4 style="line-height: 1.4"> |
| 10 | + The |
| 11 | + <span style="color: #4fc066;">embeddable</span>, |
| 12 | + <span style="color: #209e9b;">independent</span>, |
| 13 | + <span style="color: #f03278;">memory-safe</span>, |
| 14 | + <span style="color: #f68243;">modular</span>, |
| 15 | + <span style="color: #faae30;">parallel</span> |
| 16 | + web rendering engine |
| 17 | + <br> |
| 18 | +</h4> |
| 19 | +<div style="font-size: 60%; margin-top: 4em;"> |
| 20 | + |
| 21 | +Rakhi Sharma (She/her) <[email protected]> |
| 22 | + |
| 23 | +</div> |
| 24 | +----- |
| 25 | +<!-- .slide: style="text-align: left;" --> |
| 26 | +## About me |
| 27 | + |
| 28 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 29 | + |
| 30 | +* **Open Source Engineer** working on Servo |
| 31 | + |
| 32 | +* **Igalia** Web Platform Team |
| 33 | + |
| 34 | +* **Servo** Technical Steering Committee (TSC) member |
| 35 | + |
| 36 | +* **atbrakhi** on internet |
| 37 | + |
| 38 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 39 | + |
| 40 | +----- |
| 41 | +<!-- .slide: style="text-align: left;" --> |
| 42 | +## Web engine for the future 🔮 |
| 43 | + |
| 44 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 45 | + |
| 46 | +* written in <span style="color: #4fc066;">**Rust**</span>, |
| 47 | +* with <span style="color: #209e9b;">**WebGL**</span> and <span style="color: #209e9b;">**WebGPU**</span> support, |
| 48 | +* and adaptable to <span style="color: #f03278;">**desktop**</span>, <span style="color: #f03278;">**mobile**, **Rpi**</span>, |
| 49 | +* and <span style="color: #faae30;">**embedded**</span> applications. |
| 50 | + |
| 51 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 52 | + |
| 53 | +----- |
| 54 | +<!-- .slide: style="text-align: left;" --> |
| 55 | + |
| 56 | +## Journey so far 📈 |
| 57 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 58 | + |
| 59 | +* 2012: Started at Mozilla |
| 60 | +* 2020: Mozilla's layoffs impacted the Servo team |
| 61 | +* 2020: Joined Linux Foundation |
| 62 | +* 2022: Talks about restarting Servo, but how? |
| 63 | +* 2023: Team formed and restarted at Igalia |
| 64 | +* 2024: Continuous work on Layout, Embedding, Android |
| 65 | + |
| 66 | +<div style="font-size: 80%; margin-inline: -3.5em; margin-top: 1.5em;"> |
| 67 | +----- |
| 68 | +<!-- .slide: style="text-align: left;" --> |
| 69 | +## Servo 💚 Rust |
| 70 | + |
| 71 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 72 | + |
| 73 | +Rust and Servo at Mozilla Research |
| 74 | + |
| 75 | + < insert handsake gif > |
| 76 | + |
| 77 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 78 | +----- |
| 79 | + |
| 80 | +<!-- .slide: style="text-align: left;" --> |
| 81 | + |
| 82 | +## Contributions over time |
| 83 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 84 | + |
| 85 | +<img src="/img/github-2024-09.png" style="padding: 1em 0.5em; background: white; height: 300px;" alt="Contributors graph from https://github.com/servo/servo/graphs/contributors showing a very slow period from mid-2020 to end of 2023, and a bigger activity in 2023 & 2024." /> |
| 86 | + |
| 87 | +<div style="font-size: 80%; margin-inline: -3.5em; margin-top: 1.5em;"> |
| 88 | + |
| 89 | +----- |
| 90 | +<!-- .slide: style="text-align: left;" --> |
| 91 | + |
| 92 | +## What are we upto? |
| 93 | + |
| 94 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 95 | + |
| 96 | +* Embedding |
| 97 | +* Layout |
| 98 | +* Benchmarking |
| 99 | + |
| 100 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 101 | + |
| 102 | +----- |
| 103 | +<!-- .slide: style="text-align: left;" --> |
| 104 | + |
| 105 | +### Embedding 🔗 |
| 106 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 107 | + |
| 108 | +* Embed Servo in applications |
| 109 | +* Applications can use Servo to render web content |
| 110 | +* Provide good API for embedders |
| 111 | +* Servo on embedded devices (e.g. Raspberry Pi, OpenHarmony) |
| 112 | + |
| 113 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 114 | +----- |
| 115 | +<!-- .slide: style="text-align: left;" --> |
| 116 | + |
| 117 | +### Tauri <> Wry <> Servo 🔗 |
| 118 | + |
| 119 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 120 | + |
| 121 | +<figure class=_fig id=_wry_demo_fig> |
| 122 | +<iframe src="/img/blog/embedding-2024-01/demo-with-decorations-too.html" id=_wry_demo></iframe> |
| 123 | +</figure> |
| 124 | + |
| 125 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 126 | + |
| 127 | +----- |
| 128 | + |
| 129 | +<!-- .slide: style="text-align: left;" --> |
| 130 | + |
| 131 | +## Verso: browser using Servo as a web engine! |
| 132 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 133 | + |
| 134 | + |
| 135 | +<a href="https://github.com/versotile-org/verso/"> |
| 136 | + <img src="/img/servo-verso-example.gif" alt="Example of Verso browser based on Servo" /> |
| 137 | +</a> |
| 138 | +</div> |
| 139 | + |
| 140 | +----- |
| 141 | +<!-- .slide: style="text-align: left;" --> |
| 142 | + |
| 143 | +## Dioxus (Stylo-Blitz) |
| 144 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 145 | + |
| 146 | +Use Stylo for CSS styles and selectors matching |
| 147 | + |
| 148 | +<img src="/img/2024-02-fosdem-dioxus.png" alt="image showing stylo-dioxus experiment"/> |
| 149 | + |
| 150 | +----- |
| 151 | +<!-- .slide: style="text-align: left;" --> |
| 152 | + |
| 153 | +## KDAB QT |
| 154 | + |
| 155 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 156 | + |
| 157 | +<div style="float: left; width: 40%;"> |
| 158 | + |
| 159 | + * Servo inside Qt, using KDAB's CXX-Qt library as bridge |
| 160 | + |
| 161 | + * CXX-Qt is a safe interop between Rust and Qt |
| 162 | + |
| 163 | +</div> |
| 164 | +<div style="float: right; width: 55%; margin-top: 3%;"> |
| 165 | + <img src="/img/2024-04-16-OSS-NA-KDAB.png" alt="image showing Servo running using KDAB QT" /> |
| 166 | +</div> |
| 167 | + |
| 168 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 169 | + |
| 170 | +----- |
| 171 | +<!-- .slide: style="text-align: left;" --> |
| 172 | + |
| 173 | +## Minibrowser |
| 174 | + |
| 175 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 176 | + |
| 177 | +<img src="/img/2024-02-fosdem-minibrowser.png" alt="image showing Servo minibrowser" /> |
| 178 | + |
| 179 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 180 | + |
| 181 | +----- |
| 182 | + |
| 183 | +<!-- .slide: style="text-align: left;" --> |
| 184 | + |
| 185 | +## Recent Layout work |
| 186 | + |
| 187 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 188 | + |
| 189 | +* Flexbox, parllel table, Floats < insert images showcasing different fonts > |
| 190 | +* Right-to-left languages Support < RTL image > |
| 191 | + |
| 192 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 193 | + |
| 194 | +----- |
| 195 | + |
| 196 | +<!-- .slide: style="text-align: left;" --> |
| 197 | + |
| 198 | +## Benchmarking |
| 199 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 200 | + |
| 201 | +* New experimental profiling support |
| 202 | +* Tracing perfetto < insert image of demo website and the benchmark mesaurements > |
| 203 | +* Servo Benchmarking report on Servo wiki: https://github.com/servo/servo/wiki < insert image of running the demo and the benchmark mesaurements > |
| 204 | + |
| 205 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 206 | +----- |
| 207 | + |
| 208 | +<!-- .slide: style="text-align: left;" --> |
| 209 | + |
| 210 | +### Future is here 📱 |
| 211 | + |
| 212 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 213 | + |
| 214 | +<div class="ffragment" style="float: left; width: 49%; margin-right: 2%;"> |
| 215 | + |
| 216 | +<img style="margin-block: 0; height: 14em;" src="/img/servo-android-2024-09.jpg" alt="Screenshot of Servo running on Android opening servo.org homepage" /> |
| 217 | + |
| 218 | +<blockquote style="background: rgba(0, 0, 0, 0.75); position: relative; top: -4em; font-size: 80%; width: 70%; padding-inline: 20px;"> |
| 219 | +Android |
| 220 | +</blockquote> |
| 221 | + |
| 222 | +</div> |
| 223 | + |
| 224 | +<div class="ffragment" style="float: left; width: 49%;"> |
| 225 | + |
| 226 | +<img style="margin-block: 0; height: 14em;" src="/img/servo-openharmony-2024-09.jpg" alt="Screenshot of Servo running on OpenHarmony opening Servo's wikipedia page" /> |
| 227 | + |
| 228 | +<blockquote style="background: rgba(0, 0, 0, 0.75); position: relative; top: -4em; font-size: 80%; width: 70%; padding-inline: 20px;"> |
| 229 | +OpenHarmony |
| 230 | +</blockquote> |
| 231 | + |
| 232 | +</div> |
| 233 | + |
| 234 | +----- |
| 235 | + |
| 236 | +<!-- .slide: style="text-align: left;" --> |
| 237 | + |
| 238 | +## Community <3 |
| 239 | + |
| 240 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 241 | + |
| 242 | +* Servo participated in Outreachy last round |
| 243 | +* Participating again in winter cohort |
| 244 | +* Outreachy is a 3 month paid remote internship program |
| 245 | + |
| 246 | +> New **contributors are welcomed** |
| 247 | +
|
| 248 | +<div style="float: left; width: 30%; margin-inline: 3%;"> |
| 249 | +----- |
| 250 | +<!-- .slide: style="text-align: left;" --> |
| 251 | + |
| 252 | +### What's Next? |
| 253 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 254 | + |
| 255 | +* Growing a **healthy ecosystem** |
| 256 | +* Multiple organizations **joining efforts** |
| 257 | +* Public and private sector **funding** |
| 258 | +* OpenHarmony, Benchmarking, CSS Layout |
| 259 | + |
| 260 | +<img src="/img/2024-04-16-OSS-NA-2024-roadmap.png" alt="Servo’s roadmap for 2024" /> |
| 261 | + |
| 262 | +</div> |
| 263 | +<div style="float: left; width: 30%;"> |
| 264 | + |
| 265 | +----- |
| 266 | + |
| 267 | +<!-- .slide: style="text-align: left;" --> |
| 268 | + |
| 269 | +### Support us 💚 |
| 270 | + |
| 271 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 272 | + |
| 273 | +* GitHub sponsors: |
| 274 | + https://github.com/sponsors/servo |
| 275 | +* OpenCollective: |
| 276 | + https://opencollective.com/servo |
| 277 | + |
| 278 | +> 350 people and organizations donating more than 16,000 USD! |
| 279 | +
|
| 280 | +----- |
| 281 | +<!-- .slide: style="text-align: left;" --> |
| 282 | +## Join the project 🤝 |
| 283 | +<div style="width: 50px; height: 10px; background: #488bd1; margin-bottom: 20px;"></div> |
| 284 | + |
| 285 | +* GitHub: <a href="https://github.com/servo"><code>github.com/servo</code></a> |
| 286 | +* Chat: <a href="https://servo.zulipchat.com/"><code>servo.zulipchat.com</code></a> |
| 287 | +* Email: < a href= "mailto:[email protected]">< code> [email protected]</ code></ a> |
| 288 | +* Sponsor: [GitHub](https://github.com/sponsors/servo) & [Open Collective](https://opencollective.com/servo) |
| 289 | + |
| 290 | +<br> |
| 291 | +<br> |
| 292 | + |
| 293 | +> Looking into **growing the community around the project** |
| 294 | +
|
| 295 | +----- |
| 296 | + |
| 297 | +<!-- .slide: class="last" style="text-align: left;" --> |
| 298 | + |
| 299 | +<div style="float: left; font-size: 80%; margin-bottom: 5em;"> |
| 300 | + |
| 301 | +<a href="https://servo.org" style="color: #4fc066;"><code>https://</code><code style="font-weight: 700;">servo.org</code></a> |
| 302 | + |
| 303 | +<a href="https://floss.social/@servo" style="color: #4fc066;"><code>https://floss.social/</code><code style="font-weight: 700;">@servo</code></a> |
| 304 | + |
| 305 | +<a href="https://twitter.com/ServoDev" style="color: #4fc066;"><code>https://twitter.com/</code><code style="font-weight: 700;">ServoDev</code></a> |
| 306 | + |
| 307 | +<a href="https://bsky.app/profile/servo.org" style="color: #4fc066;"><code>https://bsky.app/</code><code style="font-weight: 700;">servo.org</code></a> |
| 308 | + |
| 309 | +</div> |
| 310 | + |
| 311 | +<img src="/img/servo-qr.png" style="width: 20%; margin-left: 3em;" alt="QR code with Servo logo pointing to servo.org website" /> |
| 312 | + |
| 313 | + |
| 314 | +<style> |
| 315 | + /* guaranteed minimum width for first paragraph after a float */ |
| 316 | + . |
| 317 | +_floatmin { |
| 318 | + display: block; |
| 319 | + width: 13em; |
| 320 | + overflow: hidden; |
| 321 | + } |
| 322 | + ._none { |
| 323 | + display: none; |
| 324 | + } |
| 325 | + ._fig:not(#specificity) { |
| 326 | + width: 33em; |
| 327 | + max-width: 100%; |
| 328 | + margin: 1em auto; |
| 329 | + } |
| 330 | + ._fig > ._flex { |
| 331 | + display: flex; |
| 332 | + } |
| 333 | + ._fig._min { |
| 334 | + width: min-content; |
| 335 | + } |
| 336 | + ._fig table { |
| 337 | + text-align: initial; |
| 338 | + } |
| 339 | + ._fig figcaption._notes { |
| 340 | + text-align: left; |
| 341 | + width: max-content; |
| 342 | + max-width: 100%; |
| 343 | + } |
| 344 | + ._figl:not(#specificity), |
| 345 | + ._figr:not(#specificity) { |
| 346 | + margin: 0 1em 1em; |
| 347 | + } |
| 348 | + ._figl { |
| 349 | + float: left; |
| 350 | + } |
| 351 | + ._figr { |
| 352 | + float: right; |
| 353 | + } |
| 354 | + ._figl > iframe, |
| 355 | + ._figr > iframe, |
| 356 | + ._figl > a > img, |
| 357 | + ._figr > a > img { |
| 358 | + width: 17em; |
| 359 | + max-width: max-content; |
| 360 | + } |
| 361 | + ._figl._default > iframe, |
| 362 | + ._figr._default > iframe, |
| 363 | + ._figl._default > a > img, |
| 364 | + ._figr._default > a > img { |
| 365 | + width: auto; |
| 366 | + max-width: 100%; |
| 367 | + } |
| 368 | + ._runin { |
| 369 | + margin-bottom: 1em; |
| 370 | + } |
| 371 | + ._runin > p, |
| 372 | + ._runin > h2 { |
| 373 | + display: inline; |
| 374 | + } |
| 375 | + ._correction { |
| 376 | + max-width: 33em; |
| 377 | + margin: 1em auto; |
| 378 | + border-bottom: 1px solid; |
| 379 | + padding-bottom: 1em; |
| 380 | + } |
| 381 | + #_wry_demo_fig:not(#specificity) { |
| 382 | + width: 100%; |
| 383 | + } |
| 384 | + #_wry_demo { |
| 385 | + margin: 0 auto; |
| 386 | + display: block; |
| 387 | + height: min(calc(100vh - 9em), 400px); |
| 388 | + width: 100%; |
| 389 | + } |
| 390 | +</style> |
0 commit comments