Skip to content
This repository

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

ruby-ffi 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

  • Intuitive DSL
  • Supports all C native types
  • C structs (also nested), enums and global variables
  • Callbacks from C to ruby
  • Automatic garbage collection of native memory

Synopsis

require 'ffi'

module MyLib
extend FFI::Library
ffi_lib 'c'
attach_function :puts, [ :string ], :int
end

MyLib.puts 'Hello, World 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.

Installation

From rubygems:

[sudo] gem install ffi

or from the git repository on github:

git clone git://github.com/ffi/ffi.git
cd ffi
rake gem:install

License

See LICENSE file.

Credits

The following people have submitted code, bug reports, or otherwide contributed to the success of this project:

Something went wrong with that request. Please try again.