- Notifications
You must be signed in to change notification settings - Fork0
g-k/servo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Servo is a prototype web browser engine written in theRust language. It is currently developed on64bit OS X, 64bit Linux, Android, and Gonk (Firefox OS).
Servo welcomes contribution from everyone. SeeCONTRIBUTING.md
for help getting started.
On OS X (homebrew):
brew install automake pkg-config python cmakepip install virtualenv
On OS X (MacPorts):
sudo port install python27 py27-virtualenv cmake
On Debian-based Linuxes:
sudo apt-get install curl freeglut3-dev \ libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \ gperf g++ cmake python-virtualenv \ libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev
On Fedora:
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \ freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \ fontconfig-devel cabextract ttmkfdir python python-virtualenv expat-devel \ rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa-devel
On Arch Linux:
sudo pacman -S --needed base-devel git python2 python2-virtualenv mesa cmake bzip2 libxmu
Cross-compilation for Android:
Pre-installed Android tools are needed. See wiki fordetails
Using Virtualbox:
If you're running servo on a guest machine, make sure 3D Acceleration is switched off (#5643)
Servo's build system automatically downloads a snapshot Rust compiler to build itself.This is normally a specific revision of Rust upstream, but sometimes has abackported patch or two.If you'd like to know the snapshot revision of Rust which we use, seerust-snapshot-hash
.
Servo is built with Cargo, the Rust package manager. We also use Mozilla'sMach tools to orchestrate the build and other tasks.
To build Servo in development mode. This is useful for development, butthe resulting binary is very slow.
git clone https://github.com/servo/servocd servo./mach build --dev./mach run tests/html/about-mozilla.html
For benchmarking, performance testing, orreal-world use, add the--release
flag to create an optimized build:
./mach build --release./mach run --release tests/html/about-mozilla.html
git clone https://github.com/servo/servocd servoANDROID_TOOLCHAIN=/path/to/toolchain ANDROID_NDK=/path/to/ndk PATH=$PATH:/path/to/toolchain/bin ./mach build --androidcd ports/androidANDROID_SDK=/path/to/sdk make install
Rather than setting theANDROID_*
environment variables every time, you canalso create a.servobuild
file and then edit it to contain the correct pathsto the Android SDK/NDK tools:
cp servobuild.example .servobuild# edit .servobuild
Use./mach run [url]
to run Servo.
-p INTERVAL
turns on the profiler and dumps info to the console everyINTERVAL
seconds-s SIZE
sets the tile size for painting; defaults to 512-z
disables all graphical output; useful for running JS / layout tests
Ctrl-L
opens a dialog to browse to a new URL (Mac only currently)Ctrl--
zooms outCtrl-=
zooms inBackspace
goes backwards in the historyShift-Backspace
goes forwards in the historyEsc
exits servo
There are lots of mach commands you can use. You can list them with./mach --help
.
The generated documentation can be found onhttp://doc.servo.org/servo/index.html
About
The Servo Browser Engine
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Rust79.5%
- Python16.0%
- IDL2.1%
- WebIDL1.0%
- PostScript0.6%
- CSS0.4%
- Other0.4%