5 releases
0.2.2 | Mar 20, 2024 |
---|---|
0.2.1 | Mar 19, 2024 |
0.2.0 | Dec 7, 2022 |
0.1.1 | Dec 7, 2022 |
0.1.0 | Dec 7, 2022 |
#260 in Asynchronous
693 downloads per month
Used in overtls
30KB
575 lines
Async Shared Timeout
A Rust crate for creating a shared timeout. A sample use case is having multiple streams open from the client, and expiring them only when all of them stopped sending data. Another example is a proxy with a timeout - the proxy times out only when both the local and the remote ends time out.
Feature flags:
Wrapper
wrapper
- enable a wrapper around types that you can use for easier resetting. By default, only future support is enabled (reset the timer upon future completion).read-write
- enable asyncRead
/Write
trait support for the wrapper (reset the timer upon successful read/write operations)stream
- enableStream
support for the wrapper (reset the timer upon stream advancement).
Integration with other runtimes
std
(enabled by default) - enablestd
integration. Currently it's only used to enableArc
andAsRawFd
support for the wrapper.tokio
(enabled by default) -tokio
supportasync-io
- supportasync-io
as the timer runtime.futures-io
- supportfutures-io
traits.async-std
-async-std
support (enablesasync-io
andfutures-io
).
Changelog
- 0.1.0 - initial release
- 0.1.1 -
AsRawFd
support forWrapper
- 0.2.0 - minor API cleanup
- 0.2.1 - updated dependencies, added
Timeout::new_tokio
- 0.2.2 - add
TokioTimeout
andTokioWrapper
type aliases
License
TL;DR do whatever you want.
Licensed under either the BSD Zero Clause License (https://opensource.org/licenses/0BSD), the Apache 2.0 License (http://www.apache.org/licenses/LICENSE-2.0) or the MIT License (http://opensource.org/licenses/MIT), at your choice.
Dependencies
~3–13MB
~161K SLoC