Skip to content
This repository has been archived by the owner on Mar 28, 2020. It is now read-only.
Ethan Watson edited this page Nov 27, 2016 · 1 revision

Welcome to the Binderoo Wiki

Binderoo is a rapid iteration framework designed to expose functionality between languages. Initial support is for C/C++ codebases, using D as the rapid iteration language.

Using Binderoo solely for easy communication with a C/C++ codebase is very easy. Take a really simple C++ class for example. Getting access to it starts with a definition like this:

module somecclass;
public import binderoo.binding.binding;

struct SomeCClass
{
  mixin CPPStructBase!( CPPMethods );

  extern( C++ ) struct CPPMethods
  {
    @BindVirtual void aVirtualFunction();
    @BindVirtual bool aVirtualFunctionThatReturnsBool();
    @BindVirtual void aPolymorphicVirtualFunction();
    @BindVirtual void aPolymorphicVirtualFunction( int aParameter );

    @BindMethod void aMethod();
    @BindMethod bool aMethodThatReturnsBool();
    @BindMethod void aPolymorphicMethod();
    @BindMethod void aPolymorphicMethod( int aParameter );
  }

  int aValue;
  float anotherValue;
  bool yetAnotherValue;
}

mixin BindModule!( 1 );

But that's just scratching at the surface of what you can do with Binderoo. This Wiki will serve both as documentation and a tutorial on how to use the system.

Clone this wiki locally