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

mio-extras not being updated for mio>0.6 #1535

Closed
larseggert opened this issue Jan 3, 2024 · 9 comments
Closed

mio-extras not being updated for mio>0.6 #1535

larseggert opened this issue Jan 3, 2024 · 9 comments

Comments

@larseggert
Copy link
Collaborator

See https://github.com/dimbleby/mio-extras:

This library is not compatible with mio 0.7. However, there's a similar project named mio-misc that works with mio 0.7.

I haven't checked whether and how mio-misc could be used to provide Timer functionality for neqo-server.

See #1511

@mxinden
Copy link
Collaborator

mxinden commented Jan 23, 2024

@larseggert how about moving away from mio and instead use the higher-level tokio in neqo-server and neqo-client? Note that tokio is based on mio.

With my limited knowledge of neqo-*, I consider tokio the better fit for the problem. It has support for UDP sockets and timers and, given its higher level abstractions, is easier to use.

In case there is interest, I am happy to give it a shot and propose a pull request.

Related: #530

@larseggert
Copy link
Collaborator Author

I have no issue with that - others?

@larseggert
Copy link
Collaborator Author

I'm running into issues trying to use quinn-udp for ECN packet I/O with the client and server code based on that old version of mio, so I'm even more in favor of tokio now.

CC @martinthomson @KershawChang

@KershawChang
Copy link
Collaborator

I'm running into issues trying to use quinn-udp for ECN packet I/O with the client and server code based on that old version of mio, so I'm even more in favor of tokio now.

CC @martinthomson @KershawChang

+1 for using tokio.
I think the reason why we used mio-extras is that we want to use mio_extras::timer, but I assume we should be able to find an alternative for it.

@mxinden
Copy link
Collaborator

mxinden commented Jan 24, 2024

I think the reason why we used mio-extras is that we want to use mio_extras::timer, but I assume we should be able to find an alternative for it.

Yes, see tokio's time module https://docs.rs/tokio/latest/tokio/time/index.html

@mxinden
Copy link
Collaborator

mxinden commented Jan 24, 2024

I have a draft in #1581 with a basic client/server interaction working. Still needs more work. Will ping folks once it is ready. Not sure I will get to it this week though.

I'm running into issues trying to use quinn-udp for ECN packet I/O with the client and server code based on that old version of mio, so I'm even more in favor of tokio now.

Yes. I expect the move to quinn-udp to be easy once #1581 is merged. Happy to do that as a follow-up.

@larseggert
Copy link
Collaborator Author

I have some draft code for quinn-udp in https://github.com/larseggert/neqo/tree/feat-ecn-io, if you want to make that part of this PR.

@mxinden
Copy link
Collaborator

mxinden commented Jan 30, 2024

I have some draft code for quinn-udp in https://github.com/larseggert/neqo/tree/feat-ecn-io, if you want to make that part of this PR.

👍 porting https://github.com/larseggert/neqo/tree/feat-ecn-io onto #1581 now @larseggert.

@larseggert
Copy link
Collaborator Author

We're now using tokio.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants