[package]
edition = "2021"
name = "dmsc"
version = "0.1.8"
authors = ["Dunimd Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Dunimd Middleware Service - A high-performance Rust middleware framework with modular architecture"
readme = "README.md"
keywords = [
"middleware",
"framework",
"distributed",
"async",
"microservices",
]
categories = [
"asynchronous",
"web-programming",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/mf2023/DMSC"
[features]
auth = ["urlencoding"]
c = ["dep:safer-ffi"]
cache = ["redis"]
config_hot_reload = ["notify"]
default = [
"pyo3",
"c",
"java",
"grpc",
"websocket",
"rabbitmq",
"cache",
"queue",
"gateway",
"service_mesh",
"auth",
"observability",
"postgres",
"mysql",
"sqlite",
"http_client",
"system_info",
"config_hot_reload",
"protocol",
"kafka",
]
etcd = ["dep:etcd-client"]
full = [
"pyo3",
"c",
"java",
"grpc",
"websocket",
"rabbitmq",
"cache",
"queue",
"gateway",
"service_mesh",
"auth",
"observability",
"postgres",
"mysql",
"sqlite",
"http_client",
"system_info",
"config_hot_reload",
"protocol",
"etcd",
"kafka",
]
gateway = [
"hyper",
"redis",
"tokio-rustls",
]
grpc = [
"tonic",
"prost",
"prost-types",
"tokio-stream",
"tower",
"async-stream",
]
http_client = [
"reqwest",
"urlencoding",
]
java = [
"dep:jni",
"grpc",
"websocket",
"rabbitmq",
"cache",
"queue",
"gateway",
"service_mesh",
"auth",
"observability",
"postgres",
"mysql",
"sqlite",
"http_client",
"system_info",
"config_hot_reload",
"protocol",
"kafka",
]
kafka = ["rdkafka"]
minimal = []
mysql = ["sqlx"]
observability = ["prometheus"]
oqs = ["dep:oqs"]
parking_lot = []
postgres = ["sqlx"]
protocol = [
"dep:oqs",
"dep:sm-crypto",
]
pyo3 = ["dep:pyo3"]
queue = [
"redis",
"rabbitmq",
]
rabbitmq = ["dep:lapin"]
service_mesh = [
"redis",
"hyper",
"tokio-rustls",
]
sqlite = ["sqlx"]
system_info = ["sysinfo"]
websocket = [
"tokio-tungstenite",
"tungstenite",
]
[lib]
name = "dmsc"
crate-type = [
"rlib",
"cdylib",
"staticlib",
]
path = "src/lib.rs"
doctest = false
[[bench]]
name = "auth"
path = "benches/auth.rs"
harness = false
[[bench]]
name = "cache"
path = "benches/cache.rs"
harness = false
[[bench]]
name = "core"
path = "benches/core.rs"
harness = false
[[bench]]
name = "gateway"
path = "benches/gateway.rs"
harness = false
[[bench]]
name = "grpc"
path = "benches/grpc.rs"
harness = false
required-features = ["grpc"]
[[bench]]
name = "protocol"
path = "benches/protocol.rs"
harness = false
[[bench]]
name = "queue"
path = "benches/queue.rs"
harness = false
[dependencies.aes-gcm]
version = "0.10"
[dependencies.async-stream]
version = "0.3"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.21"
[dependencies.bincode]
version = "1"
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
features = [
"serde",
"std",
]
[dependencies.crc32fast]
version = "1"
[dependencies.dashmap]
version = "5.5"
[dependencies.data-encoding]
version = "2"
[dependencies.erased-serde]
version = "0.4"
[dependencies.etcd-client]
version = "0.11"
features = ["tls"]
optional = true
[dependencies.futures]
version = "0.3"
features = ["std"]
[dependencies.futures-util]
version = "0.3"
features = [
"sink",
"std",
]
[dependencies.generic-array]
version = "0.14"
[dependencies.hex]
version = "0.4"
[dependencies.html-escape]
version = "0.2"
[dependencies.http]
version = "1.0"
[dependencies.hyper]
version = "0.14"
features = [
"client",
"server",
"http1",
"http2",
"tcp",
]
optional = true
[dependencies.jni]
version = "0.21"
optional = true
[dependencies.jsonwebtoken]
version = "9"
[dependencies.lapin]
version = "2.3"
features = ["rustls"]
optional = true
[dependencies.lazy_static]
version = "1.4"
[dependencies.libloading]
version = "0.8"
[dependencies.log]
version = "0.4"
[dependencies.notify]
version = "6.1"
optional = true
[dependencies.num-bigint]
version = "0.4"
[dependencies.parking_lot]
version = "0.12"
[dependencies.prometheus]
version = "0.13"
optional = true
[dependencies.prost]
version = "0.12"
optional = true
[dependencies.prost-types]
version = "0.12"
optional = true
[dependencies.pyo3]
version = "0.27"
features = ["extension-module"]
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.redis]
version = "0.24"
features = [
"tokio-comp",
"connection-manager",
]
optional = true
[dependencies.regex]
version = "1.10"
[dependencies.reqwest]
version = "0.11"
features = ["json"]
optional = true
[dependencies.ring]
version = "0.17"
[dependencies.rusqlite]
version = "0.29"
features = ["bundled"]
optional = true
[dependencies.rustls]
version = "0.22"
[dependencies.rustls-native-certs]
version = "0.8"
[dependencies.rustls-pemfile]
version = "2"
[dependencies.safer-ffi]
version = "0.1"
features = ["proc_macros"]
optional = true
[dependencies.secrecy]
version = "0.8"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sqlx]
version = "0.7"
features = [
"runtime-tokio",
"postgres",
"mysql",
"sqlite",
]
optional = true
default-features = false
[dependencies.sysinfo]
version = "0.29"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"time",
"sync",
"rt",
"rt-multi-thread",
"net",
"io-util",
"io-std",
]
[dependencies.tokio-postgres]
version = "0.7"
optional = true
[dependencies.tokio-rustls]
version = "0.24"
optional = true
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.tokio-tungstenite]
version = "0.24"
features = ["rustls-tls-webpki-roots"]
optional = true
[dependencies.toml]
version = "0.8"
[dependencies.tonic]
version = "0.12"
features = ["prost"]
optional = true
[dependencies.tower]
version = "0.4"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tungstenite]
version = "0.24"
optional = true
[dependencies.typenum]
version = "1"
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2"
optional = true
[dependencies.uuid]
version = "1.0"
features = [
"v4",
"serde",
]
[dependencies.webpki]
version = "0.22"
[dependencies.yaml-rust]
version = "0.4"
[dependencies.zeroize]
version = "1.8"
[dependencies.zeroize_derive]
version = "1.4"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[target."cfg(not(windows))".dependencies.openssl-sys]
version = "0.9"
features = ["vendored"]
optional = true
[target."cfg(not(windows))".dependencies.rdkafka]
version = "0.38"
features = [
"tokio",
"cmake-build",
"ssl-vendored",
"gssapi-vendored",
]
optional = true
default-features = false
[target."cfg(windows)".dependencies.oqs]
version = "0.11"
optional = true
[target."cfg(windows)".dependencies.rdkafka]
version = "0.38"
features = [
"tokio",
"cmake-build",
"ssl-vendored",
]
optional = true
default-features = false
[target."cfg(windows)".dependencies.sm-crypto]
version = "0.1"
optional = true