1f969573ed
- Remove RG link Changes: https://github.com/celluloid/celluloid-io/blob/master/CHANGES.md
23 lines
1.4 KiB
Text
23 lines
1.4 KiB
Text
Celluloid::IO provides an event-driven IO system for building fast, scalable
|
|
network applications that integrates directly with the Celluloid actor library,
|
|
making it easy to combine both threaded and evented concepts. Celluloid::IO is
|
|
ideal for servers which handle large numbers of mostly-idle connections, such as
|
|
Websocket servers or chat/messaging systems.
|
|
|
|
Celluloid::IO provides a different class of actor: one that's slightly slower
|
|
and heavier than standard Celluloid actors, but one which contains a
|
|
high-performance reactor just like EventMachine or Cool.io. This means
|
|
Celluloid::IO actors have the power of both Celluloid actors and evented I/O
|
|
loops. Unlike certain other evented I/O systems which limit you to a single
|
|
event loop per process, Celluloid::IO lets you make as many actors as you want,
|
|
system resources permitting.
|
|
|
|
Rather than callbacks, Celluloid::IO exposes a synchronous API built on duck
|
|
types of Ruby's own IO classes, such as TCPServer and TCPSocket. These classes
|
|
work identically to their core Ruby counterparts, but in the scope of
|
|
Celluloid::IO actors provide "evented" performance. Since they're drop-in
|
|
replacements for the standard classes, there's no need to rewrite every library
|
|
just to take advantage of Celluloid::IO's event loop and you can freely switch
|
|
between evented and blocking IO even over the lifetime of a single connection.
|
|
|
|
WWW: https://github.com/celluloid/celluloid-io
|