ruby-ffi
by Wayne Meissner http://wiki.github.com/ffi/ffi
- Atastor: My fork tries to make Ruby-FFI compile under MacRuby. No success, so far.
-
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.
-
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
require 'ffi' module MyLib extend FFI::Library ffi_lib 'c' attach_function :puts, [ :string ], :int end MyLib.puts 'Hello boys using libc!'
For less minimalistic and more sane examples you may look at:
-
You need a sane building environment in order to compile the extension.
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
Special thanks to:
-
Yehuda Katz
-
Luc Heinrich
-
Andrea Fazzi
-
Mike Dalessio
-
Hongli Lai
-
Evan Phoenix
-
Aman Gupta
-
Beoran
See LICENSE file.
-