Sprout is an evented IO system written in pure Ruby. Sprout provies a single-threaded Reactor capable of processing many streams/connections concurrently.
# Simple echo service reactor = Sprout::Reactor.new # Get a server instance server = reactor.listen '0.0.0.0', 4481 server.on(:accept) do |client| client.on(:data) do |data| client.write data end end reactor.start
For more examples see the
This library was created as part of the video for Working With TCP Sockets.
Sprout borrows a lot of ideas from other evented systems.