Servo is a web browser engine written in Rust, built as a prototype rather than a shipping consumer browser. It targets developers who want to embed web rendering into applications, experiment with browser engine internals, or research parallel rendering architectures. It runs on 64-bit macOS, Linux, Windows, OpenHarmony, and Android.
Unlike Chromium or Firefox, Servo isn't meant to replace your daily browser. It's a component-level engine that exposes web rendering as something you can embed, study, or extend, with a Rust-first codebase and an active contributor community.
mach build tool../mach build) that developers can use to run and test the engine directly.Servo fits projects that need to embed a web rendering engine inside a native application, such as a custom UI toolkit, a kiosk app, or an experimental device interface where you don't want to pull in a full Chromium Embedded Framework dependency. It's also a good fit for browser engine researchers studying parallel layout and rendering techniques in Rust, or contributors who want to work on a modern engine codebase without decades of legacy C++.
It's not a good fit if you need a production-ready, fully spec-compliant browser for everyday web browsing today. Web compatibility is incomplete compared to Chromium or Firefox, and some sites or CSS/JS features may not render correctly. If you need a mature embedding solution right now with broad site compatibility, something like CEF or WebView2 is a safer choice. Servo works best for teams willing to track an evolving project and contribute fixes when they hit gaps.
Building Servo starts with installing uv and rustup, then running the project's own mach bootstrap and build commands. Steps differ slightly by platform.
macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# restart your shell so cargo is available
./mach bootstrap
./mach build
You'll also need Xcode and Homebrew installed beforehand.
Linux
# install curl first, e.g. on Debian/Ubuntu:
sudo apt install curl
curl -LsSf https://astral.sh/uv/install.sh | sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
./mach bootstrap
./mach build
Windows
# install uv and rustup via their installers
# select 'Quick install via the Visual Studio Community installer'
.\mach bootstrap
.\mach build
You also need winget available and specific Visual Studio components: the Windows 10/11 SDK, MSVC v143 build tools, and C++ ATL for v143.
Android
Set ANDROID_SDK_ROOT and ANDROID_NDK_ROOT, install the Android command-line tools, then run:
sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install \
"build-tools;36.0.0" \
"emulator" \
"ndk;28.2.13676358" \
"platform-tools" \
"platforms;android-37" \
"system-images;android-37;google_apis;x86_64"
Then follow the steps for your host platform (macOS, Linux, or Windows).
OpenHarmony
Prepare the environment as for your host platform, then set DEVECO_SDK_HOME or OHOS_BASE_SDK_HOME, OHOS_SDK_NATIVE, and SERVO_OHOS_SIGNING_CONFIG. Pass --flavor=<default|harmonyos> to mach build, mach package, or mach install depending on the target distribution.
For full detail, consult the Servo Book's "Getting the Code" and "Building Servo" pages.