[package]
name = "prosa-utils"
version = "0.4.2"
authors.workspace = true
description = "ProSA utils"
homepage.workspace = true
repository.workspace = true
edition.workspace = true
license.workspace = true
include.workspace = true
[features]
default = ["msg", "config", "config-openssl", "config-observability"]
msg = []
config = ["dep:glob","dep:serde","dep:serde_yaml", "dep:base64"]
config-openssl = ["config", "dep:openssl"]
config-openssl-vendored = ["config-openssl", "openssl/vendored"]
config-observability = ["dep:log", "dep:tracing-core", "dep:tracing-subscriber", "dep:tracing-opentelemetry", "dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-stdout", "dep:opentelemetry-otlp", "dep:opentelemetry-appender-tracing"]
config-observability-gzip = ["dep:flate2", "opentelemetry-otlp/gzip-tonic", "opentelemetry-otlp/gzip-http"]
config-observability-prometheus = ["config-observability", "dep:prometheus", "dep:opentelemetry-prometheus", "dep:tokio", "dep:hyper", "dep:http-body-util", "dep:hyper-util"]
queue = []
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[package.metadata.prosa]
tvf = ["msg::simple_string_tvf::SimpleStringTvf"]
[dependencies]
thiserror.workspace = true
bytes.workspace = true
url.workspace = true
chrono.workspace = true
hex = "0.4"
glob = { version = "0.3", optional = true }
serde = { workspace = true, optional = true }
serde_yaml = { version = "0.9", optional = true }
base64 = { version = "0.22", optional = true }
openssl = { workspace = true, optional = true }
log = { workspace = true, optional = true }
tracing-core = { version = "0.1", optional = true }
tracing-subscriber = { version = ">=0.3.20, < 0.4", features = ["std", "env-filter"], optional = true }
tracing-opentelemetry = { version = "0.32.1", optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
opentelemetry-stdout = { version = "0.31.0", optional = true, features = ["metrics", "trace", "logs"]}
opentelemetry-otlp = { version = "0.31.0", optional = true, features = ["metrics", "trace", "logs", "reqwest-rustls", "grpc-tonic"]}
prometheus = { workspace = true, optional = true }
opentelemetry-prometheus = { version = "0.31.0", optional = true }
opentelemetry-appender-tracing = { version = "0.31.0", optional = true }
tokio = { workspace = true, optional = true }
hyper = { workspace = true, optional = true }
http-body-util = { workspace = true, optional = true }
hyper-util = { workspace = true, optional = true }
flate2 = { version = "1", optional = true }
[dev-dependencies]
tokio.workspace = true
tokio-openssl = "0.6"