All Projects → kevinresol → hxvm-lua

kevinresol / hxvm-lua

Licence: other
Haxe Lua Bindings (Embed Lua runtime in your Haxe app)

Programming Languages

haxe
709 projects

Haxe Lua Bindings Build Status

Embed the Lua scripting engine into your Haxe application

Supported targets

  • c++ (tested on macOS and windows)
  • js (tested on Chrome)
  • nodejs

Example Usage

// create an instance
var lua = new vm.lua.Lua();

// set global variables
lua.setGlobalVar('square', function(v) return v * v);
lua.setGlobalVar('foo', 2);

// run a script
lua.run('return square(foo)'); // gives you 4

// supply an object as second paramter to run() to set global vars
lua.run('return bar', {bar: 2}); // gives you 2

// run function
lua.run('function add(a, b) \n return a + b \n end'); // first we create a lua function
lua.call('add', [1, 2]); // gives you 3

// destroy when done with the instance
lua.destroy();

Install

Target C++

When targeting C++ we compile the Lua runtime from its C source code.

  1. Install haxelib: linc_lua
  2. Add -lib linc_lua to your haxe build

Target JS

When targeting JS we utilize Fengari, which is the Lua VM written in pure JavaScript.

You can choose to either build a standalone js file for Fengari or require it in your project.

For browser without bundlers
  1. Install haxelib: hxjs-fengari
  2. Git clone https://github.com/fengari-lua/fengari
  3. Run yarn && yarn run build
  4. Add the output file (dist/fengari.js) to your project using a <script> tag in html
  5. Add -lib hxjs-fengari -D fengari_global to your haxe build

For Node.js or browser js with bundlers

  1. Install haxelib: hxjs-fengari
  2. yarn add https://github.com/fengari-lua/fengari
  3. Add -lib hxjs-fengari to your haxe build

TODO

  • Implement/test coroutines
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].