Commit Graph

2145 Commits

Author SHA1 Message Date
Sean McArthur
8b878a805a perf(client): change HttpConnecting to hold Arc<Config> instead of inlined fields 2019-10-23 16:21:51 -07:00
Sean McArthur
f71304b449 refactor(client): use pin_project for Resolve futures 2019-10-23 14:37:03 -07:00
Sean McArthur
10cda4beff refactor(http2): replace server Unpin impl with pin_project 2019-10-22 18:33:05 -07:00
Sean McArthur
3ee47199d9 refactor(client): de-duplicate HttpConnector::call code 2019-10-22 17:50:13 -07:00
Sean McArthur
d67e49f149 feat(client): change Connect trait into an alias for Service
The `Connect` trait is now essentially an alias for
`Service<Destination>`, with a blanket implementation as such, and is
sealed.

Closes #1902

BREAKING CHANGE: Any manual implementations of `Connect` must instead
  implement `tower::Service<Destination>`.
2019-10-22 14:40:23 -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
2d6bbd2cd8 chore(ci): re-enable CI running on beta 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
Sean McArthur
8e7ebd80cd refactor(error): update Debug for Error to output 'hyper::Error' 2019-10-17 12:18:53 -07:00
Christopher Vittal
1235f1de9a docs(service): remove reference to service_fn_ok (#1978)
This function has been otherwise removed and the link was broken.
2019-10-17 10:22:30 -07:00
Sean McArthur
5cb95bdda4 test(benches): add http2 chunks benchmark with default window size 2019-10-15 18:29:33 -07:00
Sean McArthur
51cdbea826 test(benches): add end-to-end chunked benchmarks 2019-10-15 18:05:57 -07:00
Steven Fackler
4179297ac9 feat(client): Add connect timeout to HttpConnector (#1972)
This takes the same strategy as golang, where the timeout value is
divided equally between the candidate socket addresses.

If happy eyeballs is enabled, the division takes place "below" the
IPv4/IPv6 partitioning.
2019-10-14 11:48:17 -07:00
Ben Boeckel
536b1e184e fix(dependencies): require correct bytes minimum version (#1975)
`Bytes::advance` was introduced in this version.
2019-10-14 11:28:41 -07:00
Steven Fackler
4d14712643 fix(server): Remove unneeded 'static bound of Service on Connection (#1971) 2019-10-11 16:22:36 -07:00
Sean McArthur
22695968d2 perf(http2): improve default HTTP2 flow control settings
Set default HTTP2 window sizes much larger values than the spec default.

ref #1960
2019-10-08 15:39:35 -07:00
Hamza Muric
b4dbad6dbf docs(changelog): fix mention of stream feature to unstable-stream (#1968) 2019-10-04 13:14:26 -07:00
Sean McArthur
0ef12a11a8 v0.13.0-alpha.4 2019-10-01 11:43:38 -07:00
Sean McArthur
64fe70b2f9 chore(dependencies): update http-body to alpha.3 2019-10-01 11:39:57 -07:00
Sean McArthur
353be888fa v0.13.0-alpha.3 2019-10-01 10:28:13 -07:00
Sean McArthur
7601fc6b8d chore(dependencies): update http-body to alpha.2 2019-10-01 10:25:08 -07:00
Sean McArthur
5b348b821c feat(lib): add optional tcp feature, split from runtime
The `HttpConnector` and `AddrListener` types which make use of
`tokio::tcp` have been made their own optional feature. This allows
using them without requiring the *full* tokio runtime.
2019-10-01 10:15:46 -07:00
Jon Gjengset
02b584435f chore(dependencies): Use new alpha release of h2 2019-10-01 09:39:29 -07:00
Taiki Endo
d2b0fed028 chore(dependencies): update tokio, h2, and tower 2019-10-01 06:40:41 -07:00
Taiki Endo
bcb66736fb chore(dependencies): update pin-project to 0.4 2019-10-01 06:40:41 -07:00
Sean McArthur
d40978ce08 v0.13.0-alpha.2 2019-09-24 12:21:24 -07:00
Taiki Endo
053d6497bd chore(dependencies): update tokio, h2, and tower-make 2019-09-23 12:45:37 -07:00
Steven Fackler
dc54ee199f feat(body): identify aborted body write errors 2019-09-13 10:38:14 -07:00
Sean McArthur
2b0405c48c refactor(lib): rename 'stream' feature to 'unstable-stream' 2019-09-11 16:09:49 -07:00
Sean McArthur
cea3589ef7 test(lib): deny warnings 2019-09-11 15:44:26 -07:00
Sean McArthur
d46cde1216 test(client): remove warning about disabled tests 2019-09-11 14:55:14 -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
6a176e3592 test(rewind): re-enable common::io::Rewind tests 2019-09-11 12:38:14 -07:00
Sean McArthur
8479c2aaed test(drain): re-enable drain tests 2019-09-11 11:31:02 -07:00
Sean McArthur
d36e028b21 chore(server): stop using deprecated method internally 2019-09-11 11:00:48 -07:00
Jon Gjengset
1f3a8393e8 chore(dependencies): update pin-project to 0.4.0-alpha.11 2019-09-11 10:22:12 -07:00
Jon Gjengset
cf9e5b0aa8 chore(dependencies): update pin-project to 0.4.0-alpha.10 2019-09-11 09:23:16 -07:00
memoryruins
1341cde365 refactor(examples): remove lifetime workaround in send_file example
The lifetime workaround is no longer required due to changes in
rustc. This removes the line and comment from the example.
2019-09-11 09:22:48 -07:00
Weihang Lo
144893b409 Upgrade some lib tests to async/.await version (#1882)
* test(http): use async/.await

Signed-off-by: Weihang Lo <me@weihanglo.tw>

* test(pool): use async/.await

* test(pool): pass &mut Future into PollOnce

* test(client): tests/benches using async/.await

* test(client): change due to PR #1917

* test(client): change Delay to delay fucntion

Ref: https://github.com/tokio-rs/tokio/pull/1440

* test(client): remove warning triggers
2019-09-06 09:54:11 -07:00
Sean McArthur
511ea3889b feat(body): put Stream impl for Body behind stream feature
BREAKING CHANGE: Using a `Body` as a `Stream`, and constructing one via
  `Body::wrap_stream`, require enabling the unstable `stream` feature.
2019-09-05 15:56:58 -07:00
Sean McArthur
b3e5506261 feat(server): introduce Accept trait
The `Accept` trait is used by the server types to asynchronously accept
incoming connections. This replaces the previous usage of `Stream`.

BREAKING CHANGE: Passing a `Stream` to `Server::builder` or
  `Http::serve_incoming` must be changed to pass an `Accept` instead. The
  `stream` optional feature can be enabled, and the a stream can be
  converted using `hyper::server:🉑:from_stream`.
2019-09-05 14:47:39 -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
Taiki Endo
ac45f1ac45 chore(dependencies): update pin-project to 0.4.0-alpha.9 2019-09-04 15:21:20 -07:00
Sean McArthur
0c2a727970 v0.13.0-alpha.1 2019-09-04 11:48:31 -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
Atkins
d406602c5d style(server): remove FutureExt::boxed to unify project style 2019-09-03 10:27:26 -07:00
Atkins
69c15cae5c style(common): remove FutureExt::boxed to unify project style 2019-09-03 10:27:26 -07:00