1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
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:
* the samples/ folder
* the examples on the wiki[http://wiki.github.com/ffi/ffi]
* the projects using FFI listed on this page[http://wiki.github.com/ffi/ffi/projects-using-ffi]
== 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.
|