Commit Graph

206 Commits

Author SHA1 Message Date
Sean McArthur
a354580e3f perf(body): reduce memory size of Body by a u64 (#2118)
Replaces the `Option<u64>` content-length with a `DecodedLength`, which
stores its unknown-ness as `u64::MAX`.
2020-01-27 13:09:40 -08:00
Sean McArthur
1881db6391 fix(http1): remove panic for HTTP upgrades that have been ignored (#2115)
Closes #2114
2020-01-23 16:41:40 -08:00
danieleades
0eaf304644 style(lib): address most clippy lints 2020-01-03 09:40:32 -08:00
danieleades
0f13719873 refactor(error): remove deprecated 'Error::description' method (#2092) 2019-12-30 09:55:08 -08:00
guoyunlong16
fb90d30c02 fix(http2): don't add client content-length if method doesn't require it 2019-12-26 10:41:52 -08:00
Vivek Ghaisas
35825c4614 style(comments): correct some typos in Rust code comments 2019-12-20 10:16:36 -08:00
Sean McArthur
cb71d2cdbd fix(http1): fix response with non-chunked transfer-encoding to be close-delimited
Closes #2058
2019-12-12 14:26:56 -08:00
Sean McArthur
e12329054a refactor(http1): fix for unused must_use on read_buf.split_to 2019-12-12 14:17:33 -08:00
Sean McArthur
d1f6136ce2 test(http1): only enable WriteBuf non-empty test with debug-assertions
Closes #2062
2019-12-12 12:12:32 -08:00
Sean McArthur
a07142da2d refactor(client): remove Unpin requirement from request body 2019-12-11 14:18:56 -08:00
Sean McArthur
52cc3f7367 refactor(client): remove Unpin requirement on Body::Data 2019-12-11 14:18:56 -08:00
Sean McArthur
245fa9c44c refactor(server): remove Unpin requirement from the Body generic 2019-12-06 13:27:08 -08:00
Sean McArthur
8ba9a8d2c4 feat(body): add body::aggregate and body::to_bytes functions
Adds utility functions to `hyper::body` to help asynchronously
collecting all the buffers of some `HttpBody` into one.

- `aggregate` will collect all into an `impl Buf` without copying the
  contents. This is ideal if you don't need a contiguous buffer.
- `to_bytes` will copy all the data into a single contiguous `Bytes`
  buffer.
2019-12-06 10:03:05 -08:00
Sean McArthur
5a59875742 feat(body): replace Chunk type with Bytes
Closes #1931

BREAKING CHANGE: All usage of `hyper::Chunk` should be replaced with
  `bytes::Bytes` (or `hyper::body::Bytes`).
2019-12-05 17:22:13 -08:00
Sean McArthur
0dc89680cd style(lib): run rustfmt and enforce in CI 2019-12-05 13:55:17 -08:00
Sean McArthur
aa66de4f27 refactor(h1): un-split record_header_indicies for ARM 2019-12-04 16:58:35 -08:00
Sean McArthur
cb3f39c2dc feat(lib): update Tokio, bytes, http, h2, and http-body 2019-12-04 10:56:34 -08:00
Daniel Johnson
71d088d3d0 chore(dependencies): update futures to 0.3.1 2019-11-14 10:04:16 -08:00
Sean McArthur
039281b89c fix(client): fix polling dispatch channel after it has closed 2019-10-30 14:34:19 -07:00
Sean McArthur
10cda4beff refactor(http2): replace server Unpin impl with pin_project 2019-10-22 18:33:05 -07:00
Sean McArthur
4f2743991c feat(service): rename Service to HttpService, re-export tower::Service`
The only important trait for a user is the `tower::Service` trait, which
is now available also at `hyper::service::Service`. The other "trait
aliases" are no longer publicly exported, as people thought they had to
implement them.

Also removes dependency on `tower-make`, which is trivial but otherwise
shouldn't affect anyone.

Closes #1959
2019-10-21 11:01:28 -07:00
Sean McArthur
ca5836f1ec fix(server): ignore expect-continue with no body in debug mode
Closes #1843
2019-10-18 15:44:01 -07:00
Sean McArthur
a1fe383c9d refactor(http1): notice eof in the try_keep_alive method 2019-10-18 15:16:07 -07:00
Sean McArthur
7e31fd88a8 feat(server): change http1_half_close option default to disabled
Detecting a read hangup is a useful way to determine that a connection
has closed. It's also possible that a client shuts down its read half
without closing the connection, but this is rarer. Thus, by default,
hyper will now assume a read EOF means the connection has closed.

BREAKING CHANGE: The server's behavior will now by default close
  connections when receiving a read EOF. To allow for clients to close
  the read half, call `http1_half_close(true)` when configuring a
  server.
2019-10-18 13:34:23 -07:00
Taiki Endo
bcb66736fb chore(dependencies): update pin-project to 0.4 2019-10-01 06:40:41 -07:00
Sean McArthur
cea3589ef7 test(lib): deny warnings 2019-09-11 15:44:26 -07:00
Sean McArthur
6842c44a43 test(h1): re-enable h1 decoder tests 2019-09-11 14:49:14 -07:00
Sean McArthur
463982cda5 test(h1): re-enable h1 dispatch tests 2019-09-11 13:56:14 -07:00
Sean McArthur
0867ad5c15 fix(client): allow client GET requests with explicit body headers
Closes #1925
2019-09-04 15:22:30 -07:00
Aaron Hill
4c552a4960 refactor(lib): Use pin-project crate to perform pin projections
Remove all pin-related `unsafe` code from Hyper, as well as the
now-unused 'pin-utils' dependency.
2019-09-03 12:31:35 -07:00
Sean McArthur
946275dd1f perf(body): re-enable optimization for full-data Bodies 2019-08-30 16:44:10 -07:00
Sean McArthur
3c6f7999cd wip: body typeid full data 2019-08-30 16:23:28 -07:00
Sean McArthur
62a96c077b feat(body): change Sender::send_data to an async fn.
The previous version is renamed to `try_send_data`.

BREAKING CHANGE: Usage of `send_data` should either be changed to
  async/await or use `try_send_data`.
2019-08-30 16:04:07 -07:00
Lucio Franco
79c32f8953 feat(body): Update Payload to be a trait alias of http_body::Body (#1908) 2019-08-22 14:13:27 -07:00
Sean McArthur
49b12c415d refactor(lib): fix remaining lint warnings (besides tests) 2019-08-22 13:57:50 -07:00
Sean McArthur
7b1d6d71b7 refactor(lib): fix many lint warnings 2019-08-21 11:58:02 -07:00
lzutao
fc7f81b67c style(lib): use rust 2018 edition idioms (#1910) 2019-08-21 11:22:07 -07:00
Sean McArthur
fc784913a3 chore(dependencies): update to newer h2 2019-08-20 16:24:34 -07:00
Lucio Franco
ec520d5602 feat(service): use tower_service::Service for hyper::service 2019-08-20 12:01:06 -07:00
Sean McArthur
41f4173615 refactor(http2): re-enable http2 client and server support 2019-08-19 15:55:49 -07:00
Sean McArthur
1f6575279e test(h1): re-enable the proto::h1::io tests 2019-07-16 14:22:17 -07:00
Sean McArthur
5da17df97f chore(lib): individually disable tests and examples that aren't updated 2019-07-12 13:44:03 -07:00
Sean McArthur
8f4b05ae78 feat(lib): update to std::future::Future
BREAKING CHANGE: All usage of async traits (`Future`, `Stream`,
`AsyncRead`, `AsyncWrite`, etc) are updated to newer versions.
2019-07-09 15:55:22 -07:00
Sean McArthur
da9b0319ef refactor(lib): update to 2018 edition 2019-07-09 15:16:01 -07:00
Sean McArthur
3e2f19e5bb chore(lib): allow deprecated mem::uninitialized 2019-07-08 16:17:03 -07:00
Sean McArthur
3446af020b refactor(http1): detect whether a Token parse error is for method or uri 2019-07-03 15:06:44 -07:00
Sean McArthur
8316f96d80 fix(http1): force always-ready connections to yield after a few spins 2019-06-14 13:35:54 -07:00
Sean McArthur
50198851a2 fix(http2): correctly propagate HTTP2 request cancellation 2019-06-03 14:39:35 -07:00
Sean McArthur
01c03db7ea chore(lib): add dyn keyword to trait objects (#1820)
Requires Rust 1.27.
2019-06-03 13:08:13 -07:00
João Oliveira
b342c38f08 fix(server): skip automatic Content-Length header for HTTP 304 responses
Closes #1797
2019-05-07 12:53:25 -07:00