CPB “Bridging LUA and C++”

 

Home/Blog

 

Download

 

Documentation

 

Contact

 

In Development

 

 

 

Introduction

CPB bridges C++ and LUA, allowing the two languages to seamlessly communicate with each other.

 

LUA provides data driven logic that is used to extend C/C++ programs. This requires deep interaction between LUA and the host program. LUA scripts need to be able to access C/C++ variables and functions and vice versa.

 

Developing this “glue layer” for LUA is usually tedious and time consuming to support on even small projects.  CPB automates communication between the two languages with a minimal amount of integration and development effort.

Key features

  • Transparently interact with user defined C/C++ classes, variables and functions from LUA.

 

  • Automatically route C++ functions calls to LUA functions with the correct parameters and return values.

 

  • Simple and straight forward integration requiring no modifications to existing class structures or separate definition data.

 

  • Configure what variables and function to bind from LUA at run time. Change bindings requirements without recompiling you’re the host program.

 

  • Fast and memory efficient. Only requested bindings are generated.

Download

CPB is freely available to be used for all commercial and non-commercial purposes under the same license as LUA. If you do find it useful for your project, I've love to hear about it.

 

This download includes a sample app, as well as CPB but you will need to get the latest version of LUA separately. CPB is currently only available for the Windows X86 platform and Microsoft MSVC7.0

 
(Latest) CPB (0.06)

In Development

CPB is under active development and currently supports most basic C/C++ data structures and function but not all C++ features. New releases generally come out once a month to include more exception cases.

 

In Progress

  • Support for classes returned by Value
  • DLL support
  • More rigorous type checking
  • Hooks to C/C++ functions
  • support for more base types

 

V0.06

  • Native C++ constructor calls from LUA
  • Destructors and delete correctly handled for user defined types
  • Pointer support for base string types

 

V0.05

  • Support for User defined C++ structures and classes
  • C++ Functions as well as C Functions
  • Pointer support to structures and classes support
  • Detailed Nested structures
  • Deal with classes by value or by pointer
  • Static and member function support
  • Test app clean up

 

V0.04

  • PDB runtime requirement removed.  Data can be serialized out in to a new CPB file format
  • Use your symbol table to create your bindings once. Ship with just a very small CPB file.

 

V0.03

  • Passing in and returning of structures by value, pointer and reference
  • Support for enumerations
  • Support for user defined pointer types

 

V0.02

  • First public release supporting basic C variables and functions