ruby-ffi

http://wiki.github.com/ffi/ffi

DESCRIPTION:

Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling those functions from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby and JRuby. Discover why should you write your next extension using Ruby-FFI here.

FEATURES/PROBLEMS:

SYNOPSIS:

require 'ffi'

module MyLib
  extend FFI::Library
  ffi_lib 'c'
  attach_function :puts, [ :string ], :int
end

MyLib.puts 'Hello, World using libc!'

For less minimalistic and more sane examples you may look at:

REQUIREMENTS:

DOWNLOAD/INSTALL:

From rubyforge:

[sudo] gem install ffi

or from the git repository on github:

git clone git://github.com/ffi/ffi.git
cd ffi
rake gem:install

LICENSE:

See LICENSE file.

CREDITS

The following people have submitted code, bug reports, or otherwide contributed to the success of this project:

Alban Peignier <free at alban.peignier.fr> Aman Gupta <aman@tmm1.net> Andrea Fazzi <alcacoop at andrea.fazzi.it> Andreas Niederl <rico32@gmx.net> Andrew Cholakian <andrew@andrewvc.com> Antonio Terceiro <terceiro@softwarelivre.org> Brian Candler <B.Candler.com> Brian D. Burns <burns180@gmail.com> Bryan Kearney <bkearney@redhat.com> Charlie Savage <cfis@zerista.com> Chikanaga Tomoyuki <nagachika00@gmail.com> Hongli Lai <hongli@phusion.nl> Ian MacLeod <ian@nevir.net> Jake Douglas <jake@shiftedlabs.com> Jean-Dominique Morani <jdmorani@mac.com> Jeremy Hinegardner <jeremy@hinegardner.org> Jesús García Sáez <blaxter@gmail.com> Joe Khoobyar <joe@ankhcraft.com> Jurij Smakov <jurij@wooyd.org> KISHIMOTO, Makoto <ksmakoto@dd.iij4u.or.jp> Kim Burgestrand <kim@burgestrand.se> Lars Kanis <kanis@comcard.de> Luc Heinrich <luc@honk-honk.com> Luis Lavena <luislavena@gmail.com> Matijs van Zuijlen <matijs@matijs.net> Matthew King <automatthew@gmail.com> Mike Dalessio <gmail at mike.dalessio.com> NARUSE, Yui <naruse@airemix.jp> Park Heesob <phasis@gmail.com> Shin Yee <shinyee@speedgocomputing.com> Stephen Bannasch <gmail at stephen.bannasch.com> Suraj N. Kurapati <sunaku@gmail.com> Sylvain Daubert <laposte at sylvain.daubert.net> Victor Costan beoran@gmail.com ctide <christide@christide.com> emboss <Martin.googlemail at Bosslet.com> hobophobe <unusualtears@gmail.com> meh <meh@paranoici.org> postmodern <gmail at postmodern.mod3.com> wycats@gmail.com <wycats@gmail.com>