[package] name = "bumble" description = "Rust API for the Bumble Bluetooth stack" version = "0.2.0" edition = "2021" license = "Apache-2.0" homepage = "https://google.github.io/bumble/index.html" repository = "https://github.com/google/bumble" documentation = "https://docs.rs/crate/bumble" authors = ["Marshall Pierce "] keywords = ["bluetooth", "ble"] categories = ["api-bindings", "network-programming"] rust-version = "1.76.0" # https://github.com/frewsxcv/cargo-all-features#options [package.metadata.cargo-all-features] # We are interested in testing subset combinations of this feature, so this is redundant denylist = ["unstable"] # To exercise combinations of any of these features, remove from `always_include_features` always_include_features = ["anyhow", "pyo3-asyncio-attributes", "dev-tools", "bumble-tools"] [dependencies] pyo3 = { version = "0.18.3", features = ["macros"] } pyo3-asyncio = { version = "0.18.0", features = ["tokio-runtime"] } tokio = { version = "1.28.2", features = ["macros", "signal"] } nom = "7.1.3" strum = "0.25.0" strum_macros = "0.25.0" hex = "0.4.3" itertools = "0.11.0" lazy_static = "1.4.0" thiserror = "1.0.41" bytes = "1.5.0" pdl-derive = "0.2.0" pdl-runtime = "0.2.0" futures = "0.3.28" # Dev tools file-header = { version = "0.1.2", optional = true } globset = { version = "0.4.13", optional = true } # CLI anyhow = { version = "1.0.71", optional = true } clap = { version = "4.3.3", features = ["derive"], optional = true } directories = { version = "5.0.1", optional = true } env_logger = { version = "0.10.0", optional = true } log = { version = "0.4.19", optional = true } owo-colors = { version = "3.5.0", optional = true } reqwest = { version = "0.11.20", features = ["blocking"], optional = true } rusb = { version = "0.9.2", optional = true } [dev-dependencies] tokio = { version = "1.28.2", features = ["full"] } tempfile = "3.6.0" nix = "0.26.2" anyhow = "1.0.71" pyo3 = { version = "0.18.3", features = ["macros", "anyhow"] } pyo3-asyncio = { version = "0.18.0", features = ["tokio-runtime", "attributes", "testing"] } rusb = "0.9.2" rand = "0.8.5" clap = { version = "4.3.3", features = ["derive"] } owo-colors = "3.5.0" log = "0.4.19" env_logger = "0.10.0" [package.metadata.docs.rs] rustdoc-args = ["--generate-link-to-definition"] [[bin]] name = "file-header" path = "tools/file_header.rs" required-features = ["dev-tools"] [[bin]] name = "gen-assigned-numbers" path = "tools/gen_assigned_numbers.rs" required-features = ["dev-tools"] [[bin]] name = "bumble" path = "src/main.rs" required-features = ["bumble-tools"] [[example]] name = "broadcast" path = "examples/broadcast.rs" required-features = ["unstable_extended_adv"] # test entry point that uses pyo3_asyncio's test harness [[test]] name = "pytests" path = "pytests/pytests.rs" harness = false [features] anyhow = ["pyo3/anyhow"] pyo3-asyncio-attributes = ["pyo3-asyncio/attributes"] dev-tools = ["dep:anyhow", "dep:clap", "dep:file-header", "dep:globset"] # separate feature for CLI so that dependencies don't spend time building these bumble-tools = ["dep:clap", "anyhow", "dep:anyhow", "dep:directories", "pyo3-asyncio-attributes", "dep:owo-colors", "dep:reqwest", "dep:rusb", "dep:log", "dep:env_logger"] # all the unstable features unstable = ["unstable_extended_adv"] unstable_extended_adv = [] default = []