Documentation
[package]
name = "prosa"
version = "0.4.2"
authors.workspace = true
description = "ProSA core"
homepage.workspace = true
repository.workspace = true
edition.workspace = true
license.workspace = true
include.workspace = true

[features]
default = ["system-metrics", "http-proxy", "openssl", "prometheus"]
system-metrics = ["dep:memory-stats"]
http-proxy = ["dep:async-http-proxy"]
openssl = ["dep:openssl", "dep:tokio-openssl", "prosa-utils/config-openssl"]
openssl-vendored = ["openssl", "openssl/vendored", "prosa-utils/config-openssl-vendored"]
prometheus = ["dep:prometheus", "prosa-utils/config-observability-prometheus"]
queue = ["prosa-utils/queue"]

[[example]]
name = "proc"
path = "examples/proc.rs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[package.metadata.prosa]
main = ["core::main::MainProc"]

[package.metadata.prosa.inj]
proc = "inj::proc::InjProc"
settings = "inj::proc::InjSettings"
adaptor = ["inj::adaptor::InjDummyAdaptor"]

[package.metadata.prosa.stub]
proc = "stub::proc::StubProc"
settings = "stub::proc::StubSettings"
adaptor = ["stub::adaptor::StubParotAdaptor"]

[dependencies]
prosa-utils = { workspace = true, features = ["msg", "config", "config-observability"] }
prosa-macros.workspace = true
log.workspace = true
tracing = "0.1"
thiserror.workspace = true
url = { version = "2", features = ["serde"] }
rlimit = "0.11"

aquamarine.workspace = true

openssl = { workspace = true, optional = true }
tokio.workspace = true
tokio-openssl = { version = "0.6", optional = true }
async-http-proxy = { version = "1", optional = true, features = ["runtime-tokio","basic-auth"] }

serde.workspace = true
config = { version = "0.15", default-features = false, features = ["toml", "yaml", "json", "convert-case"] }
glob = { version = "0.3" }
toml.workspace = true
serde_yaml = "0.9"

opentelemetry.workspace = true
opentelemetry_sdk.workspace = true
prometheus = { workspace = true, optional = true }
memory-stats = { version = "1", optional = true }

[dev-dependencies]
futures-util = { version = "0.3", default-features = false }