xref: /DragonOS/kernel/crates/rbpf/Cargo.toml (revision fae6e9ade46a52976ad5d099643d51cc20876448)
1*fae6e9adSlinfeng[package]
2*fae6e9adSlinfeng
3*fae6e9adSlinfeng# Project metadata
4*fae6e9adSlinfengname = "rbpf"
5*fae6e9adSlinfengversion = "0.2.0"
6*fae6e9adSlinfengauthors = ["Quentin <quentin@isovalent.com>"]
7*fae6e9adSlinfeng
8*fae6e9adSlinfeng# Additional metadata for packaging
9*fae6e9adSlinfengdescription = "Virtual machine and JIT compiler for eBPF programs"
10*fae6e9adSlinfengrepository = "https://github.com/qmonnet/rbpf"
11*fae6e9adSlinfengreadme = "README.md"
12*fae6e9adSlinfengkeywords = ["BPF", "eBPF", "interpreter", "JIT", "filtering"]
13*fae6e9adSlinfenglicense = "Apache-2.0/MIT"
14*fae6e9adSlinfengedition = "2021"
15*fae6e9adSlinfeng
16*fae6e9adSlinfeng# Packaging directives
17*fae6e9adSlinfenginclude = [
18*fae6e9adSlinfeng    "src/**",
19*fae6e9adSlinfeng    "examples/**",
20*fae6e9adSlinfeng    "tests/**",
21*fae6e9adSlinfeng    "bench/**",
22*fae6e9adSlinfeng    "LICENSE*",
23*fae6e9adSlinfeng    "Cargo.toml",
24*fae6e9adSlinfeng]
25*fae6e9adSlinfeng
26*fae6e9adSlinfeng[dependencies]
27*fae6e9adSlinfeng
28*fae6e9adSlinfeng# Default features (std) are disabled so that the dependencies don't pull in the
29*fae6e9adSlinfeng# standard library when the crate is compiled for no_std
30*fae6e9adSlinfengbyteorder = { version = "1.2", default-features = false }
31*fae6e9adSlinfenglog = {version = "0.4.21", default-features = false }
32*fae6e9adSlinfengcombine = { version = "4.6", default-features = false }
33*fae6e9adSlinfeng
34*fae6e9adSlinfeng# Optional Dependencies when using the standard library
35*fae6e9adSlinfenglibc = { version = "0.2", optional = true }
36*fae6e9adSlinfengtime = { version = "0.2", optional = true }
37*fae6e9adSlinfeng
38*fae6e9adSlinfeng# Optional Dependencies for the CraneLift JIT
39*fae6e9adSlinfengcranelift-codegen = { version = "0.99", optional = true }
40*fae6e9adSlinfengcranelift-frontend = { version = "0.99", optional = true }
41*fae6e9adSlinfengcranelift-jit = { version = "0.99", optional = true }
42*fae6e9adSlinfengcranelift-native = { version = "0.99", optional = true }
43*fae6e9adSlinfengcranelift-module = { version = "0.99", optional = true }
44*fae6e9adSlinfeng
45*fae6e9adSlinfeng[dev-dependencies]
46*fae6e9adSlinfeng
47*fae6e9adSlinfengelf = "0.0.10"
48*fae6e9adSlinfengjson = "0.11"
49*fae6e9adSlinfenghex = "0.4.3"
50*fae6e9adSlinfeng
51*fae6e9adSlinfeng[features]
52*fae6e9adSlinfeng#default = ["std", "user", "cranelift"]
53*fae6e9adSlinfengcargo-clippy = []
54*fae6e9adSlinfengstd = ["dep:time", "dep:libc", "combine/std"]
55*fae6e9adSlinfengcranelift = [
56*fae6e9adSlinfeng    "dep:cranelift-codegen",
57*fae6e9adSlinfeng    "dep:cranelift-frontend",
58*fae6e9adSlinfeng    "dep:cranelift-jit",
59*fae6e9adSlinfeng    "dep:cranelift-native",
60*fae6e9adSlinfeng    "dep:cranelift-module",
61*fae6e9adSlinfeng]
62*fae6e9adSlinfenguser = []
63*fae6e9adSlinfeng
64*fae6e9adSlinfeng# Examples that depend on the standard library should be disabled when
65*fae6e9adSlinfeng# testing the `no_std` configuration.
66*fae6e9adSlinfeng[[example]]
67*fae6e9adSlinfengname = "disassemble"
68*fae6e9adSlinfengrequired-features = ["std"]
69*fae6e9adSlinfeng
70*fae6e9adSlinfeng[[example]]
71*fae6e9adSlinfengname = "uptime"
72*fae6e9adSlinfengrequired-features = ["std"]
73*fae6e9adSlinfeng
74*fae6e9adSlinfeng[[example]]
75*fae6e9adSlinfengname = "to_json"
76*fae6e9adSlinfeng
77*fae6e9adSlinfeng[[example]]
78*fae6e9adSlinfengname = "rbpf_plugin"
79