2522 Commits

Author SHA1 Message Date
Sean McArthur
3524db9473 refactor(client): use a tokio-threadpool for the GaiResolver 2019-07-10 16:11:05 -07:00
Sean McArthur
0bda9ab8c2 docs(examples): update client example to use rt::main 2019-07-10 16:11:05 -07:00
Sean McArthur
ccc7c25334 chore(body): re-enable Body::wrap_stream 2019-07-10 14:17:36 -07:00
Sean McArthur
f0478c6267 feat(rt): export hyper::rt::main attribute macro
Usage:

    #[hyper::rt::main]
    async fn main() {
        // async stuff in here
    }
2019-07-10 14:12:21 -07:00
Sean McArthur
8d4ae27b42 refactor(lib): remove build script detecting rust >= 1.34 2019-07-10 10:23:48 -07:00
Sean McArthur
c2a539783d chore(dependencies): remove tokio-executor from runtime feature 2019-07-10 10:16:35 -07:00
Fuyang Liu
67c4781734 docs(examples): Update the example hello (#1852) 2019-07-10 09:43:56 -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
79ae89e066 chore(lib): prepare master for 0.13.x changes 2019-07-09 13:34:56 -07:00
Sean McArthur
5d44f8841c v0.12.32 2019-07-08 16:17:40 -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
Dietmar Maurer
cf24765a22 style(client): HttpConnector: use consistent naming - s/buf/buffer/ (#1840)
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2019-07-02 09:45:59 -07:00
Dietmar Maurer
386109c421 feat(client): HttpConnector: allow to set socket buffer sizes
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2019-07-01 11:09:04 -07:00
Sean McArthur
31ec07a387 v0.12.31 2019-06-25 16:08:24 -07:00
Sean McArthur
dc5d9cf8a7 chore(cargo): include build.rs when publishing 2019-06-25 15:19:45 -07:00
Igor Gnatenko
3e1abcf22a chore(dependencies): Update want to 0.2 (#1833) 2019-06-21 23:57:17 -07:00
Igor Gnatenko
dd563bc7ff chore(dependencies): Update pretty_env_logger to 0.3 2019-06-21 10:49:25 -07:00
Sean McArthur
6b2940631e v0.12.30 2019-06-14 13:43:00 -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
Sean McArthur
e0f5a9c6c5 v0.12.29 2019-05-16 15:20:30 -07:00
Sean McArthur
8b45af7f31 feat(server): add initial window builder methods that take self by-val (#1817)
The current `Builder` methods `http2_initial_stream_window_size` and
`http2_initial_connection_window_size` take `&mut self`, while every
other builder method takes `self`. That breaks up the chaining of
options.

This patch adds two methods that configure the same option, but take
`self` instead, and have an underscore suffix (so,
`http2_initial_stream_window_size_`).

cc #1814
2019-05-16 14:34:28 -07:00
Lucio Franco
2d9f3490aa feat(body): implement http_body::Body for hyper::Body
This adds a `http_body::Body` impl for hypers `Body`. This should
allow us to start moving to a more generic body trait based on
`BufStream` and `http-body`.
2019-05-16 14:21:42 -07:00
Sean McArthur
973f981aa5 chore(benches): add a few parallel + body end-to-end configurations 2019-05-16 13:34:13 -07:00
Andy Moran
d1183a8027 feat(client): Implement TryFrom for Destination (#1810)
Add TryFrom<Uri> impl for Destination, for compiler version >= 1.34.

Closes #1808
2019-05-08 18:39:47 -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
Sean McArthur
7fde9ba6b8 refactor(body): improve Debug format of Body 2019-04-30 14:40:21 -07:00
Sean McArthur
778421eb94 v0.12.28 2019-04-29 16:20:43 -07:00
Sean McArthur
e0ec5cad9a fix(client): detect HTTP2 connection closures sooner 2019-04-29 16:17:11 -07:00
Sean McArthur
271bba1667 refactor(error): improve organization of Error kinds
- Placed all cases of "unexpected bytes" errors into the
  `UnexpectedMessage` variant.
- Placed all cases of "unexpected EOF" errors into the
  `IncompleteMessage` variant. Description is now generic about
  "connection closed before message completed", instead of mentioning
  "request" or "response.
- Added `Error::is_incomplete_message()` accessor to help checking for
  unexpected closures.
- Renamed some variants to be clearer when viewing the `Debug` format.
- Collected all "user" errors into an internal `User` enum, to prevent
  forgetting to update the `is_user()` method.
2019-04-26 10:44:40 -07:00
quininer
4133181bb2 fix(client): fix a rare connection pool race condition
It's possible for `PoolInner::put` to happen between `Pool::take` and `Pool::waiter`. This merges `take` and `waiter` into using the same lock.
2019-04-23 13:55:34 -07:00
bishtpawan
0c1e1823f8 refactor(http1): apply a few clippy suggestions
use is_empty() instead of .len()
use if let instead of match
2019-04-23 12:56:30 -07:00
Sean McArthur
f5885f3d5d chore(lib): fix unused_mut warnings from newest nightly 2019-04-23 12:45:19 -07:00
João Oliveira
8d70baca61 feat(server): impl Sink for Body::Sender
Closes #1781
2019-04-10 10:03:12 -07:00
Sean McArthur
0f33354569 v0.12.27 2019-04-10 09:44:18 -07:00
Sean McArthur
5680d94419 fix(http2): fix import of h2::Reason to work on 1.26 2019-04-09 14:06:33 -07:00
Ole Herman Schumacher Elgesem
b3deb0cbed docs(server): show JSON deserialization in API example (#1791)
The previous version only showed a JSON GET API.
Deserializing the body of a POST request is not
trivial so the example should show it.

The new example takes the JSON body sent in a
POST request, deserializes it, adds a field, then
serializes it and sends it back.

Signed-off-by: Ole Herman Schumacher Elgesem <oleherman93@gmail.com>
2019-04-09 14:05:16 -07:00
Sean McArthur
2ef562a165 v0.12.26 2019-04-09 12:52:41 -07:00
Sean McArthur
42c5efc085 fix(http2): send a GOAWAY when the user's Service::poll_ready errors
The `Error::source()` is searched for an `h2::Error` to allow sending
different error codes in the GOAWAY. If none is found, it defaults to
`INTERNAL_ERROR`.
2019-04-09 12:49:43 -07:00
Sean McArthur
c7a046c518 refactor(http1): fix redundant imports 2019-04-01 18:33:38 -07:00
Vitaly Shukela
edf551b55f feat(client,server) Add Connection::without_shutdown()
* Add `server::conn::Connection::without_shutdown`

  Returns wrapper Future instance which allows
  to use `poll_without_shutdown` method
  more ergonomically.

* Add `client::conn::Connection::without_shutdown`

  Returns wrapper Future instance which allows
  to use `poll_without_shutdown` method
  more ergonomically.

* Improve `poll_without_shutdown` docs

Closes #1786
2019-03-26 15:16:06 -07:00
Sean McArthur
fc18b680a5 feat(http2): check Error::source() for an HTTP2 error code to send in reset 2019-03-25 13:10:41 -07:00
Yusuke Sasaki
d1501a0fd3 fix(server): prohibit the length headers on successful CONNECT
Closes #1783
2019-03-20 10:06:34 -07:00
Sean McArthur
8c345d5590 v0.12.25 2019-03-01 15:04:03 -08:00
Kevin Leimkuhler
7dcd4618c0 feat(http2): Add window size config options for Client and Server
Add `fn http2_initial_stream_window_size` and `fn
http2_initial_connection_window_size` for client and server.

Closes #1771
2019-03-01 14:44:38 -08:00
Michal 'vorner' Vaner
2114950cda docs(service): change the make_service_fn example to a full snippet
Include the creation of server too. Previously, the parameter type of
the closure had a different type than the default server provided, which
wasn't obvious to the user.
2019-03-01 13:57:34 -08:00
Sean McArthur
cbae4294c4 feat(server): add http2_max_concurrent_streams builder option
Closes #1772
2019-02-28 16:19:12 -08:00