On Wed, Apr 13, 2016 at 12:00 AM, Wabid Wombat
<[email protected]> wrote:
> I am tasked with making our server, presently targeting *nix, run on
> Windows. The server relies heavily on libev and libeio, neither of which I
> know very well (at all, in fact).
>
> I am facing the choice between (1) making libeio and libev windows-happy, or
> (2) moving the server onto libuv.
>
> Can anyone give me a rough idea of the relative difficulty/merits/demerits?
> I am just looking for order-of-magnitude here. In particular, can I just
> splice in some new headers, do a global search-and-replace, and walk away
> with a shiny new libuv-based server, or is there much grotty structural work
> to be done?
>
>
> By the way, the select() barrier of 64 connections and the related
> performance issues loom large in our application.

Use libuv.  It was created because libev and libeio fall short on Windows.

Patching up libeio so it works better on Windows is possible to some
extent but it's going to be a lot of work and it's not going to be as
battle-tested as libuv.

For libev, however, it's hopeless.  It's completely built around
readiness-based I/O but IOCP on Windows is completion-based and
they're fundamentally incompatible.  It might be possible to teach
libev about AFD (undocumented readiness-based API, only works for
sockets, has a couple of other limitations) but again, it's going to
be a lot of work.

Libuv is not a drop-in placement for libev+libeio because the event
loop model is different, http://docs.libuv.org/en/v1.x/design.html
outlines how it works.  You could convert everything to `uv_poll_t` as
a first pass and go from there, it corresponds roughly to `ev_io`).

Alternatively, perhaps you can get a zero-changes port of your
software going by using the new Windows 10 Linux subsystem.  It seems
to work well enough to run many applications unchanged and performance
is reportedly acceptable.

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Reply via email to