Sean McArthur
2553ea1a7a
feat(client): expose hyper::client::connect::Connect trait alias
...
This is *just* a "trait alias". It is automatically implemented for all
`Service<Uri>`s that have the required bounds. It's purpose being public
is to ease setting trait bounds outside of hyper. Therefore, it doesn't
have any exposed associated types, to prevent otherwise relying on any
super-traits that hyper requires.
2019-12-12 11:58:05 -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
57ef271500
docs(lib): fix broken intra docs links
2019-12-11 13:23:36 -08:00
Frank Denis
164feec941
docs(client): a custom connector must be implement the Clone trait ( #2064 )
2019-12-10 09:35:39 -08:00
Sean McArthur
7e91029e0e
docs(client): update client example to use to_bytes
2019-12-06 15:50:02 -08:00
Sean McArthur
71101e701f
docs(client): show how to implement a Connector
2019-12-06 11:58:01 -08:00
Sean McArthur
0dc89680cd
style(lib): run rustfmt and enforce in CI
2019-12-05 13:55:17 -08:00
Sean McArthur
b0060f277e
chore(CI): enable GitHub Actions
2019-12-05 13:12:35 -08:00
David Barsky
edbd10ac96
feat(client): impl tower_service::Service for Client
2019-12-05 11:37:43 -08:00
Sean McArthur
a738d03fd3
chore(dependencies): update to http-body 0.3
2019-12-04 16:48:06 -08:00
Sean McArthur
4d7a2266b8
feat(client): change connectors to return an impl Connection
...
Instead of returning a tuple `(impl AsyncRead + AsyncWrite, Connected)`,
this adds a new trait, `hyper::client::connect::Connection`, which
allows querying the connection type for a `Connected`.
BREAKING CHANGE: Connectors no longer return a tuple of
`(T, Connected)`, but a single `T: Connection`.
2019-12-04 16:15:28 -08:00
Sean McArthur
319e8aee15
feat(client): remove Destination for http::Uri in connectors
...
BREAKING CHANGE: All usage of `hyper::client::connect::Destination`
should be replaced with `http::Uri`.
2019-12-04 16:15:28 -08:00
Sean McArthur
9645a125e6
refactor(client): return HttpConnecting newtype
2019-12-04 14:06:16 -08:00
Markus Westerlind
30ac01c180
refactor(client): use async/await in HttpConnector ( #2019 )
...
Closes #1984
2019-12-04 13:39:56 -08:00
Sean McArthur
cb3f39c2dc
feat(lib): update Tokio, bytes, http, h2, and http-body
2019-12-04 10:56:34 -08:00
James Le Cuirot
131962c86a
feat(client): filter remote IP addresses by family of given local IP address
...
It is not possible to connect to an IPv4 address from an IPv6 address or
vice-versa so don't waste time trying. If no remote addresses match then a
"missing connect error" will now occur.
2019-11-19 10:36:07 -08:00
Daniel Johnson
71d088d3d0
chore(dependencies): update futures to 0.3.1
2019-11-14 10:04:16 -08:00
Sean McArthur
9d9233ce7c
feat(client): change Resolve to be Service<Name>
...
Closes #1903
BREAKING CHANGE: The `Resolve` trait is gone. All custom resolves should
implement `tower::Service` instead.
The error type of `HttpConnector` has been changed away from
`std::io::Error`.
2019-11-12 13:08:39 -08:00
Dirkjan Ochtman
de5dcd7865
refactor(lib): use dedicated enums for connection protocol versions
...
This should make it easier to add H3 functionality.
2019-10-30 14:03:29 -07:00
Sean McArthur
e6027bc02d
fix(client): fix panic from unreachable code
2019-10-30 13:45:23 -07:00
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
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
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
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
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
Taiki Endo
053d6497bd
chore(dependencies): update tokio, h2, and tower-make
2019-09-23 12:45:37 -07:00
Sean McArthur
d46cde1216
test(client): remove warning about disabled tests
2019-09-11 14:55:14 -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
Lucio Franco
eee2a72879
feat(client): provide tower::Service support for clients ( #1915 )
2019-08-30 12:54:22 -07:00
Alex Gaynor
eef407d60e
docs(client): Remove comment that had grown out of date ( #1918 )
2019-08-30 11:14:56 -07:00
Sean McArthur
049b5132db
feat(client): change GaiResolver to use a global blocking threadpool
...
BREAKING CHANGE: Calls to `GaiResolver::new` and `HttpConnector::new` no
longer should pass an integer argument for the number of threads.
2019-08-29 14:16:43 -07:00
Sean McArthur
5b1feb8a3c
refactor(lib): update to tokio alpha.4
2019-08-29 13:12:44 -07:00
Daniel Johnson
536779e16c
refactor(dns): migrate deprecated trim_{left,right} -> trim_{start,end}
2019-08-29 11:12:56 -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
lzutao
ae75b3a732
chore(lib): remove async_await feature gate ( #1909 )
...
`async_await` is stabilized in rust-lang/rust#63209 .
2019-08-21 11:09:14 -07:00
Sean McArthur
7508bd87b0
refactor(client): restore handshake to by-ref
2019-08-19 16:10:57 -07:00
Sean McArthur
41f4173615
refactor(http2): re-enable http2 client and server support
2019-08-19 15:55:49 -07:00
Douman
4920f5e264
chore(dependencies): Upgrade tokio
2019-08-19 09:00:21 -07:00
Kyle Huey
a503f8b336
fix(client): impl<T: Connect> Connect for Box<T> ( #1889 )
2019-08-14 14:10:40 -07:00
Sean McArthur
1d00bb29d4
chore(client): re-enable client's custom executor config
2019-07-19 14:18:10 -07:00
Weihang Lo
c71abe5c20
docs(client): doc tests to async/await
2019-07-15 11:21:16 -07:00
Weihang Lo
e90f0037d3
docs(client): HttpInfo doc test to async/await
2019-07-15 11:21:16 -07:00
Weihang Lo
e0c1090ca7
docs(client): send_request doc test to async/await
2019-07-15 11:21:16 -07:00
Sean McArthur
5da17df97f
chore(lib): individually disable tests and examples that aren't updated
2019-07-12 13:44:03 -07:00