What's the best way to embed Ruby as a scripting language in C++? Using ruby.h? SWIG? Something else? What I need is to expose some C++ objects to Ruby and have the Ruby interpreter evaluate scripts that access these objects. I don't care about extending Ruby or accessing it in C++.
I've found thisarticle on embedding Ruby in C++, and while it's very useful, it's kinda old and I was wondering if there are any other resources on the subject (or open source implementations of similar engines).
- You can use
mrubygithub.com/mruby/mruby now!Jahan Zinedine– Jahan Zinedine2020-01-17 16:33:50 +00:00CommentedJan 17, 2020 at 16:33
5 Answers5
Rice is looking very promising.
1 Comment
Ruby provides a very helpful README.EXT file. It has lots of information about how to extend Ruby, and convert between C & Ruby types.
There is also thisexcerpt from thepick axe book which pretty much covers the same thing.
In my case, when I added Ruby scripting to my application I decided against using swig, because my needs were very simple, and I didn't want to add yet another build dependency.
Comments
swig is probablly the way to go..... but ruby doesnt embed too well......
if you want a language that embeds nicely into C++, try lua
4 Comments
You might wish to check outtinyrb.
Comments
I've been working on Rarity (https://github.com/Plaristote/Rarity), which does two things:
- Generates Ruby bindings from a YML description of your C++ API
- Allows interaction with Ruby script in the most C++ fashion there is
I've solved a good deal of question (exception handling, garbage collection)...I haven't seen anywhere else the code generation that Rarity uses to make your bindings come to life. I also haven't seen any other lib that allows such an easy conversion between C++ and Ruby types.
I think Rarity's worth the shot ! And I'd be glad to have some feedback as well :) !
Comments
Explore related questions
See similar questions with these tags.