README.rdoc

Path: README.rdoc
Last Update: Mon Feb 22 14:38:04 +0000 2010

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.

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
  • the projects using FFI listed on this page

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.

[Validate]