tbing alternatives and similar libraries
Based on the "Scripting" category.
Alternatively, view tbing alternatives based on common mentions on social networks and blogs.
-
ChakraCore
ChakraCore is an open source Javascript engine with a C API. [Moved to: https://github.com/chakra-core/ChakraCore] -
SWIG
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. -
Wren
The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language. -
Duktape
Duktape - embeddable Javascript engine with a focus on portability and compact footprint -
djinni
A tool for generating cross-language type declarations and interface bindings. [Apache2] -
sol2
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: -
CppSharp
Tools and libraries to glue C/C++ APIs to high-level languages -
Lua
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description. -
nbind
:sparkles: Magical headers that make your C++ library accessible from JavaScript :rocket: -
shpp
Call c++ functions from a shell with any arguments of any types parsed automatically -
Boost.Python
A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
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)
;
}