ExLua

Project license Travis CI build status Coveralls.io code coverage Hex.pm package Hex.pm downloads Gratipay donations

Lua for Elixir, based on Luerl.

Examples

  [42.0] = Lua.State.new |> Lua.eval!("return 6 * 7")

Reference

https://hexdocs.pm/exlua/

Types

ExLua (Elixir)Luerl (Erlang)Lua
nil'nil'nil
true, false'true', 'false'true, false
integerintegernumber
floatfloatnumber
string (binary)binarystring
{:function, ...}#function{...}function
{:userdata, ...}#userdata{...}userdata
{:thread, ...}#thread{...}thread
{:table, ...}#table{...}table

Functions

ExLua (Elixir)Luerl (Erlang)Lua (C)
Lua.Error{:error, ...}luaL_error
Lua.State.newluerl:initluaL_newstate
Lua.call_chunk!luerl:call_chunklua_pcall
Lua.call_function!luerl:call_functionlua_pcall
Lua.evalluerl:evalluaL_dostring
Lua.eval!luerl:evalluaL_dostring
Lua.eval_fileluerl:evalfileluaL_dofile
Lua.eval_file!luerl:evalfileluaL_dofile
Lua.gcluerl:gclua_gc
Lua.loadluerl:loadluaL_loadstring
Lua.load!luerl:loadluaL_loadstring
Lua.load_fileluerl:loadfileluaL_loadfile
Lua.load_file!luerl:loadfileluaL_loadfile
Lua.get_tableluerl:get_tablelua_gettable
Lua.set_tableluerl:set_tablelua_settable

Installation

Add exlua to your list of dependencies in your project’s mix.exs file:

defp deps do
  [{:exlua, "~> 0.2.0"},
   {:luerl, github: "bendiken/luerl", branch: "exlua",
            compile: "make && cp src/luerl.app.src ebin/luerl.app"}]
end

Alternatively, to pull in the dependency directly from a Git tag:

defp deps do
  [{:exlua, github: "bendiken/exlua", tag: "0.2.0"},
   {:luerl, github: "bendiken/luerl", branch: "exlua",
            compile: "make && cp src/luerl.app.src ebin/luerl.app"}]
end

Alternatively, to pull in the dependency directly from a Git branch:

defp deps do
  [{:exlua, github: "bendiken/exlua", branch: "master"},
   {:luerl, github: "bendiken/luerl", branch: "exlua",
            compile: "make && cp src/luerl.app.src ebin/luerl.app"}]
end