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

IO traits in v0.3 #2692

Closed
Darksonn opened this issue Jul 25, 2020 · 6 comments
Closed

IO traits in v0.3 #2692

Darksonn opened this issue Jul 25, 2020 · 6 comments
Labels
A-tokio Area: The main tokio crate C-musing Category: musings about a better world M-io Module: tokio/io
Milestone

Comments

@Darksonn
Copy link
Contributor

Darksonn commented Jul 25, 2020

I am opening this issue to have a place to keep track of our plans for the AsyncRead/AsyncWrite traits in v0.3. Some questions to address:

  • What to do about vectored IO?
  • What to do about io_uring?
  • What to do about the traits from the futures crate?

Related dicussions:

Old discussions: #1271, #1272, #1297, #1551

@Darksonn Darksonn added A-tokio Area: The main tokio crate M-io Module: tokio/io C-musing Category: musings about a better world labels Jul 25, 2020
@Darksonn Darksonn added this to the v0.3 milestone Jul 25, 2020
@Darksonn Darksonn mentioned this issue Jul 25, 2020
@carllerche
Copy link
Member

I believe the questions that must be answered by 0.3 have been.

  • vectored I/O has been removed from traits and will be added back to structs at some point in the future.
  • io_uring -> punt until after 1.0
  • I/O traits in the futures crate -> not implement. We are only depending on traits in std.

@carllerche
Copy link
Member

  • vectored writes has been brought back, vectored reads can be done in a forwards-compatible way.
  • io_uring` support will be added in a forwards-compatible way.
  • std will not include async I/O traits.

We can close this I think.

@kaimast
Copy link

kaimast commented Apr 5, 2021

vectored writes has been brought back, vectored reads can be done in a forwards-compatible way.

Where is this now? I cannot find a write_vectored or write_all_vectored in the AsyncWriteExt.

@Darksonn
Copy link
Contributor Author

Darksonn commented Apr 5, 2021

We have poll_write_vectored on AsyncWrite, but there's currently no helper for it on the extension trait.

@0x5459
Copy link

0x5459 commented Aug 15, 2024

vectored writes has been brought back, vectored reads can be done in a forwards-compatible way.

Please forgive my ignorance, I don't know how to vectored reads in a forwards-compatible way.

std read_vectored + tokio::task::spawn_blocking?

@Darksonn
Copy link
Contributor Author

By "forwards-compatible" I mean that it can be added to Tokio in the future.

Tokio doesn't come with helpers for it, but async_io can be used to execute any custom IO operation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tokio Area: The main tokio crate C-musing Category: musings about a better world M-io Module: tokio/io
Projects
None yet
Development

No branches or pull requests

4 participants