Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine
MPL-2.0 License
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 The Servo Book to get started, or go to servo.org for news and guides.
For more detailed build instructions, see the Servo book under Setting up your environment, Building Servo, Building for Android and Building for OpenHarmony.
python
, Xcode, and brew
rustup
: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo
is available./mach bootstrap
./mach build
curl
and python
:
sudo pacman -S --needed curl python python-pip
sudo apt install curl python3-pip python3-venv
sudo dnf install curl python3 python3-pip python3-devel
sudo emerge net-misc/curl dev-python/pip
rustup
: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo
is available./mach bootstrap
./mach build
python
, 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.00 \
"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>.