[workspace] members = [ "aya", "aya-build", "aya-log", "aya-log-common", "aya-log-parser", "aya-obj", "aya-tool", "ebpf-panic", "test-distro", "test/integration-common", "test/integration-test", "xtask", # macros "aya-ebpf-macros", "aya-log-ebpf-macros", # ebpf crates "ebpf/aya-ebpf", "ebpf/aya-ebpf-bindings", "ebpf/aya-log-ebpf", "test/integration-ebpf", ] resolver = "2" default-members = [ "aya", "aya-build", "aya-log", "aya-log-common", "aya-log-parser", "aya-obj", "aya-tool", "ebpf-panic", "test-distro", "test/integration-common", # test/integration-test is omitted; including it in this list causes `cargo test` to run its # tests, and that doesn't work unless they've been built with `cargo xtask`. "xtask", "aya-ebpf-macros", "aya-log-ebpf-macros", # ebpf crates are omitted; they must be built with: # --target bpfe{b,l}-unknown-none # CARGO_CFG_BPF_TARGET_ARCH={x86_64,aarch64,arm,riscv64,powerpc64,s390x,mips} ] [workspace.package] authors = ["Aya Contributors"] edition = "2024" homepage = "https://aya-rs.dev" license = "MIT OR Apache-2.0" repository = "https://github.com/aya-rs/aya" rust-version = "1.85.0" # NOTE(vadorovsky): Neither cargo-udeps nor cargo-machete are able to detect # unused crates defined in this section. It would be nice to teach either of # them to do that, but in the meantime we need to be careful. [workspace.dependencies] anyhow = { version = "1", default-features = false } assert_matches = { version = "1.5.0", default-features = false } base64 = { version = "0.22.1", default-features = false } bindgen = { version = "0.72", default-features = false } bitflags = { version = "2.2.1", default-features = false } bytes = { version = "1", default-features = false } cargo_metadata = { version = "0.22.0", default-features = false } clap = { version = "4", default-features = false } const-assert = { version = "1.0.1", default-features = false } dialoguer = { version = "0.12", default-features = false } diff = { version = "0.1.13", default-features = false } env_logger = { version = "0.11", default-features = false } epoll = { version = "4.3.3", default-features = false } futures = { version = "0.3.28", default-features = false } glob = { version = "0.3.0", default-features = false } hashbrown = { version = "0.16.0", default-features = false } indoc = { version = "2.0", default-features = false } libc = { version = "0.2.105", default-features = false } log = { version = "0.4", default-features = false } netns-rs = { version = "0.1", default-features = false } network-types = { version = "0.1.0", default-features = false } nix = { version = "0.30.1", default-features = false } num_enum = { version = "0.7", default-features = false } object = { version = "0.37", default-features = false } once_cell = { version = "1.20.1", default-features = false } proc-macro2 = { version = "1", default-features = false } proc-macro2-diagnostics = { version = "0.10.1", default-features = false } procfs = { version = "0.18.0", default-features = false } public-api = { version = "0.50.0", default-features = false } quote = { version = "1", default-features = false } rand = { version = "0.9", default-features = false } rbpf = { version = "0.3.0", default-features = false } rustdoc-json = { version = "0.9.0", default-features = false } rustup-toolchain = { version = "0.1.5", default-features = false } rustversion = { version = "1.0.0", default-features = false } scopeguard = { version = "1.2.0", default-features = false } syn = { version = "2", default-features = false } tempfile = { version = "3", default-features = false } test-case = { version = "3.1.0", default-features = false } test-log = { version = "0.2.13", default-features = false } testing_logger = { version = "0.1.1", default-features = false } thiserror = { version = "2.0.3", default-features = false } tokio = { version = "1.24.0", default-features = false } walkdir = { version = "2", default-features = false } which = { version = "8.0.0", default-features = false } xdpilone = { version = "1.0.5", default-features = false } xz2 = { version = "0.1.7", default-features = false } [workspace.lints.clippy] all = "warn" as_ptr_cast_mut = "warn" #as_underscore = "warn" cast_lossless = "warn" #cast_possible_truncation = "warn" #cast_possible_wrap = "warn" cast_precision_loss = "warn" #cast_sign_loss = "warn" char_lit_as_u8 = "warn" fn_to_numeric_cast = "warn" fn_to_numeric_cast_with_truncation = "warn" mut_mut = "warn" needless_bitwise_bool = "warn" needless_lifetimes = "warn" no_mangle_with_rust_abi = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" ref_as_ptr = "warn" unnecessary_cast = "warn" unused_trait_names = "warn" use_self = "warn" [workspace.lints.rust] absolute_paths_not_starting_with_crate = "warn" deprecated_in_future = "warn" elided_lifetimes_in_paths = "warn" explicit_outlives_requirements = "warn" ffi_unwind_calls = "warn" keyword_idents = "warn" #let_underscore_drop = "warn" macro_use_extern_crate = "warn" meta_variable_misuse = "warn" missing_abi = "warn" #missing_copy_implementations = "warn" non_ascii_idents = "warn" noop_method_call = "warn" single_use_lifetimes = "warn" trivial_numeric_casts = "warn" unreachable_pub = "warn" #unsafe_op_in_unsafe_fn = "warn" unstable_features = "warn" unused_crate_dependencies = "warn" unused_extern_crates = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" unused_macro_rules = "warn" #unused_qualifications = "warn" # https://github.com/rust-lang/rust/commit/9ccc7b7 added size_of to the prelude, but we need to continue to qualify it so that we build on older compilers. #unused_results = "warn"