views:

110

answers:

6

C/C++ would be good option to write some of the performance critical aspects of a Ruby Application. I know this is possible.

I would like to know how to add C/C++ code into Ruby code; any other language for that matter.

Are there any practical applications of this which you noticed in open source projects or else?

+2  A: 

Hi,

you should have a look at SWIG - it allows you to create ruby extensions in C/C++.

andyp
A: 

Compile your high performance code into a system service/executable, and call it from inside Ruby...?

danp
Sure, system service would be one of the ways. It would be all right for some situations. And probably clumsy to run a system service for small pieces of c++ code in a big algo written in ruby.
ragu.pattabi
+4  A: 

Look in the "Extending Ruby" section of the Pickaxe book:

http://www.ruby-doc.org/docs/ProgrammingRuby/html/ext_ruby.html

peejaybee
A: 

Seems like you need to read up on Extending Ruby

Peter M
Thanks for the suggestion. This is probably one of the first things to study.
ragu.pattabi
+4  A: 

Besides "Extending Ruby", here are two other resources:

  • README.EXT - shows you more about how to build C extensions. A good compliment to "Extending Ruby"
  • Ruby Inline - This is a library that tries to make it easier to build C extensions by having you call methods in ruby to compile C code.
Adrian
+1  A: 

We use ffi in one of our projects.

Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling those functions from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby and JRuby.

It works quite well.

Mark
Thanks! Quite interesting.
ragu.pattabi