#completion #future #async #runtocompletion

no-std completion

Utilities for writing completion-based asynchronous code

3 unstable releases

0.2.1 Apr 8, 2021
0.2.0 Feb 22, 2021
0.1.0 Jan 17, 2021

#326 in Asynchronous

MIT/Apache

435KB
10K SLoC

completion

Utilities for writing completion-based asynchronous code.

A completion future is a future that must be run to completion, unlike regular futures which can be dropped and stopped at any time without the future's knowledge. This allows for more flexibility for the implementer of the future and allows APIs like io_uring and IOCP to be wrapped in a zero-cost way.

This is based off this RFC by Matthias247.

Features

  • std: Enables features that require the standard library, on by default.
  • alloc: Enables features that require allocation, on by default.
  • macro: Enables the [completion], [completion_async], [completion_async_move] and [completion_stream] macros, on by default.

License: MIT OR Apache-2.0


lib.rs:

Utilities for writing completion-based asynchronous code.

A completion future is a future that must be run to completion, unlike regular futures which can be dropped and stopped at any time without the future's knowledge. This allows for more flexibility for the implementer of the future and allows APIs like io_uring and IOCP to be wrapped in a zero-cost way.

This is based off this RFC by Matthias247.

Features

  • std: Enables features that require the standard library, on by default.
  • alloc: Enables features that require allocation, on by default.
  • macro: Enables the [completion], [completion_async], [completion_async_move] and [completion_stream] macros, on by default.

Dependencies

~125–300KB