Eventmachine

Anybody wanna join in getting eventmachine working on IronRuby?

We can probably do 1 better than the C based implementation on windows
simply because .NET has all the necessary classes and exposes the events
we
need.
For example in the C-based version you can’t use EM.popen on windows
because
they need a PID and a few events, which exist on the Process class in
.NET.

.NET has a cross platform FileSystemWatcher
.NET has sockets with events
.NET has events on a Process

those are all we need AFAICT to get eventmachine working and also make
EM.system and EM.popen work on windows that don’t work currently. The
only
remaining issue on windows is then the unix sockets but we can do
without
those I guess.

getting eventmachine to work brings us closer to or gives us
Thin
Blather
AMQP
Nanite

And probably every 2nd library that uses the network and cares about not
polling.
I will still be busy for another month or so with the book but then I
really
want to get going with this.

Met vriendelijke groeten - Best regards - Salutations
Ivan Porto C.
Blog: http://flanders.co.nz
Google Wave: [email protected]
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)

If I have time, which should be freeing up towards the end of the year,
then
I would like to work on this. Should we leverage the Reactive Extensions
for
this? It seems a good fit, and it would give us the ability to more
easily
mimic sockets (if I understand sockets correctly).

Ryan R.

Email: [email protected]
LinkedIn: http://www.linkedin.com/in/ryanriley
Blog: http://wizardsofsmart.net/
Website: http://panesofglass.org/

I would almost say that the reactive framework provides a similar
abstraction as eventmachine but a lot more refined. It’s defintely an
avenue
worth exploring, but I do have some concerns with regards to that:

  • It makes use of Expressions, LINQ and building those with IronRuby
    isn’t
    going to as fun as writing plain ruby code.
  • It makes heavy use of generics which may also result in some pretty
    ugly
    ruby code.
  • Will it run on mono? For me this is of significant importance as most
    of
    my systems are either OSX, debian or ubuntu and I have 2 windows boxes.
  • Isn’t this one of those libraries where you want to get as close to
    the
    metal as possible?

I’m all for the latest and the greatest if it solves the problem better
and
easier than the alternative.

The windows equivalent of a unix domain socket would probably be named
pipes
in passive mode.

The java implementation is not that large and I’m hoping that it is a
good
indication of the work that is involved.


Met vriendelijke groeten - Best regards - Salutations
Ivan Porto C.
Blog: http://flanders.co.nz
Google Wave: [email protected]
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)