[package]
name = "pravega-client"
# When releasing to crates.io:
# - Remove path dependencies
# - Update doc url
#   - Cargo.toml
#   - README.md
# - Update CHANGELOG.md.
# - Create git tag.
version = "0.3.7"
edition = "2018"
categories = ["network-programming"]
keywords = ["streaming", "client", "pravega"]
readme = "README.md"
documentation = "https://docs.rs/pravega-client/0.3.7/"
homepage = "https://www.pravega.io/"
repository = "https://github.com/pravega/pravega-client-rust"
license = "Apache-2.0"
description = "A Rust client for Pravega. (Pravega.io)"
authors = ["Tom Kaitchuck <Tom.Kaitchuck@dell.com>", "Wenqi Mou <wenqi.mou@dell.com>",
           "Sandeep Shridhar <sandeep.shridhar@dell.com>", "Wenxiao Zhang <wenxiao.zhang@dell.com>"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[workspace]
members = [
    "controller-client",
    "shared",
    "wire_protocol",
    "retry",
    "integration_test",
    "connection_pool",
    "channel",
    "auth",
    "config",
    "examples",
    "macros",
    "pravegactl",
    "nodejs",
    "golang"
]

[dependencies]
pravega-client-shared = { path = "./shared", version = "0.3"}
pravega-controller-client = { path = "./controller-client", version = "0.3"}
pravega-wire-protocol = { path = "./wire_protocol", version = "0.3"}
pravega-client-retry = {path = "./retry", version = "0.3"}
pravega-connection-pool = {path = "./connection_pool", version = "0.3" }
pravega-client-channel = {path = "./channel", version = "0.3"}
pravega-client-auth = {path = "./auth", version = "0.3"}
pravega-client-config = {path = "./config", version = "0.3"}
pravega-client-macros = {path = "./macros", version = "0.3"}
async-trait = "0.1"
futures = "0.3"
snafu = "0.6"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
tracing-futures = "0.2"
tracing-subscriber = "0.2"
rand = "0.7"
uuid = {version = "0.8", features = ["v4"]}
serde = { version = "1.0", features = ["derive"] }
chrono = "0.4"
clap = {version = "2.33", optional = true}
structopt = {version = "0.3", optional = true}
derive-new = "0.5"
futures-intrusive = "0.3"
async-stream = "0.2"
serde_cbor = "0.11"
pcg_rand = "0.11"
bytes = "0.5"
im = "15"
tokio-util = "0.3"
metrics = "0.15.1"
metrics-exporter-prometheus = "0.4.0"
enum-iterator = "0.6"
cfg-if = "1.0.0"
ahash = "0.8.6"
bincode2 = "2.0.1"
lazy_static = "1.4"
byteorder = "1.3"
tiny-keccak = { version = "2.0.0", features = ["shake"] }
futures-util = "0.3.16"

[dev-dependencies]
pravega-client-integration-test = { path = "integration_test" }
mockall = "0.8"
ordered-float = { version= "2.7", features = ["serde"]}
criterion = "0.3"
byteorder = "1.3"
lazy_static = "1.4"

[[bin]]
name = "server-cli"
path = "src/cli.rs"
#Work around for issue  https://github.com/rust-lang/cargo/issues/1982
required-features = ["cli"]

[features]
default = []
cli = []
integration-test = []

[[bench]]
name = "benchmark"
harness = false

[profile.release]
opt-level = 3
debug = false
lto = 'fat'
debug-assertions = false
codegen-units = 1

[profile.bench]
opt-level = 3
debug = true
debug-assertions = false
lto = "thin"
codegen-units = 1