| [package] |
| name = "tower" |
| # When releasing to crates.io: |
| # - Update doc url |
| # - Cargo.toml |
| # - README.md |
| # - Update CHANGELOG.md. |
| # - Create "vX.X.X" git tag. |
| version = "0.4.13" |
| authors = ["Tower Maintainers <[email protected]>"] |
| license = "MIT" |
| readme = "README.md" |
| repository = "https://github.com/tower-rs/tower" |
| homepage = "https://github.com/tower-rs/tower" |
| documentation = "https://docs.rs/tower/0.4.13" |
| description = """ |
| Tower is a library of modular and reusable components for building robust |
| clients and servers. |
| """ |
| categories = ["asynchronous", "network-programming"] |
| keywords = ["io", "async", "non-blocking", "futures", "service"] |
| edition = "2018" |
| rust-version = "1.49.0" |
| |
| [features] |
| default = ["log"] |
| |
| # 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", |
| ] |
| # FIXME: Use weak dependency once available (https://github.com/rust-lang/cargo/issues/8832) |
| log = ["tracing/log"] |
| balance = ["discover", "load", "ready-cache", "make", "rand", "slab"] |
| buffer = ["__common", "tokio/sync", "tokio/rt", "tokio-util", "tracing"] |
| discover = ["__common"] |
| filter = ["__common", "futures-util"] |
| hedge = ["util", "filter", "futures-util", "hdrhistogram", "tokio/time", "tracing"] |
| limit = ["__common", "tokio/time", "tokio/sync", "tokio-util", "tracing"] |
| load = ["__common", "tokio/time", "tracing"] |
| load-shed = ["__common"] |
| make = ["futures-util", "pin-project-lite", "tokio/io-std"] |
| ready-cache = ["futures-core", "futures-util", "indexmap", "tokio/sync", "tracing", "pin-project-lite"] |
| reconnect = ["make", "tokio/io-std", "tracing"] |
| retry = ["__common", "tokio/time"] |
| spawn-ready = ["__common", "futures-util", "tokio/sync", "tokio/rt", "util", "tracing"] |
| steer = [] |
| timeout = ["pin-project-lite", "tokio/time"] |
| util = ["__common", "futures-util", "pin-project"] |
| |
| [dependencies] |
| tower-layer = { version = "0.3.1", path = "../tower-layer" } |
| tower-service = { version = "0.3.1", path = "../tower-service" } |
| |
| futures-core = { version = "0.3", optional = true } |
| futures-util = { version = "0.3", default-features = false, features = ["alloc"], optional = true } |
| hdrhistogram = { version = "7.0", optional = true, default-features = false } |
| indexmap = { version = "1.0.2", optional = true } |
| rand = { version = "0.8", features = ["small_rng"], optional = true } |
| slab = { version = "0.4", optional = true } |
| tokio = { version = "1.6", optional = true, features = ["sync"] } |
| tokio-stream = { version = "0.1.0", optional = true } |
| tokio-util = { version = "0.7.0", default-features = false, optional = true } |
| tracing = { version = "0.1.2", default-features = false, features = ["std"], optional = true } |
| pin-project = { version = "1", optional = true } |
| pin-project-lite = { version = "0.2.7", optional = true } |
| |
| [dev-dependencies] |
| futures = "0.3" |
| hdrhistogram = { version = "7.0", default-features = false } |
| pin-project-lite = "0.2.7" |
| tokio = { version = "1.6.2", features = ["macros", "sync", "test-util", "rt-multi-thread"] } |
| tokio-stream = "0.1" |
| tokio-test = "0.4" |
| tower-test = { version = "0.4", path = "../tower-test" } |
| tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "ansi"] } |
| http = "0.2" |
| lazy_static = "1.4.0" |
| |
| [package.metadata.docs.rs] |
| all-features = true |
| rustdoc-args = ["--cfg", "docsrs"] |
| |
| [package.metadata.playground] |
| features = ["full"] |
| |
| [[example]] |
| name = "tower-balance" |
| path = "examples/tower-balance.rs" |
| required-features = ["full"] |