Git Product home page Git Product logo

Comments (13)

Noxivs avatar Noxivs commented on July 18, 2024

I'm wondering if someone started to work on it ? And what is the plan? (nix-rust wrapper for windows ?)

from mio.

carllerche avatar carllerche commented on July 18, 2024

Hi, nobody has started on windows support yet. I have a high level plan for windows but haven't thought through the details yet. The general idea is to use IOCP and to have a shim layer that matches the IOCP API w/ the mio API.

Anyway, if you are interested in attempting it, we should chat on IRC or something to get on the same page.

from mio.

Noxivs avatar Noxivs commented on July 18, 2024

Hi,
I could be interested but I am not really familiar with all this low level stuff. I will first look some docs about the IOCP API & the rust FFI.

from mio.

siriux avatar siriux commented on July 18, 2024

This thread in reddit can be very interesting: http://www.reddit.com/r/rust/comments/2kv3y5/async_io/

Specifically on this post, it's shown that IOCP can be efficient on modern windows, and they provide a link to a minimal implementation http://www.reddit.com/r/rust/comments/2kv3y5/async_io/clqr8my

I think this can be helpful when implementing the windows part.

from mio.

rrichardson avatar rrichardson commented on July 18, 2024

Can someone just try to implement the WSASelector method first, to measure
speed?

It would be 100 times easier to match to the mio flow, since it's already
select based. My guess is that it would work for most use cases.

It probably won't scale to managing 10,000 connections, but if someone
wants that they should be running Linux :)
On Dec 15, 2014 5:39 AM, "Pablo Guerrero Rosel" [email protected]
wrote:

This thread in reddit can be very interesting:
http://www.reddit.com/r/rust/comments/2kv3y5/async_io/

Specifically on this post, it's shown that IOCP can be efficient on modern
windows, and they provide a link to a minimal implementation
http://www.reddit.com/r/rust/comments/2kv3y5/async_io/clqr8my

I think this can be helpful when implementing the windows part.


Reply to this email directly or view it on GitHub
#10 (comment).

from mio.

rrichardson avatar rrichardson commented on July 18, 2024

http://msdn.microsoft.com/en-us/library/windows/desktop/ms741669%28v=vs.85%29.aspx
On Dec 15, 2014 7:54 AM, "Rick Richardson" [email protected]
wrote:

Can someone just try to implement the WSASelector method first, to measure
speed?

It would be 100 times easier to match to the mio flow, since it's already
select based. My guess is that it would work for most use cases.

It probably won't scale to managing 10,000 connections, but if someone
wants that they should be running Linux :)
On Dec 15, 2014 5:39 AM, "Pablo Guerrero Rosel" [email protected]
wrote:

This thread in reddit can be very interesting:
http://www.reddit.com/r/rust/comments/2kv3y5/async_io/

Specifically on this post, it's shown that IOCP can be efficient on
modern windows, and they provide a link to a minimal implementation
http://www.reddit.com/r/rust/comments/2kv3y5/async_io/clqr8my

I think this can be helpful when implementing the windows part.


Reply to this email directly or view it on GitHub
#10 (comment).

from mio.

siriux avatar siriux commented on July 18, 2024

Apparently, the trick found on the provided link allows to use IOCP in the same way as select, but it's much faster. They use select as a fallback for unsupported systems (< Vista ???).

Anyway, it's not crear if the API used is supported, the code is WIP, and there is no license on the repo.

But it might be worth it to have a look, because it can provide a fast and simple way to have windows support. Also, it's possible to implement the fallback with select first, and leave the optimization for future versions.

https://github.com/piscisaureus/epoll_windows

from mio.

toqueteos avatar toqueteos commented on July 18, 2024

Might be interesting: https://github.com/cyderize/rust-iocp

from mio.

Noxivs avatar Noxivs commented on July 18, 2024

I saw it few days ago but i think it will be harder to implement IOCP on a epoll based io library (than vice versa).
We can "simulate" it with a loop but we need at least a direct access to the file descriptor.

from mio.

carllerche avatar carllerche commented on July 18, 2024

Ok, this is a "won't fix". I think the best strategy is to dedicate mio to readiness based platforms and punt windows support to a higher level IO library (I am working on one, but it is still in the early stages).

from mio.

SirVer avatar SirVer commented on July 18, 2024

The readme still mentions windows support as 'eventually'. Should that be removed then?

from mio.

carllerche avatar carllerche commented on July 18, 2024

Ah, sorry, Windows support came back w/ #155 and is in progress: https://github.com/carllerche/mio/tree/windows-wip

from mio.

SirVer avatar SirVer commented on July 18, 2024

🎆 Hooray!!!!

from mio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.