Jason Roelofs
2021-05-19 13:35:20 UTC
Rice is a C++ header-only library that serves dual purposes. First, it makes it much
easier to create Ruby bindings for existing C++ libraries. Second, it provides an
object oriented interface to Ruby's C API that makes it easy to embed Ruby and write
Ruby extensions in C++.
Rice is similar to Boost.Python and pybind11 in that it minimizes boilerplate code needed
to interface with C++. It does this by automatically determining type information allowing
Ruby object to be converted to C++ and vice versa.
What Rice gives you:
- A simple C++-based syntax for wrapping and defining classes
- Automatic type conversions between C++ and Ruby
- Automatic exception conversions between C++ and Ruby
- Smart pointers for handling garbage collection
- Wrappers for most builtin types to simplify calling code
The source is hosted on GitHub: http://github.com/jasonroelofs/rice
Bug tracking: http://github.com/jasonroelofs/rice/issues
Documentation: http://jasonroelofs.github.io/rice
## What's new?
Where as Rice 3 and earlier required some pre-compilation on installation, Rice 4 is now a header-only
library, drastically improving the usability of the library and expanding the places Rice can be used.
Rice 4 also includes built-in support for many of the common STL libraries!
This was a significant amount of work and required some backwards incompatible changes. See the
documentation for more information. Due to this, for those who prefer to stay on Rice 3 we will keep
that version maintained as well.
Unsubscribe: <mailto:ruby-talk-***@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
easier to create Ruby bindings for existing C++ libraries. Second, it provides an
object oriented interface to Ruby's C API that makes it easy to embed Ruby and write
Ruby extensions in C++.
Rice is similar to Boost.Python and pybind11 in that it minimizes boilerplate code needed
to interface with C++. It does this by automatically determining type information allowing
Ruby object to be converted to C++ and vice versa.
What Rice gives you:
- A simple C++-based syntax for wrapping and defining classes
- Automatic type conversions between C++ and Ruby
- Automatic exception conversions between C++ and Ruby
- Smart pointers for handling garbage collection
- Wrappers for most builtin types to simplify calling code
The source is hosted on GitHub: http://github.com/jasonroelofs/rice
Bug tracking: http://github.com/jasonroelofs/rice/issues
Documentation: http://jasonroelofs.github.io/rice
## What's new?
Where as Rice 3 and earlier required some pre-compilation on installation, Rice 4 is now a header-only
library, drastically improving the usability of the library and expanding the places Rice can be used.
Rice 4 also includes built-in support for many of the common STL libraries!
This was a significant amount of work and required some backwards incompatible changes. See the
documentation for more information. Due to this, for those who prefer to stay on Rice 3 we will keep
that version maintained as well.
Unsubscribe: <mailto:ruby-talk-***@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>