[package]
name = "endpoint-libs"
version = "1.3.4"
edition = "2024"
authors = ["Veon <dveonloch@protonmail.com>"]
description = "Common dependencies to be used with Pathscale projects, projects that use [endpoint-gen](https://github.com/pathscale/endpoint-gen), and projects that use honey_id-types."
repository = "https://github.com/pathscale/endpoint-libs"
readme = "README.md"
license = "MIT"
[features]
default = ["types"]
full = [
"types",
"ws",
"database",
"signal",
"scheduler",
"log_reader",
"error_aggregation",
"log_throttling",
]
types = []
ws = [
"types",
"signal",
"dep:tokio-tungstenite",
"dep:tokio-rustls",
"dep:rustls",
"dep:rustls-pemfile",
"dep:tokio",
"dep:parking_lot",
"dep:dashmap",
"dep:reqwest",
"dep:async-trait",
]
database = [
"dep:tokio",
"dep:tokio-postgres",
"dep:dashmap",
"dep:secrecy",
"dep:postgres-from-row",
"dep:deadpool-postgres",
]
signal = [
"dep:tokio",
"dep:tokio-util",
"dep:lazy_static",
]
scheduler = [
"dep:tokio",
"dep:tokio-cron-scheduler",
]
log_reader = [
"dep:tokio",
"dep:tempfile",
"dep:regex",
"dep:rev_lines",
"dep:lazy_static",
]
error_aggregation = [
"dep:tokio",
"dep:regex",
"dep:lazy_static",
]
log_throttling = ["dep:tracing-throttle"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
eyre = "0.6"
convert_case = "0.6"
itertools = "0.12"
clap = { version = "4.5", features = ["derive", "env"] }
futures = "0.3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"std",
"fmt",
] }
bytes = "1.7"
chrono = "0.4"
urlencoding = "2.1"
hex = "0.4"
rust_decimal = "1.36"
tracing-appender = "0.2"
serde_path_to_error = "0.1"
alloy-primitives = { version = "1.3.0", features = [
"std",
], default-features = false }
tokio-tungstenite = { version = "0.28", features = [
"rustls-tls-webpki-roots",
], optional = true }
tokio-rustls = { version = "0.26", optional = true }
rustls-pemfile = { version = "2.1", optional = true }
rustls = { version = "0.23", optional = true }
tokio = { version = "1.39", features = ["full"], optional = true }
tokio-util = { version = "0.7", optional = true }
tokio-cron-scheduler = { version = "0.11", optional = true }
tokio-postgres = { version = "0.7", optional = true }
postgres-from-row = { version = "0.5", optional = true }
deadpool-postgres = { version = "0.14", features = ["serde"], optional = true }
parking_lot = { version = "0.12", optional = true }
dashmap = { version = "6.0", optional = true }
reqwest = { version = "0.12", default-features = false, features = [
"rustls-tls-webpki-roots",
"charset",
"http2",
"system-proxy",
], optional = true }
secrecy = { version = "0.8", features = ["serde"], optional = true }
tempfile = { version = "3.19", optional = true }
regex = { version = "1.5", optional = true }
rev_lines = { version = "0.3", optional = true }
lazy_static = { version = "1.5", optional = true }
async-trait = { version = "0.1", optional = true }
tracing-throttle = { version = "0.4", features = ["async"], optional = true }
[dev-dependencies]
tempfile = "3.19"
tokio = { version = "1.39", features = ["full", "test-util"] }
tracing-throttle = { version = "0.4", features = ["async", "test-helpers"] }
[package.metadata.cargo-all-features]
always_include_features = ["types"]
denylist = [
"full",
"log_throttling",
]