[package] name = "fe2o3-amqp" version = "0.13.1" edition = "2021" description = "An implementation of AMQP1.0 protocol based on serde and tokio" license = "MIT/Apache-2.0" documentation = "https://docs.rs/fe2o3-amqp/" homepage = "https://github.com/minghuaw/fe2o3-amqp" repository = "https://github.com/minghuaw/fe2o3-amqp" keywords = ["amqp", "serde", "tokio"] readme = "Readme.md" rust-version = "1.75.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [features] # dev defaults default = [ # "acceptor", # "rustls", # "native-tls", # "transaction", # "scram", ] transaction = ["fe2o3-amqp-types/transaction", "uuid"] # TLS related features rustls = ["tokio-rustls", "librustls", "webpki-roots", "ring"] native-tls = ["tokio-native-tls", "libnative-tls"] # Listener implementation acceptor = [] # SASL SCRAM scram = ["sha-1", "sha2", "rand", "base64", "stringprep", "hmac", "pbkdf2"] [dependencies] serde_amqp = { workspace = true } fe2o3-amqp-types = { workspace = true } bytes = { workspace = true } tokio-util = { workspace = true, features = ["codec"] } # tokio-rs/tokio#4816 thiserror = { workspace = true } serde = { workspace = true } futures-util = { workspace = true, features = ["sink"] } pin-project-lite = "0.2" url = "2" slab = "0.4" serde_bytes = { workspace = true } parking_lot = { version = "0.12", features = ["send_guard"] } # Optinoal deps that are feature themselves tracing = { workspace = true, optional = true } log = { workspace = true, optional = true } # Optional deps uuid = { workspace = true, features = ["v4"], optional = true } sha-1 = { version = "0.10", optional = true } sha2 = { version = "0.10", optional = true } rand = { workspace = true, optional = true } base64 = { version = "0.22", optional = true } # TODO: replace with base64-simd? stringprep = { version = "0.1", optional = true } hmac = { version = "0.12", optional = true } pbkdf2 = { version = "0.12", default-features = false, optional = true } webpki-roots = { version = "0.26", optional = true } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "tls12", "ring"], optional = true } librustls = { package = "rustls", version = "0.23", default-features = false, features = ["logging", "std", "tls12", "ring"], optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { workspace = true, features = ["sync", "io-util", "net", "rt", "macros", "time"] } libnative-tls = { package = "native-tls", version = "0.2", optional = true } tokio-native-tls = { version = "0.3", optional = true } ring = { version = "0.17", default-features = false, optional = true } tokio-stream = { version = "0.1", features = ["time"] } [target.'cfg(target_arch = "wasm32")'.dependencies] tokio = { workspace = true, features = ["sync", "io-util", "rt", "macros"] } # "net" feature doesn't support wasm32 ring = { version = "0.17", default-features = false, features = ["wasm32_unknown_unknown_js"], optional = true } getrandom = { workspace = true } fluvio-wasm-timer = "0.2" [dev-dependencies] tokio-test = { version = "0.4" } testcontainers = "0.15.0" fe2o3-amqp-ext = { workspace = true } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "parking_lot"] } [target.'cfg(target_arch = "wasm32")'.dev-dependencies] tokio = { workspace = true, features = ["rt", "macros", "parking_lot"]} getrandom = { workspace = true }