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 examples/
directory.
This library was created as part of the video for Working With TCP Sockets.
Sprout borrows a lot of ideas from other evented systems.
MIT