ruby-ffi
by Wayne Meissner
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[http://wiki.github.com/ffi/ffi/why-use-ffi].
== FEATURES/PROBLEMS:
- It has a very intuitive DSL
- It supports all C native types
- It supports C structs (also nested), enums and global variables
- It supports callbacks
- It has smart methods to handle memory management of pointers and structs
== SYNOPSIS:
require 'ffi'
module MyLib
extend FFI::Library
attach_function :puts, [ :string ], :int
end
MyLib.puts 'Hello boys using libc!'
For less minimalistic and more sane examples you may look at:
== REQUIREMENTS:
- You need a sane building environment in order to compile the extension.
== 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
== CREDITS:
Special thanks to:
- Yehuda Katz
- Luc Heinrich
- Andrea Fazzi
- Mike Dalessio
- Hongli Lai
- Evan Phoenix
- Aman Gupta
- Beoran
== LICENSE:
See LICENSE file.