Setup
- 
Regardless of whether you'd like to run or build an algorithm in Rust or Python, you'll need to install Rust (nightly version) and Cargo (Rust's package manager). Any method of installing Rust should work, but we recommend the following: curl https://sh.rustup.rs -sSf | sh -s -- -y -v --default-toolchain nightly
- 
Next, you'll need to pick a datapath and install our datapath integration. We currently support the following three datapaths. If you're not sure, you probably want the Linux Kernel. This integration has received the most use and is the easiest to set up, but we have successfully run all of the same experiments and tests on the other datapaths as well. If you would like to use a datapath that is not listed below, you'll need to add support yourself (see New Datapaths). Linux (kernel module)Clone our kernel module: git clone https://github.com/ccp-project/ccp-kernel.gitFetch submodules: git submodule update --init --recursiveBuild: cd ccp-kernel && makeInstall: (provide ipc=0to use netlink sockets):sudo ./ccp_kernel_load ipc=0mTCP / DPDK (fork)Clone our fork: git clone https://github.com/ccp-project/ccp-mtcp.gitFollow the instructions in REAMDE.mdfor building mTCP as normal (and for building DPDK first, if you haven't done so already).More detailed instructions coming soon. Google QUIC (patch)Our patch currently lives at https://github.com/ccp-project/ccp-quic Follow the instructions in README.mdfor applying the patch.More specific instructions for getting QUIC setup from scratch coming soon. 
 
- 
Clone an existing algorithm or write your own by following the rest of the guide. We have implemented the following algorithms: 
- 
Build the algorithm RustJust run cargo buildin the root of the repository. If you run into any build errors, see Common Problems.PythonAssuming you have python and pip installed, just run pip install --user portus. If you run into any build errors, see Common Problems.
- 
Follow instructions in Running Algorithms to use CCP.