The Servo Parallel Browser Project
Servo is a prototype web browser engine written in the Rust language. It is currently developed on 64bit OS X and 64bit Linux.
Servo welcomes contribution from everyone. See
CONTRIBUTING.md for help getting started.
On OS X (homebrew):
brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb
brew install automake libtool pkg-configOn OS X (MacPorts):
sudo port install autoconf213On Debian-based Linuxes:
sudo apt-get install autoconf2.13 curl freeglut3-dev libtool \
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
msttcorefonts gperfOn Debian-based Linuxes (cross-compilation for Android):
sudo apt-get install autoconf2.13 curl libtool ia32-libsAnd it needs pre-installed Android tools. See wiki for details
Servo builds its own copy of Rust, so there is no need to provide a Rust compiler.
Servo cannot be built in-tree; you must create a directory in which to run configure and make and place the build artifacts.
git clone https://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure
make && make check
./servo ../src/test/html/about-mozilla.html###Building for Android target
git clone https://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure --target-triples=arm-linux-androideabi --android-cross-path=<Android toolchain path> --android-ndk-path=<Android NDK path> --android-sdk-path=<Android SDK path>
make-p INTERVALturns on the profiler and dumps info to the console everyINTERVALseconds-s SIZEsets the tile size for rendering; defaults to 512-zdisables all graphical output; useful for running JS / layout tests
Ctrl-Lopens a dialog to browse to a new URL (Mac only currently)Ctrl--zooms outCtrl-=zooms inBackspacegoes backwards in the historyShift-Backspacegoes forwards in the historyEscexits servo
There are lots of make targets you can use:
make clean- cleans Servo and its dependencies, but not Rustmake clean-rust- cleans Rustmake clean-servo- only cleans Servo itself (code insrc/componentsmake clean-DEP- cleans the dependencyDEP. e.g.make clean-rust-openglesmake bindings- generate the Rust WebIDL bindingsmake DEP- builds only the specified dependency. e.g.make rust-openglesmake check-DEP- build and run tests for specified dependency