The Servo Parallel Browser Engine Project
Servo is a prototype web browser engine written in the
Rust language. It is currently developed on
64-bit macOS, 64-bit Linux, 64-bit Windows, 64-bit OpenHarmony, and Android.
Servo welcomes contribution from everyone. Check out:
Coordination of Servo development happens:
For more detailed build instructions, see the Servo Book under Getting the Code and Building Servo.
- Download and install Xcode and brew.
- Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
- Install rustup: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Restart your shell to make sure cargo is available
- Install the other dependencies: ./mach bootstrap
- Build servoshell: ./mach build
- Install curl:
- Arch: sudo pacman -S --needed curl
- Debian, Ubuntu: sudo apt install curl
- Fedora: sudo dnf install curl
- Gentoo: sudo emerge net-misc/curl
- Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
- Install rustup: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Restart your shell to make sure cargo is available
- Install the other dependencies: ./mach bootstrap
- Build servoshell: ./mach build
- Download uv, and rustup
- Be sure to select Quick install via the Visual Studio Community installer
- Ensure that winget is available. It should be preinstalled on Windows 10 1809+ and Windows 11, otherwise can be manually installed.
- In the Visual Studio Installer, ensure the following components are installed:
- Windows 10/11 SDK (anything >= 10.0.19041.0) (Microsoft.VisualStudio.Component.Windows{10, 11}SDK.{>=19041})
- MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) (Microsoft.VisualStudio.Component.VC.Tools.x86.x64)
- C++ ATL for latest v143 build tools (x86 & x64) (Microsoft.VisualStudio.Component.VC.ATL)
- Restart your shell to make sure cargo is available
- Install the other dependencies: .\mach bootstrap
- Build servoshell: .\mach build
- Ensure that the following environment variables are set:
- ANDROID_SDK_ROOT
- ANDROID_NDK_ROOT: $ANDROID_SDK_ROOT/ndk/28.2.13676358/
ANDROID_SDK_ROOT can be any directory (such as ~/android-sdk).
All of the Android build dependencies will be installed there.
- Install the latest version of the Android command-line
tools to
$ANDROID_SDK_ROOT/cmdline-tools/latest.
- Run the following command to install the necessary components:
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"
- Follow the instructions above for the platform you are building on
- Follow the instructions above for the platform you are building on to prepare the environment.
- Depending on the target distribution (e.g. HarmonyOS NEXT vs pure OpenHarmony) the build configuration will differ slightly.
- Ensure that the following environment variables are set
- DEVECO_SDK_HOME (Required when targeting HarmonyOS NEXT)
- OHOS_BASE_SDK_HOME (Required when targeting OpenHarmony)
- OHOS_SDK_NATIVE (e.g. ${DEVECO_SDK_HOME}/default/openharmony/native or ${OHOS_BASE_SDK_HOME}/${API_VERSION}/native)
- SERVO_OHOS_SIGNING_CONFIG: Path to json file containing a valid signing configuration for the demo app.
- Review the detailed instructions at [Building for OpenHarmony].
- The target distribution can be modified by passing --flavor=<default|harmonyos> to mach <build|package|install>.