tbing alternatives and similar libraries
Based on the "Scripting" category.
Alternatively, view tbing alternatives based on common mentions on social networks and blogs.
-
Cython
Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] website -
SWIG
A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] -
Wren
The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language. -
sol2
Sol v2.0 - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: -
Lua
A minimal and fast scripting engine for configuration files and basic application scripting. [MIT] -
Boost.Python
A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of tbing or a related project?
Popular Comparisons
README
tbing
Templates-based bindings and interfaces generator for C++
Info
tbing uses libclang to extract classes and functions information and then uses pystache (mustache) to generate files. This project has been initially made to generate the bindings for the gengine project.
Example
Create and fill the rules.json file:
[
{
"root": "mydirectory",
"include-relative": ".",
"include-dirs": [
],
"files": [
"*.h"
],
"excluded-files": [
],
"output":[
{
"template": "mytemplate.mustache",
"rule": "single-file",
"path": "generated.cpp"
}
],
"excluded-types":[
]
}
]
Fill the template file, g.e for emscripten:
#include <emscripten/bind.h>
using namespace emscripten;
EMSCRIPTEN_BINDINGS(my_module) {
{{#classes}}
class_<{{class_name}}>("{{class_name}}")
{{#methods}}
.function("{{method_other_name_camel_case}}", static_cast<{{{result_full_type}}} ({{class_name}}::*)({{#arguments}}{{{argument_full_type}}}{{comma}}{{/arguments}}){{method_const_qualifier}}>(&{{class_name}}::{{method_name}}))
{{/methods}}
;
{{/classes}}
}
Run the tbing application:
tbing your_directory
This will generate the 'generated.cpp' file as this:
#include <emscripten/bind.h>
using namespace emscripten;
EMSCRIPTEN_BINDINGS(my_module) {
class_<YourClass>("YourClass")
.function("aMethod", &YourClass::aMethod)
.function("anotherMethod", &YourClass::anotherMethod)
;
}