# README.rdoc

Path: | README.rdoc
Last Update: | Tue Apr 09 03:44:35 +0000 2013

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
        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:

- 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]