ffi /
| name | age | message | |
|---|---|---|---|
| |
.autotest | Thu Dec 04 15:38:11 -0800 2008 | |
| |
.gitignore | ||
| |
.hgignore | Fri Jun 05 05:38:54 -0700 2009 | |
| |
History.txt | ||
| |
LICENSE | Wed Oct 29 18:25:22 -0700 2008 | |
| |
README.rdoc | ||
| |
Rakefile | ||
| |
bench/ | ||
| |
ext/ | ||
| |
gen/ | Thu May 07 17:52:59 -0700 2009 | |
| |
lib/ | ||
| |
libtest/ | ||
| |
nbproject/ | ||
| |
ruby-ffi-Makefile.mk | Wed Nov 05 00:51:18 -0800 2008 | |
| |
samples/ | ||
| |
spec/ | ||
| |
tasks/ |
README.rdoc
ruby-ffi
by Wayne Meissner
http://kenai.com/projects/ruby-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:
- 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 mercurial repository on Kenai:
hg clone https://kenai.com/hg/ruby-ffi~mercurial ruby-ffi cd ruby-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.

