Rb++ / RbGCCXML 1.0

What is rb++ / rbgccxml?

Rb++, rbgccxml, and rice compose a suite of tools that make wrapping
C++ libraries into
Ruby extensions as simple as possible. This is built as a replacement
for SWIG-Ruby.

What’s New

  • Full 1.9.2 support.
  • MinGW / MSYS build support on Windows.
  • Lots of tweaks and bug fixes.

rb++:
* Support for Rice::define_implicit_cast
* Re-added indentation and styling of the generated C++ code, should
be a little easier to read.

rbgccxml:
* Now using SAX to parse XML instead of DOM. Startup speed can be
slow as the XML tree gets
built into memory but overall parsing and querying, especially of
very large libraries, is
many times faster.

Project

Documentation: http://rbplusplus.rubyforge.org

rb++: GitHub - jameskilton/rbplusplus: Account name changed!
rbgccxml: GitHub - jameskilton/rbgccxml: Account name changed!

Installation

This single command will grab the whole stack needed for rb++ to work.

gem install rbplusplus

The stack includes four libraries: rb++, rbgccxml, gccxml_gem, and
rice

rb++

Rb++ makes it almost trivially easy to create Ruby extensions for C++
library.
In the simplest of cases, there is no need to ever touch C++,
everything is done
in a very simple and clean Ruby API.

rbgccxml

RbGCCXML allows one to easily parse out and query C / C++ code.
This library uses GCC-XML to parse out the C / C++ code into XML, and
then nokogiri
to parse and query that XML.

gccxml_gem

GCC-XML (www.gccxml.org) is an application that takes takes the parse
tree of C / C++
and constructs a very parsable and queryable XML file with all related
information.

This gem includes a binary build of GCC-XML for supported platforms,
to make it trivially easy to install. Platforms currently supported
are:

* Linux 32 & 64 bit
* Mac OS X
* Windows via MinGW / MSYS

Rice

The Ruby Interface for C++ Extensions, it provides a C++ API for
working with ruby. More information
available at its project page:

http://rice.rubyforge.org

Notes

Released under the MIT licence.

For those familiar with py++ / pygccxml, the similarities are in
function only.
Rb++ / rbgccxml were written from scratch to take advantage of the
Ruby language to it’s fullest.

Bugs, patches, feature requests, et al should be posted to the
corresponding project’s Issues page on github.