A generator for Ruby FFI bindings
Author: Richard Musiol Contributors: Jeremy Voorhis (thanks for the initial idea) License: MIT (see LICENSE)
- Generation of FFI methods, structures, unions, enumerations and callbacks
- Generation of YARD documentation comments
- Tested with headers of the following libraries:
- CEF (Chromium Embedded Framework)
- Ruby 1.9
- Clang 3.5 or later (Download the binaries or
build from source configured with
These requirements are only for running the generator. The generated files are Ruby 1.8 compatible and do not need Clang.
Use the following interface in a script or Rake task:
require "ffi_gen" FFIGen.generate( module_name: "Clang", ffi_lib: "clang", headers: ["clang-c/Index.h"], cflags: `llvm-config --cflags`.split(" "), prefixes: ["clang_", "CX"], output: "clang-c/index.rb" )
Other generated files can be found in the test/output directory.
You may need to set additional include directories:
Your GCC include paths can be seen with:
`gcc -print-prog-name=cc1` -v
Projects using ffi_gen
- Support for more libraries:
- (Write me if you have a whish)
- Automatic generation of object oriented wrappers
- Polish YARD documentation comments some more
Please use GitHub's issue tracker for problems or suggestions. Pull requests are welcome, too.