Installation
The Rattan project contains a CLI tools (named rattan
) for common use cases and
a Rust library (named rattan-core
) for you to build your own tools on top of.
There are multiple ways to install the Rattan CLI tool. Choose any one of the methods below that best suit your needs.
caution
As we are still in the early stages of development without a released version, we only support building from source currently.
Pre-compiled binaries
Executable binaries are available for download on the GitHub Releases page.
Download the binary and extract the archive.
The archive contains an rattan
executable which you can run to start your distributed platform.
To make it easier to run, put the path to the binary into your PATH
or install it in a directory that is already in your PATH
.
Note that, you have to grant the binary the necessary capabilities to run.
For example, you can run the following commands on Linux:
# install the binary
sudo install -m 755 rattan /usr/local/bin/rattan
# grant the necessary capabilities
sudo setcap 'cap_dac_override,cap_dac_read_search,cap_sys_ptrace,cap_net_admin,cap_sys_admin,cap_net_raw+ep' /usr/local/bin/rattan
Besides, for certain operating systems that enable systemd-networkd
, you have to configure it to not change MAC address of veth interfaces.
You can do this by adding the following lines to /lib/systemd/network/80-rattan.link
:
[Match]
OriginalName=ns*-v*-*
Driver=veth
[Link]
MACAddressPolicy=none
And then restart the systemd-networkd
service:
sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd.service
We also contain a install script scripts/install.sh in the repository, which you can use to install the binary on Ubuntu:
./scripts/install.sh rattan
Build from source using Rust
Dependencies
We recommend developers to install the following dependencies for better testing and development experience. And you have to install some of the dependencies to build rattan with specific features:
sudo apt install ethtool, iputils-ping, iperf3, pkg-config, m4, clang, llvm, libelf-dev, libpcap-dev, gcc-multilib
Installing with Cargo
To build the rattan
executable from source, you will first need to install Rust and Cargo.
Follow the instructions on the Rust installation page.
Once you have installed Rust, the following command can be used to build and install rattan:
cargo install rattan
This will automatically download rattan from crates.io, build it, and install it in Cargo's global binary directory (~/.cargo/bin/
by default).
You can run cargo install rattan
again whenever you want to update to a new version.
That command will check if there is a newer version, and re-install rattan if a newer version is found.
To uninstall, run the command cargo uninstall rattan
.
Installing the latest git version with Cargo
The version published to crates.io will ever so slightly be behind the version hosted on GitHub. If you need the latest version you can build the git version of rattan yourself. Cargo makes this super easy!
cargo install --git https://github.com/stack-rs/rattan.git rattan
Again, make sure to add the Cargo bin directory to your PATH
.
Building from source
If you want to build the binary from source, you can clone the repository and build it using Cargo.
git clone https://github.com/stack-rs/rattan.git
cd rattan
cargo build --release
Then you can find the binary in target/release/rattan
and install or run it as you like (e.g., run ./scripts/install.sh target/release/rattan
).
Modifying and contributing
If you are interested in making modifications to Rattan itself, check out the Contributing Guide for more information.