[package]
edition = "2021"
rust-version = "1.75"
name = "mq-bridge"
version = "0.2.13"
authors = ["Marco Mengelkoch"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An asynchronous message bridging library connecting Kafka, MQTT, AMQP, NATS, MongoDB, HTTP, and more."
readme = "README.md"
keywords = [
"messaging",
"kafka",
"nats",
"amqp",
"cqrs",
]
categories = [
"asynchronous",
"network-programming",
]
license = "MIT"
repository = "https://github.com/marcomq/mq-bridge"
[features]
amqp = [
"lapin",
"rustls",
"rustls-pemfile",
"url",
]
aws = [
"aws-config",
"aws-sdk-sqs",
"aws-sdk-sns",
]
dedup = ["sled"]
default = []
full = [
"middleware",
"mongodb",
"kafka",
"amqp",
"nats",
"mqtt",
"http",
"aws",
"zeromq",
"sled",
"grpc",
"sqlx",
"rustls-aws-lc",
]
grpc = [
"tonic",
"prost",
"tokio-stream",
"tonic-prost",
"tonic-prost-build",
"protoc-bin-vendored",
"rustls",
]
http = [
"hyper",
"hyper-util",
"hyper-rustls",
"http-body-util",
"dep:http-body",
"rustls",
"tokio-rustls",
"rustls-pemfile",
"webpki-roots",
"h2",
"dep:flate2",
"dep:base64",
]
ibm-mq = ["mqi"]
kafka = ["rdkafka"]
metrics = ["dep:metrics"]
middleware = [
"metrics",
"dedup",
]
mongodb = ["dep:mongodb"]
mqtt = [
"rumqttc",
"rustls",
"tokio-rustls",
"rustls-pemfile",
"url",
]
nats = [
"async-nats",
"rustls",
"rustls-pemfile",
]
rustls-aws-lc = [
"rustls/aws_lc_rs",
"tokio-rustls?/aws_lc_rs",
"hyper-rustls?/aws-lc-rs",
]
rustls-ring = [
"rustls/ring",
"tokio-rustls?/ring",
"hyper-rustls?/ring",
]
schema = ["dep:schemars"]
sqlx = [
"dep:sqlx",
"url",
]
test-utils = [
"dep:tracing-appender",
"dep:tracing-subscriber",
"dep:serde_yaml_ng",
]
zeromq = ["dep:zeromq"]
[lib]
name = "mq_bridge"
path = "src/lib.rs"
[[test]]
name = "armature_integration"
path = "tests/armature_integration.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
required-features = ["test-utils"]
[[test]]
name = "ref_test"
path = "tests/ref_test.rs"
[[test]]
name = "sqlite_test"
path = "tests/sqlite_test.rs"
[[test]]
name = "tls_example"
path = "tests/tls_example.rs"
[[bench]]
name = "performance_bench"
path = "benches/performance_bench.rs"
harness = false
required-features = ["test-utils"]
[dependencies.anyhow]
version = "1.0"
[dependencies.async-channel]
version = "2.5"
[dependencies.async-nats]
version = "0.45"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1.8"
features = [
"behavior-version-latest",
"rt-tokio",
"rustls",
]
optional = true
default-features = false
[dependencies.aws-sdk-sns]
version = "1.93"
features = [
"rt-tokio",
"rustls",
]
optional = true
default-features = false
[dependencies.aws-sdk-sqs]
version = "1.92"
features = [
"rt-tokio",
"rustls",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bytes]
version = "1"
features = ["serde"]
[dependencies.fast-uuid-v7]
version = "0.1.3"
[dependencies.flate2]
version = "1.0"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.h2]
version = "0.4"
optional = true
[dependencies.http-body]
version = "1.0"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1.8"
features = [
"client",
"server",
"http1",
"http2",
]
optional = true
[dependencies.hyper-rustls]
version = "0.27"
features = ["http2"]
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"client",
"client-legacy",
"server",
"http1",
"http2",
]
optional = true
[dependencies.lapin]
version = "3.7"
features = ["rustls"]
optional = true
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.mongodb]
version = "3.4"
features = ["cert-key-password"]
optional = true
[dependencies.mqi]
version = "0.3"
optional = true
[dependencies.once_cell]
version = "1.21"
[dependencies.prost]
version = "0.14"
features = [
"std",
"derive",
]
optional = true
default-features = false
[dependencies.rand]
version = "0.9"
[dependencies.rdkafka]
version = "0.38"
features = ["tokio"]
optional = true
[dependencies.rumqttc]
version = "0.25"
optional = true
[dependencies.rustls]
version = "0.23"
optional = true
[dependencies.rustls-pemfile]
version = "2.2"
optional = true
[dependencies.schemars]
version = "1.2"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml_ng]
version = "0.10"
optional = true
[dependencies.sled]
version = "0.34"
optional = true
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"postgres",
"mysql",
"sqlite",
"any",
]
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"time",
"fs",
"io-util",
"net",
"signal",
]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-stream]
version = "0.1"
features = ["net"]
optional = true
[dependencies.tonic]
version = "0.14"
features = [
"codegen",
"transport",
"tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.tonic-prost]
version = "0.14"
optional = true
[dependencies.tracing]
version = "0.1"
features = ["log"]
[dependencies.tracing-appender]
version = "0.2"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"json",
"env-filter",
]
optional = true
[dependencies.url]
version = "2.5"
optional = true
[dependencies.uuid]
version = "1.19"
[dependencies.webpki-roots]
version = "0.26"
optional = true
[dependencies.zeromq]
version = "0.4"
optional = true
[dev-dependencies.chrono]
version = "0.4"
[dev-dependencies.config]
version = "0.15"
[dev-dependencies.criterion]
version = "0.8"
features = [
"async",
"async_tokio",
]
[dev-dependencies.metrics-util]
version = "0.20"
[dev-dependencies.rcgen]
version = "0.9"
[dev-dependencies.reqwest]
version = "0.12"
features = ["stream"]
[dev-dependencies.rustls]
version = "0.23"
features = ["ring"]
[dev-dependencies.rustls-pemfile]
version = "2.2"
[dev-dependencies.serde_yaml_ng]
version = "0.10"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio-rustls]
version = "0.26"
features = ["ring"]
[build-dependencies.protoc-bin-vendored]
version = "3.0"
optional = true
[build-dependencies.tonic-prost-build]
version = "0.14"
features = ["transport"]
optional = true
default-features = false
[target."cfg(windows)".dependencies.rdkafka]
version = "0.38"
features = [
"cmake-build",
"tokio",
]
optional = true