Eventmachine - pure Ruby port

There was talk this past fall of a pure Ruby port of Eventmachine that
Francis was working on. Is there any status updates? I peeked in the
mailing list archive for Eventmachine but didn’t seen anything new in
there.

I do believe the pure Ruby EM is perfectly functional and pretty close
to as
featureful as the C++ version. He hasn’t posted new releases for a while
but
will gladly send you a recent build himself. His email is:
[email protected] (if he doesn’t see this post).

Just a warning, the pure-Ruby EM is dog slow comparatively. I’d suggest
using the native version if you can.

Jason

Jason R. wrote:

Just a warning, the pure-Ruby EM is dog slow comparatively. I’d suggest
using the native version if you can.

This is something I’m wondering about. I’ve seen and used Twisted for
Python and its robust and can handle large amounts of traffic. I wonder
why Ruby seems to lack the robustness in the arena of sockets, etc. that
Python seems to have no issues with? Perhaps I’m seeing this all wrong,
so please correct me. Eventmachine as it is now is coded in C or C++,
correct? Yet even with the improvements in the Ruby core for sockets
the pure implementation of EM is going to be much slower. I have to
think Ruby has some issues still then in the arena of sockets? Will
YARV help any?

On 1/17/07, Mark H. [email protected] wrote:

so please correct me. Eventmachine as it is now is coded in C or C++,
correct? Yet even with the improvements in the Ruby core for sockets
the pure implementation of EM is going to be much slower. I have to
think Ruby has some issues still then in the arena of sockets? Will
YARV help any?

I’ve done some experiments with the low-level pure Ruby socket functions
and
with all the cruft stripped out, pure Ruby is about half as fast as C in
tests that heavily stress network I/O. That’s life in the big city, I
think,
but the hybrid EM will always be supported. I envision that as the
alternative for really high-stress and high-scale applications, and I
believe EM will be able to handle most of the requirements people can
throw
at it.

By the way, is anyone interested in joining the team? Tony is now an EM
committer and I’d like to have some more. Especially people who know a
lot
about Twisted. I want to see EM match Twisted’s feature set. As far as
stability is concerned, EM is in a very good place now, but it needs a
lot
more features, a lot more documentation, case studies, and evangelism.

On 1/17/07, Jason R. [email protected] wrote:

I do believe the pure Ruby EM is perfectly functional and pretty close to
as
featureful as the C++ version. He hasn’t posted new releases for a while
but
will gladly send you a recent build himself. His email is:
[email protected] (if he doesn’t see this post).

Just a warning, the pure-Ruby EM is dog slow comparatively. I’d suggest
using the native version if you can.

Hi guys. I don’t do much production work with the pure Ruby version
myself
but it hasn’t been particularly tuned for performance. There is a small
number of low-level socket things that aren’t easy to do in pure Ruby
(like
the ability to do an asynchronous TCP connect). But I think with some
careful profiling and tuning, it can become a lot faster.

On 1/17/07, [email protected] [email protected] wrote:

stability is concerned, EM is in a very good place now, but it

Sounds great, looking forward to seeing that.

On Jan 17, 2007, at 8:54 PM, Francis C. wrote:

(snip)
By the way, is anyone interested in joining the team? Tony is now
an EM
committer and I’d like to have some more. Especially people who
know a lot
about Twisted. I want to see EM match Twisted’s feature set. As far as
stability is concerned, EM is in a very good place now, but it
needs a lot
more features, a lot more documentation, case studies, and evangelism.

I’m looking at adding netstrings support to EM so it’s easier to add
new text-based protocols. I don’t have an immediate need so I haven’t
worked on this yet, but it’s on my list. I’ll be sure to wrap it up
in tests and write the appropriate docs too.

cr