A connect, read and write timeout aware connector to be used with hyper Client.
At the time this crate was created, hyper did not support timeouts. There is a way to do general timeouts, but no easy way to get connect, read and write specific timeouts.
There is a TimeoutConnector that implements the hyper::Connect trait. This connector wraps around HttpConnector or HttpsConnector values and provides timeouts.
[!IMPORTANT]
The timeouts are on the underlying stream and not the request.
Tokio often interleaves poll_read and poll_write calls to handle this bi-directional communication efficiently. Due to this behavior, both the read and write timeouts start at the same time. This means your read timeout can expire while the client is still writing the request to the server. If you are writing large bodies, consider using set_reset_reader_on_write to avoid this behavior.
Hyper version compatibility:
master branch will track on going development for hyper.0.5 release supports hyper 1.0.0.4 release supports hyper 0.14.0.3 release supports hyper 0.13.0.2 release supports hyper 0.12.0.1 release supports hyper 0.11.tokio_proto::ClientProto worksAssuming you are using hyper 1.0, add this to your Cargo.toml:
[dependencies] hyper-timeout = "0.5"
See the client example for a working example.
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.