# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies
#
# If you believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)

[package]
edition = "2018"
name = "http"
version = "0.2.4"
authors = ["Alex Crichton <alex@alexcrichton.com>", "Carl Lerche <me@carllerche.com>", "Sean McArthur <sean@seanmonstar.com>"]
description = "A set of types for representing HTTP requests and responses.\n"
documentation = "https://docs.rs/http"
readme = "README.md"
keywords = ["http"]
categories = ["web-programming"]
license = "MIT/Apache-2.0"
repository = "https://github.com/hyperium/http"

[[bench]]
name = "header_map"
path = "benches/header_map/mod.rs"

[[bench]]
name = "header_name"
path = "benches/header_name.rs"

[[bench]]
name = "header_value"
path = "benches/header_value.rs"

[[bench]]
name = "method"
path = "benches/method.rs"

[[bench]]
name = "uri"
path = "benches/uri.rs"
[dependencies.bytes]
version = "1"

[dependencies.fnv]
version = "1.0.5"

[dependencies.itoa]
version = "0.4.1"
[dev-dependencies.doc-comment]
version = "0.3"

[dev-dependencies.indexmap]
version = "1.0"

[dev-dependencies.quickcheck]
version = "0.9.0"

[dev-dependencies.rand]
version = "0.7.0"

[dev-dependencies.seahash]
version = "3.0.5"

[dev-dependencies.serde]
version = "1.0"

[dev-dependencies.serde_json]
version = "1.0"
