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_uring support #577

Merged
merged 177 commits into from
Jul 11, 2023
Merged

io_uring support #577

merged 177 commits into from
Jul 11, 2023

Conversation

Thomasdezeeuw
Copy link
Owner

@Thomasdezeeuw Thomasdezeeuw commented Mar 20, 2023

Work in progress, based on the A10 crate. I want to wait until GitHub Actions supports Kernel v6.1.

Updates #409
Updates #464
Closes #494
Closes #495
Closes #526
Closes #532
Closes #538
Closes #540
Closes #570
Closes #573
Closes #574

Todo:

  • Make a A10 release (stop using the git version).

Missing (from io_uring):

Still will be used to power io_uring operations.
This is for the local version only, next up is the shared version.
And ensure it's polled from the worker threads.
To get access to the I/O uring submission queue.
Starting with new buffer trait that work with A10.
A type to implement the A10 Buf(Mut)(Slice) traits on using Heph's
versions.
It renames the Buf trait method, a change I've also made to Heph in this
commit.
and has_spare_capacity methods.

Useful to quickly check if the buffers has enoug capacity in read_n
calls.
Fix some incorrect references to types or methods.
From the net::udp module and reexport them.

This allows us to use them in other modules as well, such as net::uds
(Unix Domain Sockets).
Switches to use a forked version of socket2, the changes in  which will
have to be merged into socket v5 once we're ready to update to that.
Since M (Connected or Unconnected) doesn't implement fmt::Debug.
For easy usage with UnixDatagram.
In case io_uring even supports it, which needs ownership of the address.
Instead of using mio::net::UnixDatagram.
Explaining the use of Connected and Unconnected enums.
Only had a single occurence so might as well fix it.
Basically where possible.
The new RFC that defines HTTP.
Nothing major.
Useful when the NewActor trait is used in a trait bound for types.
This way the caller can handle the panics themselves.
Trying to move away from it.
Since only the panic variant is used of the BlockOnError enum we just
return that as Result::Err.
And fixes/ignores all the Clippy warnings.
Finally it's published!
@Thomasdezeeuw Thomasdezeeuw marked this pull request as ready for review July 11, 2023 11:28
@Thomasdezeeuw Thomasdezeeuw merged commit 75149a1 into main Jul 11, 2023
22 of 30 checks passed
@Thomasdezeeuw Thomasdezeeuw deleted the io_uring branch July 11, 2023 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant