3
0
Fork
You've already forked xcceleroute
0
Linux routing accelerator based on XDP
Rust 94.3%
Nix 3.6%
Shell 2.1%
2026年01月09日 23:08:32 +01:00
xcceleroute forwarder: refactor sources, seems not to crash any more 2026年01月09日 23:08:32 +01:00
xcceleroute-common Initial commit 2025年12月09日 20:45:51 +01:00
xcceleroute-ebpf formatting 2026年01月01日 22:28:59 +01:00
.gitignore Initial commit 2025年12月09日 20:45:51 +01:00
Cargo.lock rtnlmon: prepare building route trie 2025年12月30日 00:24:17 +01:00
Cargo.toml Initial commit 2025年12月09日 20:45:51 +01:00
devrun.sh forwarder: initial implementation 2026年01月09日 23:08:32 +01:00
flake.lock nix: init; minor cleanups 2026年01月01日 21:39:11 +01:00
flake.nix nix: fix rustup mock 2026年01月06日 16:09:02 +01:00
LICENSE Initial commit 2025年12月09日 20:45:51 +01:00
README.md Initial commit 2025年12月09日 20:45:51 +01:00
rustfmt.toml Initial commit 2025年12月09日 20:45:51 +01:00

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

  1. stable rust toolchains: rustup toolchain install stable
  2. nightly rust toolchains: rustup toolchain install nightly --component rust-src
  3. (if cross-compiling) rustup target: rustup target add ${ARCH}-unknown-linux-musl
  4. (if cross-compiling) LLVM: (e.g.) brew install llvm (on macOS)
  5. (if cross-compiling) C toolchain: (e.g.) brew install filosottile/musl-cross/musl-cross (on macOS)
  6. bpf-linker: cargo install bpf-linker (--no-default-features on 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.