blabaere / scaproust

Implementation of the nanomsg "Scalability Protocols" in rust.
Apache License 2.0
192 stars 9 forks source link

Windows: Fix FILE_FLAG_OVERLAPPED #11

Closed kpcyrd closed 6 years ago

kpcyrd commented 6 years ago

This fixes an import that appveyor ran into. I've crosscompiled this with cargo build --target 'i686-pc-windows-gnu', but I didn't test this further.

blabaere commented 6 years ago

@kpcyrd Thanks !

blabaere commented 6 years ago

After the upgrade, several integration tests are failing on the AppVeyor. This happens when scaproust is built upon assumptions about mio behavior that hold only on *nix systems. I ran into that kind of problem several times already and since I don't own any Windows machine, debugging is somehow tedious.

kpcyrd commented 6 years ago

@blabaere I would be fine with dropping (official) windows support if needed. I could try fixing them, but I would need instructions what needs to be done since I know little about mio/scaproust/windows. Temporarily disabling the failing tests for windows would work for me as well.

I'm holding back a version release that would introduce scaproust as a dependency, I currently depend on git master. :)

blabaere commented 6 years ago

@kpcyrd There is currently no such thing as "official support" in any way, I just kind of feel bad publishing a package that don't work on a platform while the previous version was (maybe). I will let the AppVeyor build broken for everyone to see that scaproust just does not work on Windows anymore. That should be sufficient to prevent bad surprises for unsuspecting users.

Regarding the short-term and your release, I can publish a patch in the coming days. But you should be aware that relying on scaproust is risky business: I'm the only maintainer and I can be abducted by aliens with tentacles anytime, I don't use it myself and I don't plan on investing much time in it in the near future.

I think that it should be redone almost from scratch based on tokio rather than mio, exposing an async API. That would reduce the differences between platforms and does not prevent recreating a sync API like the current one on top of it. But I simply don't have time for that now.

blabaere commented 6 years ago

@kpcyrd Version 0.3.2 is available on crates.io, enjoy !