You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20ce988ecf
The instructions in the book are now out of date for projects generated with this template. Since the instructions are much shorter these days, put them in the README. |
3 months ago | |
---|---|---|
.cargo | 3 months ago | |
.github | 3 months ago | |
xtask | 3 months ago | |
{{project-name}} | 3 months ago | |
{{project-name}}-common | 3 months ago | |
{{project-name}}-ebpf | 3 months ago | |
.gitignore | 6 months ago | |
Cargo.toml | 3 months ago | |
README.md | 3 months ago | |
cargo-generate.toml | 2 years ago | |
pre-script.rhai | 2 years ago | |
rustfmt.toml | 3 months ago | |
test.sh | 3 months ago |
README.md
{{project-name}}
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-features
on macOS)
Build & Run
Use cargo build
, cargo check
, etc. as normal. Run your program with xtask run
.
Cargo build scripts are used to automatically build the eBPF correctly and include it in the
program. When not using xtask run
, eBPF code generation is skipped for a faster developer
experience; this compromise necessitates the use of xtask
to actually build the eBPF.
Cross-compiling on macOS
Cross compilation should work on both Intel and Apple Silicon Macs.
AYA_BUILD_EBPF=true \
CC=${ARCH}-linux-musl-gcc \
RUSTFLAGS="-C linker=${ARCH}-linux-musl-gcc" \
cargo build --package {{project-name}} --release --target=${ARCH}-unknown-linux-musl
The cross-compiled program target/${ARCH}-unknown-linux-musl/release/{{project-name}}
can be
copied to a Linux server or VM and run there.