uv-rays¶ ↑
UV-Rays was designed to eliminate the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.
Core Features¶ ↑
-
TCP (and UDP) Connection abstractions
-
Advanced stream tokenization
-
Scheduled events (in, at, every, cron)
-
HTTP 1.1 compatible client support
This adds to the features already available from Libuv on which the gem is based
Support¶ ↑
UV-Rays supports all platforms where ruby is available. Linux, OSX, BSD and Windows. MRI, jRuby and Rubinius.
Run gem install uv-rays
to install
Getting Started¶ ↑
Here's a fully-functional echo server written with UV-Rays:
require 'uv-rays' module EchoServer def on_connect(socket) @ip, @port = socket.peername logger.info "-- #{@ip}:#{@port} connected" end def on_read(data, socket) write ">>>you sent: #{data}" close_connection if data =~ /quit/i end def on_close puts "-- #{@ip}:#{@port} disconnected" end end reactor { UV.start_server "127.0.0.1", 8081, EchoServer }
Integrations¶ ↑
UV-Rays works with many existing GEMs by integrating into common HTTP abstraction libraries