[package]
name = "aws-smithy-types"
version = "1.2.0"
authors = [
    "AWS Rust SDK Team <aws-sdk-rust@amazon.com>",
    "Russell Cohen <rcoh@amazon.com>",
]
description = "Types for smithy-rs codegen."
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/smithy-lang/smithy-rs"

[features]
byte-stream-poll-next = []
http-body-0-4-x = ["dep:http-body-0-4", "dep:http"]
http-body-1-x = ["dep:http-body-1-0", "dep:http-body-util", "dep:http-body-0-4", "dep:http-1x", "dep:http"]
hyper-0-14-x = ["dep:hyper-0-14"]
rt-tokio = [
    "dep:http-body-0-4",
    "dep:tokio-util",
    "dep:tokio",
    "tokio?/rt",
    "tokio?/fs",
    "tokio?/io-util",
    "tokio-util?/io",
    "dep:futures-core",
    "dep:http"
]
test-util = []
serde-serialize = []
serde-deserialize = []

[dependencies]
base64-simd = "0.8"
bytes = "1"
bytes-utils = "0.1"
http = { version = "0.2.3", optional = true }
http-1x = { package = "http", version = "1", optional = true }
http-body-0-4 = { package = "http-body", version = "0.4.4", optional = true }
http-body-1-0 = { package = "http-body", version = "1", optional = true }
http-body-util = { version = "0.1.0", optional = true }
hyper-0-14 = { package = "hyper", version = "0.14.26", optional = true }
itoa = "1.0.0"
num-integer = "0.1.44"
pin-project-lite = "0.2.9"
pin-utils = "0.1.0"
ryu = "1.0.5"
time = { version = "0.3.4", features = ["parsing"] }

# ByteStream internals
futures-core = { version = "0.3.29", optional = true }
tokio = { version = "1.23.1", optional = true }
tokio-util = { version = "0.7", optional = true }

[dev-dependencies]
base64 = "0.13.0"
ciborium = { version = "0.2.1" }
lazy_static = "1.4"
proptest = "1"
rand = "0.8.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1.23.1", features = [
    "macros",
    "rt",
    "rt-multi-thread",
    "fs",
    "io-util",
] }
# This is used in a doctest, don't listen to udeps.
tokio-stream = "0.1.5"
tempfile = "3.2.0"

criterion = "0.5"

[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
rustdoc-args = ["--cfg", "docsrs"]
# End of docs.rs metadata

# make sure to keep crate stability in sync with the second element of the following tuple in
# buildSrc/src/main/kotlin/CrateSet.kt:
#  Crate("aws-smithy-types", STABLE_VERSION_PROP_NAME),
[package.metadata.smithy-rs-release-tooling]
stable = true

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

[target."cfg(aws_sdk_unstable)".dependencies.serde]
version = "1"
features = ["derive"]
