summaryrefslogtreecommitdiffstats
path: root/tokio-util
AgeCommit message (Collapse)Author
2020-05-12codec: rewrite of codec::Framed (#2368)Plecra
Framed was designed to encapsulate both AsyncRead and AsyncWrite so that it could wrap two-way connections. It used Fuse to manage the pinned io object between the FramedWrite and FramedRead structs. I replaced the Fuse struct by isolating the state used in reading and writing, and making the code generic over that instead. This means the FramedImpl struct now has a parameter for the state, and contains the logic for both directions. The Framed* structs are now simply wrappers around this type Hopefully removing the `Pin` handling made things easier to understand, too.
2020-04-21Remove relative link when possible and fix invalid links (#2423)damienrg
The link to tokio::main was relative to tokio_macros crate in the source directory. This is why it worked in local build of documentation and not in doc.rs. Refs: #1473
2020-04-17Link PRs in CHANGELOG files (#2383)Nikolai Vazquez
Allows for simply clicking on the PR number to view the corresponding changes made.
2020-04-12docs: replace some html links with rustdoc paths (#2381)xliiv
Included changes - all simple references like `<type>.<name>.html` for these types - enum - fn - struct - trait - type - simple references for methods, like struct.DelayQueue.html#method.poll Refs: #1473
2020-04-02util: documentation example for LengthDelimitedCodec (#2339)Benjamin Halsted
There is a gap in examples for Builder::num_skip() that shows how to move past unused bytes between the length and payload.
2020-03-18util: Prepare `0.3.1` release (#2330)Nikhil Benesch
2020-03-18tokio-util: fix minimum supported version of tokio (#2326)Nikhil Benesch
tokio-util uses tokio::stream::StreamExt, which was not introduced until tokio v0.2.5. The current dependency specification is incorrect, and breaks with cargo update -Z minimal-versions.
2020-03-04util: Prepare `0.3.0` release (#2296)Lucio Franco
Signed-off-by: Lucio Franco <luciofranco14@gmail.com> Co-authored-by: David Barsky <me@davidbarsky.com> Co-authored-by: Eliza Weisman <eliza@buoyant.io>
2020-03-04codec: change Encoder to take &Item (#1746)Lucio Franco
Co-authored-by: Markus Westerlind <marwes91@gmail.com>
2020-03-02codec: Add `Framed::with_capacity` (#2215)Jean-Christophe BEGUE
2020-02-01util: add links to tokio-util + example to BytesCodec (#2207)Alice Ryhl
2020-01-30codec: use advance over split_to when data is not needed (#2198)Markus Westerlind
2020-01-29util: add futures-io/tokio::io compatibility layer (#2117)Eliza Weisman
* util: add futures-io/tokio::io compatibility layer This PR adds a compatibility layer with conversions between the `tokio::io` and `futures-io` versions of the `AsyncRead` and `AsyncWrite` traits. I initially opened this PR against `tokio-compat`, but we decided that a compatibility layer for current versions of the `tokio` and `futures-io` crates (rather than for compatibility with legacy code) ought to go in `tokio-util` instead. See: https://github.com/tokio-rs/tokio-compat/pull/2#issuecomment-551310953 This is based on code originally written by @Nemo157 as part of the `futures-tokio-compat` crate, and is contributed on behalf of the original author: https://github.com/Nemo157/futures-tokio-compat/issues/2#issuecomment-544118866 Closes tokio-rs/tokio-compat#2 Co-authored-by: Wim Looman <wim@nemo157.com> Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2019-12-21chore: fix formatting, remove old rustfmt.toml (#2007)Artem Vorotnikov
`cargo fmt` has a bug where it does not format modules scoped with feature flags.
2019-12-21Fix UdpFramed doc cfg_attr (#2010)Artem Vorotnikov
2019-12-20chore: formatting, docs and clippy (#2000)Artem Vorotnikov
2019-12-18stream: add `next` and `map` utility fn (#1962)Artem Vorotnikov
Introduces `StreamExt` trait. This trait will be used to add utility functions to make working with streams easier. This patch includes two functions: * `next`: a future returning the item in the stream. * `map`: transform each item in the stream.
2019-12-13chore: remove benches and fix/work around clippy lints (#1952)Artem Vorotnikov
2019-12-13chore: fix warning in tokio-util tests (#1955)Carl Lerche
`bytes` added a warning when using a fn that resulted in a useless clone.
2019-11-27doc: misc API documentation fixes (#1834)Oleg Nosov
2019-11-26chore: prepare v0.2.0 release (#1822)Carl Lerche
2019-11-22default all feature flags to off (#1811)Carl Lerche
Changes the set of `default` feature flags to `[]`. By default, only core traits are included without specifying feature flags. This makes it easier for users to pick the components they need. For convenience, a `full` feature flag is included that includes all components. Tests are configured to require the `full` feature. Testing individual feature flags will need to be moved to a separate crate. Closes #1791
2019-11-20chore: update `bytes` dependency to git master (#1796)Carl Lerche
Tokio will track changes to bytes until 0.5 is released.
2019-11-16chore: migrate from pin-project to pin-project-lite (#1778)Taiki Endo
2019-11-15Limit `futures` dependency to `Stream` via feature flag (#1774)Carl Lerche
In an effort to reach API stability, the `tokio` crate is shedding its _public_ dependencies on crates that are either a) do not provide a stable (1.0+) release with longevity guarantees or b) match the `tokio` release cadence. Of course, implementing `std` traits fits the requirements. The on exception, for now, is the `Stream` trait found in `futures_core`. It is expected that this trait will not change much and be moved into `std. Since Tokio is not yet going reaching 1.0, I feel that it is acceptable to maintain a dependency on this trait given how foundational it is. Since the `Stream` implementation is optional, types that are logically streams provide `async fn next_*` functions to obtain the next value. Avoiding the `next()` name prevents fn conflicts with `StreamExt::next()`. Additionally, some misc cleanup is also done: - `tokio::io::io` -> `tokio::io::util`. - `delay` -> `delay_until`. - `Timeout::new` -> `timeout(...)`. - `signal::ctrl_c()` returns a future instead of a stream. - `{tcp,unix}::Incoming` is removed (due to lack of `Stream` trait). - `time::Throttle` is removed (due to lack of `Stream` trait). - Fix: `mpsc::UnboundedSender::send(&self)` (no more conflict with `Sink` fns).
2019-11-15codec: Remove Unpin requirement from Framed[Read,Write,] (#1758)Markus Westerlind
cc #1252
2019-11-07chore: update futures to 0.3.0 (#1741)Taiki Endo
2019-11-03test: unify MockTask and task::spawn (#1728)Carl Lerche
Delete `MockTask` in favor of `task::spawn`. Both are functionally equivalent.
2019-10-31Allow non-destructive access to the read buffer. (#1600)Jonathan Bastien-Filiatrault
I need this to implement SMTP pipelining checks. I mostly need to flush my send buffer when the read buffer is empty before waiting for the next command.
2019-10-26io: move into `tokio` crate (#1691)Carl Lerche
A step towards collapsing Tokio sub crates into a single `tokio` crate (#1318). The `io` implementation is now provided by the main `tokio` crate. Functionality can be opted out of by using the various net related feature flags.
2019-10-22codec: move into tokio-util (#1675)Carl Lerche
Related to #1318, Tokio APIs that are "less stable" are moved into a new `tokio-util` crate. This crate will mirror `tokio` and provide additional APIs that may require a greater rate of breaking changes. As examples require `tokio-util`, they are moved into a separate crate (`examples`). This has the added advantage of being able to avoid example only dependencies in the `tokio` crate.