[package]
edition = "2021"
name = "busrt"
version = "0.5.3"
authors = ["Serhij S. <div@altertech.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Local and network IPC bus"
readme = "README.md"
keywords = [
"bus",
"rt",
"ipc",
"pubsub",
]
license = "Apache-2.0"
repository = "https://github.com/alttch/busrt"
[package.metadata.docs.rs]
features = [
"broker",
"ipc",
"rpc",
"ipc-sync",
"rpc-sync",
"cursors",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[package.metadata.playground]
features = [
"broker",
"ipc",
"rpc",
"ipc-sync",
"rpc-sync",
"cursors",
]
[features]
broker = [
"dep:log",
"submap/digest",
"dep:async-trait",
"dep:unix-named-pipe",
"dep:nix",
"dep:ipnetwork",
"dep:triggered",
"dep:parking_lot",
"dep:tokio",
"dep:rustls",
"dep:futures-util",
"dep:ws_stream_tungstenite",
"dep:async-tungstenite",
"dep:tokio-util",
"dep:tokio-rustls",
"dep:tungstenite",
]
broker-rpc = [
"broker",
"rpc",
"dep:rmp-serde",
]
cli = [
"ipc",
"rpc",
"dep:colored",
"dep:clap",
"dep:env_logger",
"dep:bma-benchmark",
"dep:prettytable-rs",
"dep:hostname",
"dep:hex",
"dep:num-format",
"dep:mimalloc",
"dep:serde_json",
"dep:is-terminal",
"dep:rmp-serde",
]
cursors = [
"rpc",
"dep:uuid",
]
fips = ["rustls/fips"]
full = [
"rpc",
"ipc",
"broker",
"broker-rpc",
"ipc-sync",
]
ipc = [
"dep:log",
"dep:async-trait",
"dep:parking_lot",
"dep:tokio",
"dep:rustls",
"dep:futures-util",
"dep:ws_stream_tungstenite",
"dep:async-tungstenite",
"dep:tokio-util",
"dep:tokio-rustls",
"dep:tungstenite",
]
ipc-sync = [
"dep:log",
"dep:parking_lot",
"dep:rtsc",
"dep:tungstenite",
]
rpc = [
"dep:log",
"dep:serde",
"dep:async-trait",
"dep:serde-value",
"dep:parking_lot",
"dep:regex",
"dep:tokio-task-pool",
"dep:tokio",
]
rpc-sync = [
"dep:rtsc",
"dep:parking_lot",
"dep:log",
"dep:regex",
]
rt = ["dep:parking_lot_rt"]
server = [
"dep:log",
"dep:syslog",
"dep:chrono",
"dep:colored",
"dep:clap",
"dep:mimalloc",
"dep:fork",
"broker-rpc",
]
std-alloc = []
tracing = [
"tokio/tracing",
"dep:console-subscriber",
]
[lib]
name = "busrt"
path = "src/lib.rs"
[[bin]]
name = "busrt"
path = "src/cli.rs"
required-features = ["cli"]
[[bin]]
name = "busrtd"
path = "src/server.rs"
required-features = ["server"]
[[example]]
name = "broker_aaa"
path = "examples/broker_aaa.rs"
required-features = [
"broker",
"rpc",
]
[[example]]
name = "broker_custom_rpc"
path = "examples/broker_custom_rpc.rs"
required-features = [
"broker",
"broker-rpc",
]
[[example]]
name = "client_cursor"
path = "examples/client_cursor.rs"
required-features = [
"ipc",
"rpc",
"cursors",
]
[[example]]
name = "client_listener"
path = "examples/client_listener.rs"
required-features = ["ipc"]
[[example]]
name = "client_rpc"
path = "examples/client_rpc.rs"
required-features = [
"ipc",
"rpc",
]
[[example]]
name = "client_rpc_handler"
path = "examples/client_rpc_handler.rs"
required-features = [
"ipc",
"rpc",
"broker-rpc",
]
[[example]]
name = "client_sender"
path = "examples/client_sender.rs"
required-features = ["ipc"]
[[example]]
name = "inter_thread"
path = "examples/inter_thread.rs"
required-features = [
"broker",
"rpc",
]
[[example]]
name = "server_cursor"
path = "examples/server_cursor.rs"
required-features = [
"broker",
"ipc",
"rpc",
"cursors",
"sqlx",
"futures",
]
[dependencies.async-channel]
version = "1.7.1"
[dependencies.async-io]
version = "2.6.0"
[dependencies.async-trait]
version = "0.1.57"
optional = true
[dependencies.async-tungstenite]
version = "0.29"
features = [
"tokio",
"tokio-rustls-native-certs",
]
optional = true
[dependencies.bma-benchmark]
version = "0.0.24"
optional = true
[dependencies.chrono]
version = "0.4.19"
optional = true
[dependencies.clap]
version = "4.5.53"
features = ["derive"]
optional = true
[dependencies.colored]
version = "2"
optional = true
[dependencies.console-subscriber]
version = "0.1.7"
optional = true
[dependencies.env_logger]
version = "0.11.8"
optional = true
[dependencies.fork]
version = "0.1.18"
optional = true
[dependencies.futures]
version = "0.3.26"
optional = true
[dependencies.futures-util]
version = "0.3.31"
features = [
"io",
"tokio-io",
]
optional = true
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.hostname]
version = "0.3.1"
optional = true
[dependencies.ipnetwork]
version = "0.20.0"
optional = true
[dependencies.is-terminal]
version = "0.4.17"
optional = true
[dependencies.log]
version = "0.4.14"
optional = true
[dependencies.mimalloc]
version = "0.1.46"
optional = true
[dependencies.nix]
version = "0.25.0"
optional = true
[dependencies.num-format]
version = "0.4.0"
optional = true
[dependencies.oneshot]
version = "0.1.13"
[dependencies.parking_lot]
version = "0.12.1"
optional = true
[dependencies.parking_lot_rt]
version = "0.12.1"
optional = true
[dependencies.prettytable-rs]
version = "0.10"
optional = true
[dependencies.regex]
version = "1.8.1"
optional = true
[dependencies.rmp-serde]
version = "1.3.1"
optional = true
[dependencies.rtsc]
version = "0.4.2"
features = ["parking_lot"]
optional = true
[dependencies.rustls]
version = "0.23.35"
optional = true
[dependencies.serde]
version = "1.0.143"
features = ["derive"]
optional = true
[dependencies.serde-value]
version = "0.7.0"
optional = true
[dependencies.serde_json]
version = "1.0.83"
optional = true
[dependencies.sqlx]
version = "0.8"
features = [
"postgres",
"runtime-tokio-rustls",
]
optional = true
[dependencies.submap]
version = "0.3"
optional = true
[dependencies.syslog]
version = "7.0.0"
optional = true
[dependencies.tokio]
version = "1.20.1"
features = ["full"]
optional = true
[dependencies.tokio-rustls]
version = "0.26.4"
optional = true
[dependencies.tokio-task-pool]
version = "0.1.3"
optional = true
[dependencies.tokio-util]
version = "0.7.18"
features = [
"futures-util",
"compat",
]
optional = true
[dependencies.triggered]
version = "0.1.2"
optional = true
[dependencies.tungstenite]
version = "0.26"
features = ["rustls-native-certs"]
optional = true
[dependencies.unix-named-pipe]
version = "0.2.0"
optional = true
[dependencies.uuid]
version = "1.3.0"
features = [
"serde",
"v4",
]
optional = true
[dependencies.ws_stream_tungstenite]
version = "0.15.0"
features = ["tokio"]
optional = true
[profile.dev]
overflow-checks = false
[profile.release]
strip = true