No description
  • Rust 88.4%
  • Python 5.7%
  • WebIDL 2.9%
  • HTML 1.7%
  • JavaScript 0.5%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Glenn Skrzypczak 782a1eeafc
Some checks failed
Main / Generate Try Configuration (push) Has been cancelled
Main / Result (push) Has been cancelled
Docs upload / Upload docs to GitHub Pages (push) Has been cancelled
Book Export / upstream (push) Has been cancelled
script: properly implement the :checked pseudoclass (#47987)
This properly implements the `:checked` pseudoclass, so that input
elements are only matched when they are checkboxes or radio buttons and
also selected option elements are matched.

Testing: passes additional web platform tests
Fixes: #47986

---------

Signed-off-by: Glenn Skrzypczak <glenn.skrzypczak@gmail.com>
2026-09-14 10:51:23 +00:00
.cargo webgpu: Split GPUAdapterInfo into separate crate (#46111) 2026-07-17 06:08:24 +00:00
.config
.devcontainer Update mozjs to include SpiderMonkey to 153_0esr_RELEASE (#47489) 2026-08-29 13:36:40 +00:00
.github tidy: add ktfmt support (#47822) 2026-09-09 03:02:06 +00:00
.vscode
components script: properly implement the :checked pseudoclass (#47987) 2026-09-14 10:51:23 +00:00
docs docs: Update dead book links (#45356) 2026-06-04 01:36:03 +00:00
etc layout: Implement text-transform: full-width (#47169) 2026-08-17 07:12:10 +00:00
ffi/capi deps: Update freetype and harfbuzz (#46233) 2026-07-13 09:21:23 +00:00
ports/servoshell servoshell (MacOS): Add CJK fonts for egui (#48030) 2026-09-13 08:38:44 +00:00
python script: Add error messages for document (#47835) 2026-09-13 19:16:29 +00:00
resources release: Bump version to 0.6.0 (#47710) 2026-09-01 06:43:18 +00:00
support crown: Also check for String::new() in manual_domstring_new (#48018) 2026-09-13 01:37:45 +00:00
tests script: properly implement the :checked pseudoclass (#47987) 2026-09-14 10:51:23 +00:00
third_party/mozdebug
.gitattributes
.gitignore Add "devcontainer-lock.json" to gitignore (#47726) 2026-09-02 05:52:31 +00:00
.mailmap
.python-version
about.toml
Cargo.lock ohos: Minor improvements in fontcache code (#48007) 2026-09-14 08:52:16 +00:00
Cargo.toml script: Update mozjs to reset drain state when saving the queue (#48040) 2026-09-13 20:02:27 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
deny.toml Upgrade Stylo to 2026-09-02 (#47942) 2026-09-10 15:01:48 +00:00
LICENSE
LICENSE_WHATWG_SPECS
mach mach: Simplify bootstrap (#47326) 2026-08-18 12:08:13 +00:00
mach.bat mach: Fix ARM64 windows build using mach.bat (#45731) 2026-06-17 07:19:10 +00:00
mach.ps1
PULL_REQUEST_TEMPLATE.md
pyproject.toml mach/uv: Switch from native-tls to system-certs (#45024) 2026-07-17 09:14:42 +00:00
README.md mach: Remove support for installing dependencies via Chocolately (#42372) 2026-07-06 07:03:50 +00:00
rust-toolchain.toml chore: Update Rust to 1.97.1 (#47076) 2026-08-08 08:40:26 +00:00
rustfmt.toml
SECURITY.md
servo-tidy.toml
servobuild.example
shell.nix shell.nix: Update nixpkgs to unstable 2026-08-31 (#47724) 2026-09-02 02:18:50 +00:00
taplo.toml
uv.lock Sync WPT with upstream (06-09-2026) (#47830) 2026-09-06 01:49:33 +00:00

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:

Getting started

For more detailed build instructions, see the Servo Book under Getting the Code and Building Servo.

macOS

  • 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

Linux

  • 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

Windows

  • 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

Android

  • 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

OpenHarmony

  • 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>.