Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue: a standard library for async Rust #1

Open
nrc opened this issue Dec 7, 2021 · 4 comments
Open

Tracking issue: a standard library for async Rust #1

nrc opened this issue Dec 7, 2021 · 4 comments
Labels
A-stdlib Area: a standard library for async Rust

Comments

@nrc
Copy link
Owner

nrc commented Dec 7, 2021

All the parts of various runtimes (and perhaps other crates) that can and should be moved into std.

There are some big issues here, such as whether we could use async overloading for some or all of this? Should APIs be changed to be optimal for completion-based IO?

Then there is a lot of incremental work standardising on parts of the library across runtimes and moving the standardised code into std.

From a high level, the various components are (I expect to further refine and elaborate this list over time, plus add individual issues for items);

  • IO traits
  • Concurrency primitives (locks, channels, etc.)
  • Timers
  • Join and select macros
  • Pinning utilities

Open issues

@nrc nrc added the A-stdlib Area: a standard library for async Rust label Dec 7, 2021
@nrc
Copy link
Owner Author

nrc commented Dec 9, 2021

Join macro is now in core (unstable): rust-lang/rust#91645

@yoshuawuyts
Copy link

Note that similar to #5 (comment), stabilization of many of these items will require making a decision on async overloading first. In terms of ordering I feel like we should probably try and clear that hurdle first, as that will determine where in the stdlib many of this functionality should be exposed from.

Async overloading is being tracked on the roadmap, but does not yet have an initiative owner.

@danielhenrymantilla
Copy link

A stack-pin!ning macro: rust-lang/rust#93176

@yoshuawuyts
Copy link

A stack-pin!ning macro: rust-lang/rust#93176

Maybe we should track "pin utils" as a separate issue. Once we have stack pinning in, the last (?) major remaining issue would be to figure out is how to introduce first-class pin projections into the stdlib.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-stdlib Area: a standard library for async Rust
Projects
None yet
Development

No branches or pull requests

3 participants