# Eventmachine

**URL:** <https://www.ruby-forum.com/t/eventmachine/179293>\
**Category:** IronRuby\
**Created:** [November 21, 2009, 9:39am UTC](https://www.ruby-forum.com/t/eventmachine/179293 "2009-11-21T09:39:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![barby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/c57346/32.png) [@barby](https://www.ruby-forum.com/u/barby)\
**Post date:** [November 21, 2009, 9:39am UTC](https://www.ruby-forum.com/t/eventmachine/179293/1 "2009-11-21T09:39:46Z")

</div>

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](http://flanders.co.nz)  
Google Wave: removed\_email\_address@domain.invalid  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![barby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/c57346/32.png) [@barby](https://www.ruby-forum.com/u/barby)\
**Post date:** [November 21, 2009, 6:01pm UTC](https://www.ruby-forum.com/t/eventmachine/179293/2 "2009-11-21T18:01:54Z")

</div>

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: removed\_email\_address@domain.invalid  
LinkedIn: [http://www.linkedin.com/in/ryanriley](http://www.linkedin.com/in/ryanriley)  
Blog: [http://wizardsofsmart.net/](http://wizardsofsmart.net/)  
Website: [http://panesofglass.org/](http://panesofglass.org/)

---

<div class="post-metadata">

**Author:** ![barby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/c57346/32.png) [@barby](https://www.ruby-forum.com/u/barby)\
**Post date:** [November 24, 2009, 11:40am UTC](https://www.ruby-forum.com/t/eventmachine/179293/3 "2009-11-24T11:40:37Z")

</div>

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.

> **[Named pipe](https://en.wikipedia.org/wiki/Named_pipe#Named_pipes_in_Windows)**
>
> In computing, a named pipe (also known as a FIFO for its behavior) is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication (IPC). The concept is also found in OS/2 and Microsoft Windows, although the semantics differ substantially. A traditional pipe is "unnamed" and lasts only as long as the process. A named pipe, however, can last as long as the system is up, beyond the life of the process. It can be deleted if no l...

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](http://flanders.co.nz)  
Google Wave: removed\_email\_address@domain.invalid  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))
