Skip to content
Ruby bindings for libuv
Ruby C
Find file
Latest commit 269d96c @avalanche123 clear callbacks


uv.rb - libuv FFI bindings for Ruby

Build Status

Libuv is a cross platform asynchronous IO implementation that powers NodeJS. It supports sockets, both UDP and TCP, filesystem operations, TTY, Pipes and other asynchronous primitives like timer, check, prepare and idle.

UV.rb is FFI Ruby bindings for libuv.


Create a uv loop or use a default one

require 'uv'

loop = UV::Loop.default
# or
# loop =

timer = loop.timer
timer.start(50000, 0) do |error|
  p error if error
  puts "50 seconds passed"

Find more examples in examples directory


gem install uvrb


git clone ...
cd ...
bundle install


  • The installation requires subversion to be installed on your system and available on the PATH

  • Windows users will require a copy of Visual Studio 2010 or later installed. Express works fine.

What's supported

  • TCP

  • UDP

  • TTY

  • Pipe

  • Timer

  • Prepare

  • Check

  • Idle

  • Async

  • Filesystem

  • File

  • FSEvent

  • Errors

  • work queue


  • Port rest of libuv - ares, getaddrinfo, process, mutexes and locks

  • Tests tests tests

  • Docs docs docs

Something went wrong with that request. Please try again.