Servo
@servo
Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.
Servo Report for Week 30 - Implemented text-decoration-thickness improving CSS text decoration fidelity - Implemented Animation.effect, AnimationEffect.getTiming(), getComputedTiming(), and updateTiming() making significant progress on the Web Animations API
June in Servo… 🫴👷♀️ SharedWorker now stable 🎨🛠️ more powerful ‘attr()’ and ‘calc()’ 📏📐 new @media query features 🏜️🥾 real world compat improvements 🙏📰 `@servo-highfive monthly update` servo.org/blog/2026/07...
Servo Report for Week 29 - Implemented font-language-override which supports correct language-specific glyph shaping for multilingual text - Implemented font-variant-alternates and @font-feature-values, unlocking stylistic alternates, swashes, and ornaments via OpenType
Servo now passes 100% of WPT tests for the WebCrypto API, all 73,292 subtests, covering 25 cryptographic algorithms 🎉 A complete, spec-correct cryptography implementation in an independent Rust-powered browser engine is a big milestone!
Servo Report for Week 28 - Implement deriveBits and generateKey operations of X448 - Add support for font in <text> in svg - Add support for box-decoration-break - Add ability to incrementally update accessibility tree based on DOM changes
Servo Report for Week 27 - Continued adding Ed448 support to WebCrypto API implementation - Aligned <label> element with specification - Fixed <select> element issue where the value specified via Javascript wasn't applied - Upgrade Stylo version implementing the height & orientation media features.
Servo Report for Week 26 Highlights from the week: - Add aspect-ratio feature to stylo - Continued work switching to Compose UI in Android app module - Enable device-width/device-height media queries - Add support for devtools inspector to copy as inner/outer html
May in Servo… 🐢🎬 better compat with mp4 files ☢️🏥 Sanitizer now experimental 🎨📝 more on execCommand() 🙈📜 “Ignore source” in DevTools ⏩ faster DOM and layout servo.org/blog/2026/06...
Servo Report for Week 25 Highlights from last week: - Add support for CSS gradient color interpolation method - Implemented pointer and hover media features - Enabled loading of servo: URLs from command line and location bar in servoshell - Enabled SharedWorker support
Servo Report for Week 24 Highlights from last week: - Added a horizontal scroll area for tabs in servoshell - Began implementation of Web Animation API - Continued migrating the Android app from Java to Kotlin. - Implement basic form of copyExternalImageToTexture in WebGPU API
Thank you everyone who joined the Servo sessions at @webengineshackfest.org this year. See you next year!
Servo Report for Week 23 Highlights from last week: - Added support in servoshell for dragging files on the window to open them - Implemented the pointer capture API - Fix selection of options in multiple select - Implemented loop count for animated image
Servo Report for Week 22 2026 - Implement font-variant-position & font-feature-settings - Make Blob.stream() supports readable byte streams - Implement Window.screenLeft and Window.screenTop - Support event handler content attributes on SVG elements - Continued work on DevTools & accessibility
April in Servo… 📱🤖 revamped Android UI ☢️🗃️ IndexedDB now experimental 🌏✍️ better CJK text support ⏩ faster DOM tree mutations 🔬🪆 Scopes panel in DevTools servo.org/blog/2026/05...
Highlights from last week: - Implement setHTML() - Support font-variant-east-asian - Add ontransitionstart event handler - Progress on IndexedDB and SharedWorker - More work on accessibility and performance
Highlights from last week: - Support font-variant-ligatures and font-variant-numeric - Implement Document.parseHTML() - Layout performance improvements - More work on accessibility and DevTools
RustWeek 2026 is happening in Utrecht, Netherlands, this week. Several Servo maintainers and TSC members are attending the event. Today is Day 2 of RustWeek, and Josh Bowman-Matthews is speaking about “Tracking Down Undefined Behaviour in Servo.” Make sure to catch the talk if you are there.
Highlights from last week: - Add support for focus navigation scopes - Improve API for DiagnosticsLogging configuration - Reuse shaping results between box tree layouts - More progress on accessibilty and DevTools
Highlights from last week: - Implement Style Editor tab in DevTools - Enable sequential focus navigation - Use client storage in IndexedDB - More contenteditable commands: backColor, foreColor, subscript, superscript - Continue progress on Accessibility and Sanitizer API
March in Servo… ➡️⌨️ tab and accesskey navigation 🔬🐞 see live values in the debugger 📝✅ better carets and form fields 📜📦 JS modules in web workers 😈🔱 Servo now runs on FreeBSD! servo.org/blog/2026/04...
Highlights from last week: - Improve SVG rendering - Initial implementation of the "focus update steps" - Implement StorageManager API - Support underline, strikethrough, italic, bold and fontname commands for contenteditable - More work on a11y, DevTools, Sanitizer API
Highlights from last week: - IndexedDB is now an experimental feature - Performance: Reuse abspos fragments when they didn't change - Add initial implementation of underline command - Implement Screen Wake Lock API - Progress on accessibility, DevTools, IntersectionObserver and Sanitizer API
Servo on Android just got a big refresh: - Material 3 design - A dedicated tablet layout - A new browsing history view github.com/servo/servo/...
Highlights from last week: - Modernize and improve the Android UI - Resolve word-spacing percentages against computed font-size - Implement drop-down select multiple - Enable multiple color arguments in color-mix() - More progress on DevTools and IndexedDB
Highlights from last week: - Implement <input type=range> widget's layout - Implement direction property for CSS Grid - Support for the CSS-wide revert-rule keyword - Port Servo to FreeBSD - Add a pretty printer for top-level json documents
Highlights from last week: - Align javascript: URL evaluation closer to the spec - Add support for background-blend-mode - Display generated content for ::marker - Work on Web Bluetooth API support - More progress on DevTools & WebDriver
Highlights from last week: - Implement the scrollend event - Allow keyboard scrolling with the spacebar - Improvements on the release process - Continue the work on DevTools, IndexedDB, Web Crypto API & WebDriver
Highlights from last week: - Enable `jump-start`, `jump-both`, `jump-end`, `jump-none` step-position - Implement node.moveBefore() - Add support for a blinking text caret - Initial support for ::first-letter - More DevTools, Web Crypto API & WebDriver progress
Highlights from last week: - Basic support for tab navigation and accesskey - Implement HTMLSelectElement.selectedOptions - Support more pointer events: pointerenter, pointerout, pointerleave, pointerover - DevTools: Support for step in/out/over - IndexedDB, Web Crypto API & WebDriver progress