Servo: A New Web Engine Written in Rust
Explore Servo, the innovative web engine built with Rust, from its foundational history to its ambitious future vision. Discover its unique advantages, recent advancements, and diverse contribution opportunities.
Last weekend, Servo was presented at GOSIM Hangzhou 2025, marking an important occasion for the project. The presentation, titled "Servo: A New Web Engine Written in Rust," highlighted its evolution since Igalia assumed maintenance in 2023. Key questions addressed included: What is Servo? Is it truly a 'new' web engine? What makes Servo special? What is the project's vision? How can you contribute?

A speaker during their Servo talk at GOSIM Hangzhou 2025
Additionally, colleagues Martin Robinson and Oriol Brufau also presented at GOSIM, discussing Servo's layout engine in their talk, "A Dive Into the Servo Layout System."
This blog post serves as a detailed overview of the presentation, covering all the slides. For those interested, the slides and a recording of the talk are available online.
Introduction to Servo

The presentation began by asking the audience about their familiarity with Servo (few knew it) versus Chrome, Safari, and Firefox (most were familiar).
About Igalia and Servo

A brief introduction followed, detailing Igalia's role as an open-source consultancy with a flat structure and significant contributions to major web rendering engines. The speaker highlighted their position as Servo's Technical Steering Committee (TSC) chair since 2023, assisting with coordination rather than direct development.
What is Servo?

This section aimed to clarify Servo's identity, especially for newcomers, distinguishing whether it is a browser, a web engine, or both.
Web Browser vs. Web Rendering Engine

The distinction between a web browser and a web rendering engine was elaborated. A browser is the user application with elements like a URL bar, tabs, and bookmarks. In contrast, a rendering engine is the component responsible for converting HTML and other resources (CSS, JavaScript) into the visual representation displayed on screen. Examples include Chrome with Blink, Safari with WebKit, and Firefox with Gecko.
For Servo, both of the following statements are true:
- Servo is a web rendering engine written in Rust.
- Servo can be used to develop a browser.
Servo in Action

A video demonstration showcased Servo running servoshell, its minimal browser. The demo included browsing servo.org, navigating Wikipedia (searching for Python, then visiting the Python programming language page), exploring Python documentation, and finally searching for the GOSIM conference venue on Baidu Maps.
Is Servo a 'New' Web Engine?

This section reviewed Servo's history and evolution in recent years.
Servo's History

Mozilla initiated the Servo project in 2012, utilizing it as a testbed for the Rust language. While not entirely 'new,' Servo is significantly younger than other web engines. In 2020, following layoffs, Mozilla transferred the project to the Linux Foundation. Concurrently, the Servo team had begun developing a new layout engine to address previous design limitations that hindered CSS feature implementation (e.g., floats). This new layout engine, similar in principle to Blink's LayoutNG and WebKit's Layout Formatting Context, positions Servo as quite 'new' from a layout perspective.
In 2023, Igalia assumed maintenance of Servo, aiming to revitalize the project after a period of minimal activity. The project subsequently joined Linux Foundation Europe to broaden industry interest. A key highlight is the complete renewal of the project community, leading to increasing activity.
Commit Statistics

GitHub commit statistics illustrate the project's activity. A noticeable dip occurred between 2021 and 2022, followed by a recent resurgence in activity, aligning with the project's renewed momentum.
Pull Request Statistics (Excluding Bots)

A closer look at merged Pull Requests (PRs) since 2018, excluding bot-generated PRs (e.g., Dependabot, servo-wpt-sync), reveals significant growth in recent years. Servo has surpassed 2018 numbers, almost doubling merged PRs, average monthly contributors, and monthly contributors with over 10 merged PRs.
| 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|---|---|---|
| PRs | 1,188 | 986 | 669 | 118 | 65 | 776 | 1,771 | 1,983 |
| Contributors | 27.33 | 27.17 | 14.75 | 4.92 | 2.83 | 11.33 | 26.33 | 41.33 |
| Contributors ≥ 10 | 2.58 | 1.67 | 1.17 | 0.08 | 0.00 | 1.58 | 4.67 | 6.33 |
Legend: PRs: total merged Pull Requests. Contributors: average number of contributors per month. Contributors ≥ 10: average number of contributors who merged more than 10 PRs per month.
Web Platform Test Pass-Rates

Servo's Web Platform Test (WPT) pass-rates were examined. WPT is a shared test suite used by all web engines, comprising nearly 2 million subtests. The chart shows significant improvement since April 2023, with Servo now passing over 1.7 million subtests, representing 92.7% of the tests run (excluding some skipped tests). More details can be found at servo.org/wpt.
New Layout Engine

A visual comparison demonstrated the evolution of Servo's layout engine by showing how google.com rendered in 2023 (missing logos, text, and icons) versus its much-improved rendering in 2025, closely resembling other modern browsers. This highlights the 'newness' of Servo from a layout perspective.
What Makes Servo Special?

This section emphasized Servo's unique and distinctive features.
Rust Programming Language

Servo's foundation in Rust provides two critical advantages:
- Memory Safety: Reduces vulnerabilities stemming from incorrect memory usage. An external audit on a portion of Servo found no significant issues.
- Concurrency: Simplifies the implementation of parallelism, leading to faster and more energy-efficient applications.
Servo is the only web engine written in Rust and the only one extensively utilizing parallelism, even in its layout engine (unlike other engines that may share parts like Stylo and WebRender with Firefox). This extensive use of parallelism sets Servo apart from alternatives.
Independent Development

Servo's independence is another key characteristic. Hosted by Linux Foundation Europe and openly managed by its TSC, Servo contrasts with other web engines controlled by large corporations and predominantly funded through search deals. This independent model opens new opportunities for the open web's future.
Other Key Features

Other notable features of Servo include:
- Embeddable: Servo can be integrated into other applications via its evolving WebView API. Examples are showcased on the made with Servo page at servo.org.
- Modular: Composed of numerous crates (libraries) widely used in the Rust ecosystem, benefiting Servo itself and facilitating code sharing with projects like Firefox.
- Cross-platform: Supports five platforms: Linux, macOS, and Windows for desktop, alongside Android and OpenHarmony for mobile.
Project Vision

This section outlined Servo's long-term vision and recent community activities.
Current Developments

Servo is transitioning from an R&D project to a production-ready web rendering engine, aiming to be a viable alternative for various products. Recent developments, driven by the expanding community, include:
- Incremental Layout: A foundational feature that improves performance by re-laying out only modified elements, with ongoing optimization efforts.
- WebDriver Support: Implementation of the WebDriver specification enables automated testing and task automation for Servo, enhancing testing coverage.
- SVG Support: Basic SVG support is provided via the resvg third-party library, improving website rendering despite current limitations (e.g., animations).
- DevTools Improvements: Ongoing work to restore and enhance Firefox DevTools integration, including networking and debugger panels, though more development is needed.
Organizational Updates

Recent changes to Servo's governance formalize its status as an independent, consensus-driven project. Limits have been set on the maximum number of TSC members and votes from a single organization. The TSC has also defined collaboration levels: contributors, maintainers, TSC members, and administrators. Since its establishment less than a year ago, 12 contributors, 22 maintainers, 17 TSC members, and 5 administrators have been added. Further details are available in the Servo project governance repository on GitHub.
Future Plans

The Servo community's plans for the coming months include:
- Editability and Interactivity Enhancements: Improving text selection and form filling.
- CSS Grid Layout Support: Implementing this critical CSS feature via the taffy library.
- Improving Embedding API: Enhancing the API to meet application needs and simplify Servo integration.
- Initial Accessibility Support: Developing accessibility support with a focus on minimizing performance costs, potentially exploring innovative parallel designs.
- More Performance Improvements: Continuing optimization efforts beyond incremental layout.
Servo's roadmap is actively discussed by the community on the wiki, with potential updates forthcoming.
Long-Term Vision

Servo's long-term vision includes:
- Leading the embeddable web rendering engines ecosystem: Leveraging unique features to become a preferred solution for devices requiring web content rendering.
- Powering innovative applications and frameworks: Supporting new approaches and benefiting from Servo's distinct characteristics.
- Offering unparalleled performance, stability, and modern web standards compliance: Striving to be a high-performance, stable project fully compliant with web standards.
A moonshot goal is a general-purpose web browser based on Servo, though this would require substantial, multi-year investment.
How to Contribute to Servo

The presentation concluded by detailing various ways individuals and organizations can support the project.
Join the Project

Developers and organizations interested in Servo can join as contributors by visiting the GitHub organization, engaging in the Zulip chat, or emailing the project. Servo actively welcomes new contributors and aims to cultivate a healthy ecosystem.
Test Servo and Report Issues

Regular users can contribute by downloading nightly Servo binaries, testing the engine, and reporting issues or participating in GitHub discussions. User feedback is highly valued.
Follow Servo and Spread the Word

Supporting the project also involves spreading awareness. Servo publishes weekly social media updates, monthly detailed blog posts, and other content like talks. Follow Servo at servo.org, Mastodon, Bluesky, and LinkedIn.
Sponsor the Project

Individuals and organizations can donate to Servo through GitHub Sponsors or Open Collective. For specific needs, contact the project or Igalia. Funds are used for:
- Hosting Costs: Renting servers for CI/CD runners and setting up dedicated performance benchmarking machines.
- Outreachy Internships: Sponsoring Outreachy internships for open-source participation, with recent interns contributing to DevTools, CI improvements, and servoshell dialogs.
- Improve Contribution Experience: Funding a top Servo expert, Josh Matthews (@jdm), to reduce friction and barriers for new contributors and enhance the overall contribution process.
The project expresses gratitude to all sponsors.
Conclusion

The talk concluded with a thank you and a QR code linking to Servo's homepage.
During the Q&A session, an audience member inquired if Mozilla would consider replacing Gecko with Servo once it matures. While the original plan at Mozilla's inception of Servo might have implied this, the current outlook is unclear given their cessation of development on the project. The speaker expressed hope for such an integration in the future. Additionally, several attendees offered congratulations and further comments after the presentation.