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