Exploring the new `servo` crate
Research: Exploring the new servo crate (https://github.com/simonw/research/tree/main/servo-crate-exploration#readme)
In Servo is now available on crates.io (https://servo.org/blog/2026/04/13/servo-0.1.0-release/) the Servo team announced the initial release of the servo (https://crates.io/crates/servo) crate, which packages their browser engine as an embeddable library.
I set Claude Code for web the task (https://github.com/simonw/research/pull/108) of figuring out what it can do, building a CLI tool for taking screenshots using it and working out if it could be compiled to WebAssembly.
The servo-shot Rust tool it built works pretty well:
git clone https://github.com/simonw/research cd research/servo-crate-exploration/servo-shot cargo build ./target/debug/servo-shot https://news.ycombinator.com/
Here’s the result:
Compiling Servo itself to WebAssembly is not feasible due to its heavy use of threads and dependencies like SpiderMonkey, but Claude did build me this playground page (https://simonw.github.io/research/servo-crate-exploration/html5ever-wasm-demo/www/) for trying out a WebAssembly build of the html5ever and markup5ever_rcdom crates, providing a tool for turning fragments of HTML into a parse tree.
Tags: research (https://simonwillison.net/tags/research), browsers (https://simonwillison.net/tags/browsers), rust (https://simonwillison.net/tags/rust), webassembly (https://simonwillison.net/tags/webassembly), claude-code (https://simonwillison.net/tags/claude-code), servo (https://simonwillison.net/tags/servo)
Write a comment