Development of Clipper is coordinated through GitHub.
To get started, clone the repository including submodules:
git clone --recursive https://github.com/ucbrise/clipper.git
If you’ve already cloned the repository at this point without the submodules,
you can include them by running
git submodule update --init --recursive in
the Clipper repo.
First generate the CMake files with
./configure. This generates an out-of-source build directory called
Go into this directory and then run
make to actually
compile the code. You should only need to re-run the configuration script if you change one of the
To build for release, run
./configure --release which generates the
release build directory instead of debug.
If you want to clean everything up, you can run
./configure --cleanup (if you get tired of being prompted, you can run
./configure --cleanup-quiet to force cleanup without prompting).
Redis must be installed and on your path to run both the query REST frontend and the unit-tests.
You can test this with
cd $CLIPPER_ROOT_DIR ./configure cd debug make # write some code and compile it make # build and run unit tests with googletest ../bin/run_unittests.sh
Clipper has been tested on OSX 10.12 and on Debian stretch/sid and Ubuntu 12.04 and 16.04. It does not support Windows.
To file a bug or request a feature, please file a GitHub issue. Pull requests are welcome.
Before filing a pull request, make sure that C++ and Java code conforms to the project’s Clang-Format style file and Python code conforms to the PEP 8 style. To automatically format your code before submitting a pull request, you can use the provided formatting script:
We packaged all dev dependency in Docker Image as well. You can use the following to avoid set up local environment and use Docker instead:
docker run -it --network=host -v <LOCAL_PATH_TO_CLIPPER>:/clipper -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp clipper/dev:develop
docker run -it --network=host -v /home/ubuntu/clipper:/clipper -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp clipper/py35-dev:develop