[package]
edition = "2024"
name = "psrt"
version = "0.3.0"
authors = ["Serhij S. <div@altertech.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Industrial Pub-Sub server with minimal latency and MQTT-compatible logic"
readme = "README.md"
keywords = [
"pubsub",
"server",
"client",
]
license = "Apache-2.0"
repository = "https://github.com/alttch/psrt"
[features]
cli = [
"dep:bma-benchmark",
"dep:byte-unit",
"dep:clap",
"dep:clap_derive",
"dep:env_logger",
"dep:term_size",
"dep:prettytable-rs",
"dep:num-format",
"dep:getch",
"dep:rand",
"dep:mimalloc",
"dep:rustls",
]
cluster = ["server"]
crypto = [
"dep:aes-gcm",
"dep:rand",
]
openssl-vendored = ["openssl/vendored"]
server = [
"dep:base64",
"dep:bcrypt",
"dep:clap",
"dep:clap_derive",
"dep:colored",
"dep:chrono",
"dep:fork",
"dep:hostname",
"dep:hyper",
"dep:serde_json",
"dep:syslog",
"dep:mimalloc",
"submap/native-digest",
"dep:eva-common",
"dep:eva-sdk",
"dep:rustls",
]
std-alloc = []
[lib]
name = "psrt"
path = "src/lib.rs"
[[bin]]
name = "psrt-cli"
path = "src/cli.rs"
required-features = ["cli"]
[[bin]]
name = "psrtd"
path = "src/server.rs"
required-features = ["server"]
[[example]]
name = "pubsub"
path = "examples/pubsub.rs"
[[example]]
name = "udp_aes"
path = "examples/udp_aes.rs"
required-features = ["crypto"]
[[example]]
name = "udp_client"
path = "examples/udp_client.rs"
[dependencies.aes-gcm]
version = "0.10.3"
optional = true
[dependencies.async-channel]
version = "1.7.1"
[dependencies.async-trait]
version = "0.1.74"
[dependencies.base64]
version = "0.13.0"
optional = true
[dependencies.bcrypt]
version = "0.10.1"
optional = true
[dependencies.bma-benchmark]
version = "0.0.20"
optional = true
[dependencies.byte-unit]
version = "4.0.13"
optional = true
[dependencies.chrono]
version = "0.4.42"
optional = true
[dependencies.clap]
version = "=3.0.0-beta.2"
optional = true
[dependencies.clap_derive]
version = "=3.0.0-beta.2"
optional = true
[dependencies.colored]
version = "2"
optional = true
[dependencies.env_logger]
version = "0.9.0"
optional = true
[dependencies.eva-common]
version = "^0.4.5"
features = [
"services",
"fips",
]
optional = true
[dependencies.eva-sdk]
version = "0.4"
optional = true
[dependencies.fork]
version = "0.1.18"
optional = true
[dependencies.getch]
version = "0.2.1"
optional = true
[dependencies.hex]
version = "0.4.2"
[dependencies.hostname]
version = "0.3.1"
optional = true
[dependencies.hyper]
version = "0.14"
features = ["full"]
optional = true
[dependencies.log]
version = "0.4.14"
[dependencies.mimalloc]
version = "0.1.43"
optional = true
[dependencies.nix]
version = "0.25.0"
[dependencies.num-format]
version = "0.4.0"
optional = true
[dependencies.openssl]
version = "0.10"
[dependencies.parking_lot]
version = "0.12.1"
package = "parking_lot_rt"
[dependencies.prettytable-rs]
version = "0.10.0"
optional = true
[dependencies.rand]
version = "0.9"
optional = true
[dependencies.rustls]
version = "0.23"
features = ["fips"]
optional = true
[dependencies.serde]
version = "1.0.143"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.68"
optional = true
[dependencies.serde_yaml]
version = "0.8.26"
[dependencies.submap]
version = "0.2.3"
optional = true
[dependencies.syslog]
version = "7.0.0"
optional = true
[dependencies.term_size]
version = "0.3.2"
optional = true
[dependencies.tokio]
version = "1.48"
features = ["full"]
[dependencies.tokio-native-tls]
version = "0.3.1"
[profile.dev]
overflow-checks = false
[profile.release]
lto = true
codegen-units = 1
strip = true