[package] name = "product-os-tower" version = "0.0.4" # version - The version of the package. authors = ["Jeremy de Oliveira-Kumar "] # authors - The authors of the package. edition = "2021" # edition - The Rust edition. 2021 rust-version = "1.69" # rust-version - The minimal supported Rust version. min 1.69 description = "Product OS : Tower is a derivative of the tower crate restructured for both std and no_std environments." # description - A description of the package. # documentation = "" # documentation - URL of the package documentation. readme = "readme.md" # readme - Path to the package’s README file. Use https://www.makeareadme.com/ # homepage = "" # homepage - URL of the package homepage. # repository = "" # repository - URL of the package source repository. license = "AGPL-3.0-only" # license - The package license. # license-file = "license.txt" # license-file - Path to the text of the license. Use https://choosealicense.com/ keywords = ["product-os"] # keywords - Keywords for the package. categories = [] # categories - Categories of the package. https://crates.io/category_slugs # workspace = "" # workspace - Path to the workspace for the package. build = false # build - Path to the package build script. default "build.rs" or specify # links = "" # links - Name of the native library the package links with. exclude = [] # exclude - Files to exclude when publishing. include = [] # include - Files to include when publishing. # publish = [] # publish - Can be used to prevent publishing the package. false to prevent publish, list of registries otherwise # default-run = "" # default-run - The default binary to run by cargo run. autobins = true # autobins - Disables binary auto discovery. autoexamples = true # autoexamples - Disables example auto discovery. autotests = true # autotests - Disables test auto discovery. autobenches = true # autobenches - Disables bench auto discovery. resolver = "2" # resolver - Sets the dependency resolver to use. Use 2 with 2021, 1 prior [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"] # Internal __common = ["futures-core", "pin-project-lite"] full = [ # "balance", # "buffer", "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"] # "tokio/time", "tokio/sync", "tokio-util", load = ["__common", "tracing", "chrono/alloc", "spin/mutex", "spin/spin_mutex", "libm", "product-os-async-executor/moment"] # "tokio/time", load-shed = ["__common"] log = ["tracing/log"] make = ["futures-util", "pin-project-lite", "product-os-async-executor"] # "tokio/io-std" ready-cache = ["futures-core", "futures-util", "indexmap", "tracing", "pin-project-lite", "product-os-security/hasher"] # "tokio/sync", reconnect = ["make", "tracing"] # "tokio/io-std", retry = ["__common", "util", "chrono/alloc", "spin/mutex", "spin/spin_mutex", "product-os-async-executor", "product-os-async-executor/moment"] # "tokio/time" steer = [] timeout = ["pin-project-lite", "product-os-async-executor"] # , "tokio/time" util = ["__common", "futures-util", "pin-project-lite", "sync_wrapper", "product-os-security/hasher"] # std or tokio required 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]