Commit: ca898ea99ce5f2c8e7403e0750ff64fc59a6b634
Repository: https://github.com/servo/servo.git
Branch: main
- Path:
servo_origin/ports/servoshell/target/release/servoshell.exe(after build) - Source:
servo_origin/ports/servoshell/main.rs
- Function:
desktop::cli::main() - Location:
servo_origin/ports/servoshell/desktop/cli.rs
cd servo_origin
./mach buildThe servoshell accepts various command-line arguments. Basic usage:
./ports/servoshell/target/release/servoshell.exe --helplib.rs- Main library entry, defines platform modules and crypto initdesktop/cli.rs- CLI argument parsing and main event loopdesktop/app.rs- Application state and window managementdesktop/event_loop.rs- Event loop implementationprefs.rs- Command-line argument parsing for preferences
- Windows:
ports/servoshell/desktop/app.rs(egui-based) - Desktop: Standard X11/Wayland/MacOS window management
- Headless mode: Available via
--headlessflag - Logging:
tracingfilter via--tracing-filterargument - Window management: Egui-based on Windows
- Dependencies: Requires full Servo engine build (not just shell)
After ./mach build:
- Binary:
ports/servoshell/target/release/servoshell.exe - Target directory:
ports/servoshell/target/release/
- Use servoshell as a subprocess from
servo_src/tools/research_driver - Capture stdout/stderr for logging
- Verify basic page load capability
- Use
--headlessfor CI testing
- Rust toolchain (via rustup)
- Python + uv (for mach)
- Visual Studio 2022 with C++ tools
- Windows 10/11 SDK (>= 10.0.19041.0)
- GStreamer (for media features)
- LLVM
- Same as build-time (runtime uses installed toolchain)