Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "prosa"
version = "0.4.1"
authors = [
    "Jeremy HERGAULT <jeremy.hergault@worldline.com>",
    "Anthony THOMAS <anthony.thomas@worldline.com>",
    "Olivier SCHYNS <olivier.schyns@worldline.com>",
    "Rene-Louis EYMARD <rene-louis.eymard@worldline.com>",
]
build = false
include = [
    "**/*.rs",
    "Cargo.toml",
    "*assets/*",
    "COPYRIGHT",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "ProSA core"
homepage = "https://worldline.com/"
readme = "README.md"
license = "LGPL-3.0-or-later"
repository = "https://github.com/worldline/ProSA"
resolver = "2"

[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"]

[features]
default = [
    "system-metrics",
    "http-proxy",
    "openssl",
    "prometheus",
]
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"]
system-metrics = ["dep:memory-stats"]

[lib]
name = "prosa"
path = "src/lib.rs"

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

[dependencies.aquamarine]
version = "0.6"

[dependencies.async-http-proxy]
version = "1"
features = [
    "runtime-tokio",
    "basic-auth",
]
optional = true

[dependencies.config]
version = "0.15"
features = [
    "toml",
    "yaml",
    "json",
    "convert-case",
]
default-features = false

[dependencies.glob]
version = "0.3"

[dependencies.log]
version = "0.4"

[dependencies.memory-stats]
version = "1"
optional = true

[dependencies.openssl]
version = "0.10"
optional = true

[dependencies.opentelemetry]
version = "0.31.0"
features = [
    "metrics",
    "trace",
    "logs",
]

[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = [
    "metrics",
    "trace",
    "logs",
    "rt-tokio",
]

[dependencies.prometheus]
version = "0.14"
optional = true
default-features = false

[dependencies.prosa-macros]
version = "0.4.1"

[dependencies.prosa-utils]
version = "0.4.1"
features = [
    "msg",
    "config",
    "config-observability",
]

[dependencies.rlimit]
version = "0.10"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_yaml]
version = "0.9"

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "fs",
    "macros",
    "net",
    "parking_lot",
    "rt",
    "rt-multi-thread",
    "signal",
    "sync",
    "time",
]

[dependencies.tokio-openssl]
version = "0.6"
optional = true

[dependencies.toml]
version = "0.9"

[dependencies.tracing]
version = "0.1"

[dependencies.url]
version = "2"
features = ["serde"]

[dev-dependencies.futures-util]
version = "0.3"
default-features = false