Software: Somata
Somata is a C++ library built on top of libffi which allows an arbitrary scripting language to use objects declared in C++. It is similar to SWIG in that it allows you to use native objects from within scripting languages, but it also allows you to use scripting objects as if they were native objects.
The bi-directional translation of native and scripting objects has an interesting side effect: it allows you to use objects from one scripting language (say, Perl) from within another scripting language (say, JavaScript). You do not need to do anything special in order to translate the objects; Somata takes care of that for you.
Somata is still under development. Currently, the following features are supported:
- Some scripting engines (JavaScript via Mozilla's SpiderMonkey, Perl)
- Class inhertiance
Planned features:
- More scripting engines (Python, Lua, Ruby?, Mono?)
Somata is a Greek word that means ‘bodies’, and is also an acronym for “Simple Object Marshiling And Translation Application”.