# Rice 1.0.1 - Bug Fixes

**URL:** <https://www.ruby-forum.com/t/rice-1-0-1-bug-fixes/129449>\
**Category:** Ruby\
**Created:** [February 18, 2008, 6:50pm UTC](https://www.ruby-forum.com/t/rice-1-0-1-bug-fixes/129449 "2008-02-18T18:50:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jruyle](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d2c977/32.png) [@jruyle](https://www.ruby-forum.com/u/jruyle)\
**Post date:** [February 18, 2008, 6:50pm UTC](https://www.ruby-forum.com/t/rice-1-0-1-bug-fixes/129449/1 "2008-02-18T18:50:43Z")

</div>

# Rice: Ruby Interface for C++ Extensions

Change Log:

- Fixed x86\_64 bit install bug with -fPIC
- Fixed the tarball and zip file, they were missing an essential  
configuration file.

What is Rice?

Rice is a C++ interface to Ruby’s C API. It provides a type-safe and  
exception-safe interface in order to make embedding Ruby and writing  
Ruby extensions with C++ easier. It is similar to Boost.Python in many  
ways, but also attempts to provide an object-oriented interface to all  
of the Ruby C API.

What Rice gives you:

- A simple C+±based syntax for wrapping and defining classes
- Automatic conversion of exceptions between C++ and Ruby
- Smart pointers for handling garbage collection
- Wrappers for most builtin types to simplify calling code

Documentation: [http://rice.rubyforge.org](http://rice.rubyforge.org)  
Project Page: [http://rubyforge.org/projects/rice](http://rubyforge.org/projects/rice)

How do you get Rice?

gem install rice

Note: Rice does require a C++ compiler. See the Documentation page for  
more details.

How simple of a syntax?

wrapper.cpp

#include “rice/Class.hpp”

class MyWrapper {  
public:  
MyWrapper() { }

```
void doThis() { }
int doThat(int a, float b) { }

```

};

extern “C”  
void Init\_wrapper()  
{  
define\_class(“MyWrapper”)  
.define\_constructor(Constructor())  
.define\_method(“do\_this”, &MyWrapper::doThis)  
.define\_method(“do\_that”, &MyWrapper::doThat);  
}

extconf.rb

require ‘mkmf-rice’  
create\_makefile(“wrapper”)

test.rb

require ‘wrapper’  
c = MyWrapper.new  
c.do\_this  
c.do\_that(1, 2.0)

Building Ruby extensions have never been so easy!
