Comments (13)
I'm wondering if someone started to work on it ? And what is the plan? (nix-rust wrapper for windows ?)
from mio.
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.
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.
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.
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/clqr8myI think this can be helpful when implementing the windows part.
—
Reply to this email directly or view it on GitHub
#10 (comment).
from mio.
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/clqr8myI think this can be helpful when implementing the windows part.
—
Reply to this email directly or view it on GitHub
#10 (comment).
from mio.
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.
Might be interesting: https://github.com/cyderize/rust-iocp
from mio.
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.
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.
The readme still mentions windows support as 'eventually'. Should that be removed then?
from mio.
Ah, sorry, Windows support came back w/ #155 and is in progress: https://github.com/carllerche/mio/tree/windows-wip
from mio.
from mio.
Related Issues (20)
- The UnixStream has an FD leakage problem. HOT 4
- Continue or break while would_block error in tcpStream read loop? HOT 3
- any workaround to allow registering to different Poll? HOT 8
- A way to add EPOLLPRI event type to the epoll selector HOT 7
- Master doc page out of date? HOT 2
- Windows named pipes hits unreachable code during read operation HOT 1
- Can TcpStream be read from a different thread? HOT 1
- Exposing `AsRawHandle` on `Registry` HOT 5
- build failed with wasm-pack HOT 1
- Wait for messages in the error queue HOT 6
- Setup WASM/WASI CI
- get any errors when i use `wasm-pack` command by `mio` HOT 4
- Need switch to not use eventfd on `target_os = "linux"` HOT 4
- Add ESP-IDF framework support
- IoRing support for windows HOT 3
- Has waker check doesn't work with try_cloned Registries HOT 1
- compile time error inside `poll.rs` HOT 3
- poll: Optimize locks and allocations in the critical path
- Poll(2) implementation follow-ups
- Official ESP-IDF framework support HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mio.