RubyLuaBridge - a seamless bridge between Ruby and Lua
Relevant web pages:
RubyLuaBridge is a C extension that uses the actual Lua C library. It currently targets Lua 5.1 and Ruby 1.8. You must run:
% ruby extconf.rb --with-lua-include=/path/to/lua/include --with-lualib=lualibname % make % sudo make install
There are extconf helpers for various platforms. Run these instead of the ‘ruby extconf.rb’. Included are:
Read about using Lua in Ruby.
NOT IMPLEMENTED YET, SUGGESTIONS ARE WELCOME. Read about using Ruby in Lua.
simplest marshalling possible
simplest API possible
do more complicated things in Lua itself, rather than exposing them! For example, the coroutine library is not explicitly exposed because it can be handled all through eval and indexing: l.coroutine.create(f)
Ruby to Lua Type Mapping
new Lua::Table clone
new Lua::Table clone
Lua to Ruby Type Mapping
package as gem
stack trace in error callback
how to get some external lua_State there?
how to deal with .clone and .dup?
accessing Ruby from Lua
The following persons have contributed to RubyLuaBridge:
Evan Wies (evan a neomantra d net)
RubyLuaBridge is inspired by, but not derived from:
Licensed under the BSD License. It is free software, and may be redistributed under the terms specified in the accompanying LICENSE file, as follows:
Copyright © 2007, Evan Wies. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the neomantra nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY Evan Wies ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Evan Wies BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Download the latest sources from there. Please use the mailing list and issue tracking features as well.
I am particularly interested in problems you may have on various systems. I have only tested it in Ubuntu Dapper and MacOSX.