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.