# Tutorial on wrapping C/C++ libraries for use in Ruby?

**URL:** <https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429>\
**Category:** Ruby\
**Created:** [August 4, 2006, 8:21pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429 "2006-08-04T20:21:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rtijoriwala](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/df705f/32.png) [@rtijoriwala](https://www.ruby-forum.com/u/rtijoriwala)\
**Post date:** [August 4, 2006, 8:21pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429/1 "2006-08-04T20:21:08Z")

</div>

Is there any tutorial/link/website that explains how to wrap existing  
c/c++ libraries for use from within Ruby?

---

<div class="post-metadata">

**Author:** ![rtijoriwala](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/df705f/32.png) [@rtijoriwala](https://www.ruby-forum.com/u/rtijoriwala)\
**Post date:** [August 4, 2006, 9:03pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429/2 "2006-08-04T21:03:59Z")

</div>

On 8/4/06, Ritesh T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Is there any tutorial/link/website that explains how to wrap existing  
> c/c++ libraries for use from within Ruby?

Google for “swig ruby” and you should find some useful links. SWIG  
([http://www.swig.org/](http://www.swig.org/)) is a tool for semi-automatically generating  
Ruby wrapper code for C/C++ libraries.

---

<div class="post-metadata">

**Author:** ![rtijoriwala](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/df705f/32.png) [@rtijoriwala](https://www.ruby-forum.com/u/rtijoriwala)\
**Post date:** [August 4, 2006, 9:49pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429/3 "2006-08-04T21:49:02Z")

</div>

Lyle J. wrote:

> On 8/4/06, Ritesh T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > Is there any tutorial/link/website that explains how to wrap existing  
> > c/c++ libraries for use from within Ruby?
> 
> Google for “swig ruby” and you should find some useful links. SWIG  
> ([http://www.swig.org/](http://www.swig.org/)) is a tool for semi-automatically generating  
> Ruby wrapper code for C/C++ libraries.

I tried swig but is not that clean. I am looking for hand wrapping C/C++  
libraries for use with Ruby.

---

<div class="post-metadata">

**Author:** ![rtijoriwala](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/df705f/32.png) [@rtijoriwala](https://www.ruby-forum.com/u/rtijoriwala)\
**Post date:** [August 4, 2006, 10:07pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429/4 "2006-08-04T22:07:10Z")

</div>

On 8/4/06, Ritesh T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I tried swig but is not that clean. I am looking for hand wrapping C/C++  
> libraries for use with Ruby.

1. [Radar – O’Reilly](http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html)

2. There’s a good introduction in  
[https://pragprog.com/titles/ruby/programming-ruby-2nd-edition/](http://www.pragmaticprogrammer.com/titles/ruby/index.html), which you  
should already own.

Joe

---

<div class="post-metadata">

**Author:** ![rtijoriwala](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/df705f/32.png) [@rtijoriwala](https://www.ruby-forum.com/u/rtijoriwala)\
**Post date:** [August 4, 2006, 10:13pm UTC](https://www.ruby-forum.com/t/tutorial-on-wrapping-c-c-libraries-for-use-in-ruby/101429/5 "2006-08-04T22:13:14Z")

</div>

Ritesh T. wrote:

> libraries for use with Ruby.

The Pickaxe ([https://pragprog.com/titles/ruby/programming-ruby-2nd-edition/](http://www.pragmaticprogrammer.com/titles/ruby/index.html))  
is probably your best source of information about this. Also the Ruby  
tarball includes a file called (iirc) README.EXT that has the basic  
information.
