For those who don’t know the history, Servo was the very first Rust project to ever exist.
Back in 2012, Mozilla knew that their Gecko web engine was already getting old and unmaintainable. One of the engineers in their R&D department Mozilla Research was quietly working on a new programming language, so they adopted that to start work on their new browser engine, Servo.
Rust v1.0 was released to the public in 2015, and was much more popular than the new browser engine it was used to create. Mozilla Research eventually gave up the idea of a new browser engine, but they did merge some of the Servo features into Gecko. Mozilla Research was shut down in 2020, and the Servo project was taken over by the Linux Foundation.
Sure. I’ll believe it when I see it.
I mean, you can see it if you want, there’s MPL code and nightly builds. It’s the best shot at ending the browser monoculture and it’s progressing steadily!
Yup, the nightly builds are already getting pretty good. Obviously not ready for any serious use yet, but it’s a great project.
I should’ve been clearer: my misgiving is the claim of “embeddable”. If embeddable means having to read the code to find out how instead reading documentation, tutorials, and examples, nah, it ain’t embeddable. It’s possibly embeddable.
It’s like claiming NIXOS were user friendly, assembly being easy, or Arch Linux stable.
I tried the apk and It even runs webgl, you can already see it imo
I mean embedding into applications. There was no documentation or guide for embedding it into anything last I checked and this is just a demo browser that’s being released. If embedding it into applications is as hard as Gecko, it will have no chance against Blink and WebKit.
If you’d like to embed Servo in your own application, consider using tauri-runtime-verso, a custom Tauri runtime, or servo-gtk, a GTK4-based web browser widget.
“Tauri” you say?
Kree jaffa, chapa-ai!
So, in order to embed Servo you need:
- to use Tauri: sure, pull in a huge other project to be able to use our project 🫰
- use GTK: again, pull in a bunch of unrelated dependencies to be able to embed our project
I can’t give servo some graphical surface (OpenGL, Vulkan, Metal, DX, whatever), call a function to open a webpage and see it draw on that surface. There’s no lib with documentation on crates.io, no bindings for other languages, and non of the things I mentioned in my previous comment.
It feels like this is built just like Gecko was for Firefox: single consumer with the consumer being the “reference implementation”.

This is what I said
There was no documentation or guide for embedding it into
This is what you posted
If you’d like to embed Servo in your own application, consider using tauri-runtime-verso, a custom Tauri runtime, or servo-gtk, a GTK4-based web browser widget.
Great documentation and exceptional guide! 👏 What next, are you going to tell me that the code is the documentation? “Just read the code”?
I also provided a link, which will lead you to the documentation.
It’s being developed by igalia, which is top notch. I’ve tried it on Bazzite, the available builds require no installation. It’s coming together very well.
How easy is it to embed though? Documentation, tutorial, examples, etc. Making it as embeddable as Gecko is a losing strategy. Making it as embeddable as Blink and WebKit though, then we can talk about embeddable.




