[package]
name = "product-os-tower"
version = "0.0.4"
authors = ["Jeremy de Oliveira-Kumar <eremyj@gmail.com>"]
edition = "2021"
rust-version = "1.69"
description = "Product OS : Tower is a derivative of the tower crate restructured for both std and no_std environments."
readme = "readme.md"
license = "AGPL-3.0-only"
keywords = ["product-os"]
categories = []
build = false
exclude = []
include = []
autobins = true
autoexamples = true
autotests = true
autobenches = true
resolver = "2"
[dependencies]
no-std-compat = { version = "0.4.1", features = ["alloc"], optional = false }
core-error = { version = "0.0.1-rc4", features = [], default-features = false, optional = false }
futures-core = { version = "0.3", features = ["alloc"], default-features = false, optional = true }
futures-util = { version = "0.3", features = ["alloc"], default-features = false, optional = true }
hdrhistogram = { version = "7.0", features = [], default-features = false, optional = true }
indexmap = { version = "1.0.2", features = [], default-features = false, optional = true }
toad-hash = { version = "0.3.0", features = [], default-features = false, optional = true }
slab = { version = "0.4", features = [], default-features = false, optional = true }
tokio = { version = "1.6", features = ["sync"], default-features = false, optional = true }
tokio-stream = { version = "0.1.0", features = [], default-features = false, optional = true }
tokio-util = { version = "0.7.0", default-features = false, optional = true }
chrono = { version = "0.4.19", features = [], default-features = false, optional = false }
tracing = { version = "0.1.2", features = [], default-features = false, optional = true }
pin-project-lite = { version = "0.2.7", features = [], default-features = false, optional = true }
sync_wrapper = { version = "0.1.1", features = [], default-features = false, optional = true }
spin = { version = "0.9.8", features = [], default-features = false, optional = true }
libm = { version = "0.2.8", features = [], default-features = false, optional = true }
tower = { version = "0.4.13", features = [], default-features = false, optional = true }
product-os-tower-layer = { version = ">= 0.0.1", features = [], default-features = false, optional = false }
product-os-tower-service = { version = ">= 0.0.1", features = [], default-features = false, optional = false }
product-os-async-executor = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-security = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-semaphore = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
[patch.crates-io]
product-os-tower-layer = { path = "../product-os-tower-layer", features = [], default-features = false, optional = false }
product-os-tower-service = { path = "../product-os-tower-service", features = [], default-features = false, optional = false }
product-os-async-executor = { path = "../product-os-async-executor", features = [], default-features = false, optional = true }
product-os-security = { path = "../product-os-security", features = [], default-features = false, optional = true }
product-os-semaphore = { path = "../product-os-semaphore", features = [], default-features = false, optional = true }
[features]
default = ["std"]
std = ["no-std-compat/std", "tower"]
__common = ["futures-core", "pin-project-lite"]
full = [
"discover",
"filter",
"hedge",
"limit",
"load",
"load-shed",
"make",
"ready-cache",
"reconnect",
"retry",
"spawn-ready",
"steer",
"timeout",
"util",
]
balance = ["discover", "load", "ready-cache", "make", "slab", "util"]
discover = ["__common"]
filter = ["__common", "futures-util"]
limit = ["__common", "tracing", "chrono/alloc", "product-os-semaphore", "product-os-async-executor", "product-os-async-executor/moment"]
load = ["__common", "tracing", "chrono/alloc", "spin/mutex", "spin/spin_mutex", "libm", "product-os-async-executor/moment"]
load-shed = ["__common"]
log = ["tracing/log"]
make = ["futures-util", "pin-project-lite", "product-os-async-executor"]
ready-cache = ["futures-core", "futures-util", "indexmap", "tracing", "pin-project-lite", "product-os-security/hasher"]
reconnect = ["make", "tracing"]
retry = ["__common", "util", "chrono/alloc", "spin/mutex", "spin/spin_mutex", "product-os-async-executor", "product-os-async-executor/moment"]
steer = []
timeout = ["pin-project-lite", "product-os-async-executor"]
util = ["__common", "futures-util", "pin-project-lite", "sync_wrapper", "product-os-security/hasher"]
tokio_async = ["tokio/io-std"]
hedge = ["util", "filter", "futures-util", "hdrhistogram", "tokio/time", "tracing"]
buffer = ["__common", "tokio/sync", "tokio/rt", "tokio-util", "tracing"]
spawn-ready = ["__common", "futures-util", "tokio/sync", "tokio/rt", "util", "tracing"]
[workspace]