Sprout is an evented IO system written in pure Ruby.
Ruby
Permalink
Failed to load latest commit information.
examples Initial import Oct 25, 2012
lib/sprout Initial import Oct 25, 2012
spec Initial import Oct 25, 2012
README.md Linkify some stuff in the README Oct 25, 2012
config.ru Initial import Oct 25, 2012

README.md

Sprout

Sprout is an evented IO system written in pure Ruby. Sprout provies a single-threaded Reactor capable of processing many streams/connections concurrently.

Usage

# 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.

Origin

This library was created as part of the video for Working With TCP Sockets.

Prior Art

Sprout borrows a lot of ideas from other evented systems.

License

MIT