[package]
name = "hyper"
version = "1.10.1"
description = "A protective and efficient HTTP library for all."
readme = "README.md"
homepage = "https://hyper.rs"
documentation = "https://docs.rs/hyper"
repository = "https://github.com/hyperium/hyper"
license = "MIT"
authors = ["Sean McArthur <sean@seanmonstar.com>"]
keywords = ["http", "hyper", "hyperium"]
categories = ["network-programming", "web-programming::http-client", "web-programming::http-server"]
edition = "2021"
rust-version = "1.63"
include = [
"Cargo.toml",
"LICENSE",
"src/**/*",
]
[dependencies]
bytes = "1.2"
http = "1"
http-body = "1"
tokio = { version = "1", features = ["sync"] }
atomic-waker = { version = "1.1.2", optional = true }
futures-channel = { version = "0.3", optional = true }
futures-core = { version = "0.3.31", optional = true }
futures-util = { version = "0.3", default-features = false, features = ["alloc"], optional = true }
h2 = { version = "0.4.14", optional = true }
http-body-util = { version = "0.1", optional = true }
httparse = { version = "1.9", optional = true }
httpdate = { version = "1.0", optional = true }
itoa = { version = "1", optional = true }
pin-project-lite = { version = "0.2.4", optional = true }
smallvec = { version = "1.12", features = ["const_generics", "const_new"], optional = true }
tracing = { version = "0.1", default-features = false, features = ["std"], optional = true }
want = { version = "0.3", optional = true }
[dev-dependencies]
form_urlencoded = "1"
futures-channel = { version = "0.3", features = ["sink"] }
futures-util = { version = "0.3", default-features = false, features = ["alloc", "sink"] }
http-body-util = "0.1"
pretty_env_logger = "0.5"
pin-project-lite = "0.2.4"
spmc = "0.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tracing = "0.1"
tracing-subscriber = "0.3"
tokio = { version = "1", features = [
"fs",
"macros",
"net",
"io-std",
"io-util",
"rt",
"rt-multi-thread",
"sync",
"time",
"test-util",
] }
tokio-test = "0.4"
tokio-util = "0.7.10"
[features]
default = []
full = [
"client",
"http1",
"http2",
"server",
]
http1 = ["dep:atomic-waker", "dep:futures-channel", "dep:futures-core", "dep:httparse", "dep:itoa"]
http2 = ["dep:futures-channel", "dep:futures-core", "dep:h2"]
client = ["dep:want", "dep:pin-project-lite", "dep:smallvec"]
server = ["dep:httpdate", "dep:pin-project-lite", "dep:smallvec"]
ffi = ["dep:http-body-util", "dep:futures-util"]
capi = []
tracing = ["dep:tracing"]
nightly = []
[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = [
'cfg(hyper_unstable_tracing)',
'cfg(hyper_unstable_ffi)'
]
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
restriction = { level = "warn", priority = -2 }
arithmetic_side_effects = "allow"
as_conversions = "allow"
borrow_as_ptr = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
checked_conversions = "allow"
collapsible_match = "allow"
decimal_literal_representation = "allow"
default_trait_access = "allow"
else_if_without_else = "allow"
empty_structs_with_brackets = "allow"
enum_glob_use = "allow"
explicit_iter_loop = "allow"
float_arithmetic = "allow"
ignored_unit_patterns = "allow"
indexing_slicing = "allow"
integer_division = "allow"
integer_division_remainder_used = "allow"
large_enum_variant = "allow"
let_unit_value = "allow"
manual_assert_eq = "allow"
map_err_ignore = "allow"
map_unwrap_or = "allow"
match_wild_err_arm = "allow"
missing_fields_in_debug = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
multiple_inherent_impl = "allow"
multiple_unsafe_ops_per_block = "allow"
needless_continue = "allow"
needless_pass_by_value = "allow"
panic = "allow"
pattern_type_mismatch = "allow"
ptr_as_ptr = "allow"
question_mark = "allow"
redundant_closure_for_method_calls = "allow"
redundant_else = "allow"
ref_option = "allow"
ref_patterns = "allow"
semicolon_if_nothing_returned = "allow"
single_char_lifetime_names = "allow"
single_match_else = "allow"
struct_excessive_bools = "allow"
trivially_copy_pass_by_ref = "allow"
undocumented_unsafe_blocks = "allow"
uninlined_format_args = "allow"
unnecessary_semicolon = "allow"
unnecessary_trailing_comma = "allow"
unnested_or_patterns = "allow"
unused_async = "allow"
unused_trait_names = "allow"
unwrap_in_result = "allow"
useless_borrows_in_formatting = "allow"
wildcard_enum_match_arm = "allow"
absolute_paths = "allow"
arbitrary_source_item_ordering = "allow"
blanket_clippy_restriction_lints = "allow"
clone_on_ref_ptr = "allow"
cognitive_complexity = "allow"
default_numeric_fallback = "allow"
expect_used = "allow"
error_impl_error = "allow"
field_scoped_visibility_modifiers = "allow"
if_not_else = "allow"
if_then_some_else_none = "allow"
items_after_statements = "allow"
implicit_return = "allow"
impl_trait_in_params = "allow"
inline_modules = "allow"
inline_trait_bounds = "allow"
let_underscore_must_use = "allow"
let_underscore_untyped = "allow"
mod_module_files = "allow"
module_inception = "allow"
min_ident_chars = "allow"
missing_assert_message = "allow"
missing_docs_in_private_items = "allow"
missing_inline_in_public_items = "allow"
missing_trait_methods = "allow"
must_use_candidate = "allow"
module_name_repetitions = "allow"
new_without_default = "allow"
panic_in_result_fn = "allow"
pub_use = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
unreachable = "allow"
renamed_function_params = "allow"
same_name_method = "allow"
shadow_reuse = "allow"
shadow_same = "allow"
shadow_unrelated = "allow"
single_call_fn = "allow"
self_named_module_files = "deny"
semicolon_inside_block ="allow"
semicolon_outside_block ="allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "allow"
struct_field_names = "allow"
too_many_lines = "allow"
type_complexity = "allow"
used_underscore_items = "allow"
unnecessary_safety_comment = "allow"
unseparated_literal_suffix = "allow"
[package.metadata.docs.rs]
features = ["ffi", "full", "tracing"]
rustdoc-args = ["--cfg", "hyper_unstable_ffi", "--cfg", "hyper_unstable_tracing"]
[package.metadata.playground]
features = ["full"]
[package.metadata.capi.header]
generation = false
subdirectory = false
[package.metadata.capi.install.include]
asset = [{ from="capi/include/hyper.h" }]
[profile.release]
codegen-units = 1
incremental = false
[profile.bench]
codegen-units = 1
incremental = false
[[example]]
name = "client"
path = "examples/client.rs"
required-features = ["full"]
[[example]]
name = "client_json"
path = "examples/client_json.rs"
required-features = ["full"]
[[example]]
name = "echo"
path = "examples/echo.rs"
required-features = ["full"]
[[example]]
name = "gateway"
path = "examples/gateway.rs"
required-features = ["full"]
[[example]]
name = "graceful_shutdown"
path = "examples/graceful_shutdown.rs"
required-features = ["full"]
[[example]]
name = "hello"
path = "examples/hello.rs"
required-features = ["full"]
[[example]]
name = "http_proxy"
path = "examples/http_proxy.rs"
required-features = ["full"]
[[example]]
name = "multi_server"
path = "examples/multi_server.rs"
required-features = ["full"]
[[example]]
name = "params"
path = "examples/params.rs"
required-features = ["full"]
[[example]]
name = "send_file"
path = "examples/send_file.rs"
required-features = ["full"]
[[example]]
name = "service_struct_impl"
path = "examples/service_struct_impl.rs"
required-features = ["full"]
[[example]]
name = "single_threaded"
path = "examples/single_threaded.rs"
required-features = ["full"]
[[example]]
name = "state"
path = "examples/state.rs"
required-features = ["full"]
[[example]]
name = "upgrades"
path = "examples/upgrades.rs"
required-features = ["full"]
[[example]]
name = "web_api"
path = "examples/web_api.rs"
required-features = ["full"]
[[bench]]
name = "body"
path = "benches/body.rs"
required-features = ["full"]
[[bench]]
name = "connect"
path = "benches/connect.rs"
required-features = ["full"]
[[bench]]
name = "end_to_end"
path = "benches/end_to_end.rs"
required-features = ["full"]
[[bench]]
name = "pipeline"
path = "benches/pipeline.rs"
required-features = ["full"]
[[bench]]
name = "server"
path = "benches/server.rs"
required-features = ["full"]
[[test]]
name = "client"
path = "tests/client.rs"
required-features = ["full"]
[[test]]
name = "integration"
path = "tests/integration.rs"
required-features = ["full"]
[[test]]
name = "ready_on_poll_stream"
path = "tests/ready_on_poll_stream.rs"
required-features = ["full"]
[[test]]
name = "unbuffered_stream"
path = "tests/unbuffered_stream.rs"
required-features = ["full"]
[[test]]
name = "server"
path = "tests/server.rs"
required-features = ["full"]