- Rust 93.4%
- Nix 4.2%
- Shell 2.4%
| xcceleroute | ||
| xcceleroute-common | ||
| xcceleroute-ebpf | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| devrun.sh | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| rustfmt.toml | ||
xcceleroute
This project is WIP.
Linux routing accelerator based on XDP. Xcceleroute can be used to forward (route) traffic between interfaces by-passing most of the Linux kernel IP stack.
License
Xcceleroute is distributed under the terms of the GNU General Public License, Version 2 or later. of either the [MIT license] or the [Apache License] (version 2.0), at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Development
Prerequisites
- stable rust toolchains:
rustup toolchain install stable - nightly rust toolchains:
rustup toolchain install nightly --component rust-src - (if cross-compiling) rustup target:
rustup target add ${ARCH}-unknown-linux-musl - (if cross-compiling) LLVM: (e.g.)
brew install llvm(on macOS) - (if cross-compiling) C toolchain: (e.g.)
brew install filosottile/musl-cross/musl-cross(on macOS) - bpf-linker:
cargo install bpf-linker(--no-default-featureson macOS)
Build & Run
Use cargo build, cargo check, etc. as normal. Run your program with:
cargo run --release
Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.