Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine
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 Setting up your environment, Building Servo, Building for Android and Building for OpenHarmony.
brew
.uv
: curl -LsSf https://astral.sh/uv/install.sh | sh
rustup
: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo
is available./mach bootstrap
./mach build
curl
:
sudo pacman -S --needed curl
sudo apt install curl
sudo dnf install curl
sudo emerge net-misc/curl
uv
: curl -LsSf https://astral.sh/uv/install.sh | sh
rustup
: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo
is available./mach bootstrap
./mach build
uv
, choco
, and rustup
Microsoft.VisualStudio.Component.Windows10SDK.19041
)Microsoft.VisualStudio.Component.VC.Tools.x86.x64
)Microsoft.VisualStudio.Component.VC.ATL
)Microsoft.VisualStudio.Component.VC.ATLMFC
)cargo
is available.\mach bootstrap
.\mach build
ANDROID_SDK_ROOT
ANDROID_NDK_ROOT
: $ANDROID_SDK_ROOT/ndk/26.2.11394342/
ANDROID_SDK_ROOT
can be any directory (such as ~/android-sdk
).$ANDROID_SDK_ROOT/cmdline-tools/latest
.sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install \
"build-tools;34.0.0" \
"emulator" \
"ndk;26.2.11394342" \
"platform-tools" \
"platforms;android-33" \
"system-images;android-33;google_apis;x86_64"
HarmonyOS NEXT
vs pure OpenHarmony
) the build configuration will differ slightly.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.--flavor=<default|harmonyos>
to `mach <build|package|install>.