[package]
edition = "2024"
name = "rbpf"
version = "0.4.1"
authors = ["Quentin Monnet <qmo@qmon.net>"]
build = false
include = [
"src/**",
"examples/**",
"tests/**",
"bench/**",
"LICENSE*",
"Cargo.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Virtual machine and JIT compiler for eBPF programs"
readme = "README.md"
keywords = [
"BPF",
"eBPF",
"interpreter",
"JIT",
"filtering",
]
license = "Apache-2.0/MIT"
repository = "https://github.com/qmonnet/rbpf"
[features]
cranelift = [
"dep:cranelift-codegen",
"dep:cranelift-frontend",
"dep:cranelift-jit",
"dep:cranelift-native",
"dep:cranelift-module",
]
default = ["std"]
std = [
"dep:libc",
"combine/std",
]
[lib]
name = "rbpf"
path = "src/lib.rs"
[[example]]
name = "allowed_memory"
path = "examples/allowed_memory.rs"
[[example]]
name = "date"
path = "examples/date.rs"
required-features = ["std"]
[[example]]
name = "disassemble"
path = "examples/disassemble.rs"
required-features = ["std"]
[[example]]
name = "load_elf"
path = "examples/load_elf.rs"
required-features = ["std"]
[[example]]
name = "rbpf_plugin"
path = "examples/rbpf_plugin.rs"
[[example]]
name = "to_json"
path = "examples/to_json.rs"
[[test]]
name = "assembler"
path = "tests/assembler.rs"
[[test]]
name = "common"
path = "tests/common.rs"
[[test]]
name = "cranelift"
path = "tests/cranelift.rs"
[[test]]
name = "disassembler"
path = "tests/disassembler.rs"
[[test]]
name = "misc"
path = "tests/misc.rs"
[[test]]
name = "ubpf_jit_x86_64"
path = "tests/ubpf_jit_x86_64.rs"
[[test]]
name = "ubpf_verifier"
path = "tests/ubpf_verifier.rs"
[[test]]
name = "ubpf_vm"
path = "tests/ubpf_vm.rs"
[dependencies.byteorder]
version = "1.5"
default-features = false
[dependencies.combine]
version = "4.6"
default-features = false
[dependencies.cranelift-codegen]
version = "0.127"
optional = true
[dependencies.cranelift-frontend]
version = "0.127"
optional = true
[dependencies.cranelift-jit]
version = "0.127"
optional = true
[dependencies.cranelift-module]
version = "0.127"
optional = true
[dependencies.cranelift-native]
version = "0.127"
optional = true
[dependencies.hashbrown]
version = "0.16"
features = ["default-hasher"]
default-features = false
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.log]
version = "0.4"
default-features = false
[dev-dependencies.elf]
version = "0.8.0"
[dev-dependencies.hex]
version = "0.4.3"
[dev-dependencies.json]
version = "0.12"
[dev-dependencies.libc]
version = "0.2"