[workspace] default-members = ["bin/bgp"] members = ["bin/*", "crates/*"] # Fuzz targets need a nightly toolchain; see fuzz/README.md. exclude = ["fuzz"] resolver = "3" [workspace.package] authors = ["Rayhaan Jaufeerally "] description = "A Border Gateway Protocol implementation" edition = "2024" homepage = "https://rayhaan.ch" license = "Apache-2.0" repository = "https://git.rayhaan.net/rayhaan/ferrix" version = "0.2.3" # Every crate opts in with `[lints] workspace = true`. CI turns warnings into # errors, so a lint added here is enforced. [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] all = { level = "warn", priority = -1 } dbg_macro = "warn" todo = "warn" unimplemented = "warn" [workspace.dependencies] # --- Our crates --- bgp-fib = { path = "crates/fib" } bgp-packet = { path = "crates/packet" } bgp-primitives = { path = "crates/primitives" } bgp-rib = { path = "crates/rib" } bgp-rpki = { path = "crates/rpki" } bgp-server = { path = "crates/server" } bgp-web = { path = "crates/web" } bgp-integration-tests = { path = "crates/integration-tests" } bgp-bench = { path = "crates/bench" } # --- General --- bitfield = "0.19.0" bytes = "1.10.1" eyre = "0.6.12" nom = "8.0.0" serde = { version = "1.0.219", features = ["derive"] } nix = { version = "0.31", default-features = false, features = ["net"] } socket2 = "0.6" serde_json = "1.0.140" serde_repr = "0.1.20" thiserror = "2.0.12" tokio = { version = "1.44.2", features = ["full"] } strum = { version = "0.27.1", features = ["derive"] } tracing = "0.1.44" tracing-subscriber = { version = "0.3.22", features = ["env-filter"] } prometheus = "0.14.0" proptest = "1.7" protobuf = { package = "protobuf", version = "3.7.2" } protobuf-codegen = { package = "protobuf-codegen", version = "3.7.2" } clap = { version = "4.5.53", features = ["derive"] } foldhash = "0.2" futures = "0.3" hashbrown = "0.17" axum = "0.8.9" tokio-stream = { version = "0.1.19", features = ["sync"] } reqwest = { version = "0.13.5", default-features = false, features = ["json"] } # The daemon's memory allocator; see bin/bgp/src/main.rs. tikv-jemallocator = "0.7.0"