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.
 
 
Dave Tucker dc44c8cd99 chore: Add LICENSE
This adds a LICENSE to the generated code, but also to the code included
in this repository. To make things simple, userspace code is Apache/MIT
licensed - like Aya. eBPF code is MIT/GPL which is GPL compatible to
allow use of all the eBPF helper functions, but is also permissively
licensed via the MIT license.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 week ago
.github ci: `brew update` to install LLVM 20 2 weeks ago
{{project-name}} chore: Add LICENSE 1 week ago
{{project-name}}-common chore: Add LICENSE 1 week ago
{{project-name}}-ebpf chore: Add LICENSE 1 week ago
.gitignore chore: remove Cargo.lock from .gitignore (#113) 9 months ago
Cargo.toml chore: Add LICENSE 1 week ago
LICENSE-APACHE chore: Add LICENSE 1 week ago
LICENSE-GPL2 chore: Add LICENSE 1 week ago
LICENSE-MIT chore: Add LICENSE 1 week ago
README.md chore: Add LICENSE 1 week ago
cargo-generate.toml docs: update LSM hook prompt to reference lsm_hook_defs.h 2 months ago
pre-script.rhai include and use clap only if needed 2 years ago
rustfmt.toml Add rustfmt to CI 6 months ago
test.sh Enable unwinding in userspace 5 months ago

README.md

{{project-name}}

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 --config 'target."cfg(all())".runner="sudo -E"'

Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.

Cross-compiling on macOS

Cross compilation should work on both Intel and Apple Silicon Macs.

CC=${ARCH}-linux-musl-gcc cargo build --package {{project-name}} --release \
  --target=${ARCH}-unknown-linux-musl \
  --config=target.${ARCH}-unknown-linux-musl.linker=\"${ARCH}-linux-musl-gcc\"

The cross-compiled program target/${ARCH}-unknown-linux-musl/release/{{project-name}} can be copied to a Linux server or VM and run there.

License

With the exception of eBPF code, {{project-name}} is distributed under the terms 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.

eBPF

All eBPF code is distributed under either the terms of the GNU General Public License, Version 2 or the MIT license, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the GPL-2 license, shall be dual licensed as above, without any additional terms or conditions.