lua.cr

Crystal to Lua bridge

lua.cr Build Status

Bindings to liblua and a wrapper around it. UNDER CONSTRUCTION 🚧

Only Lua 5.3 or higher is supported.

Installation

Add this to your application's shard.yml:

dependencies:
  lua:
    github: veelenga/lua.cr

Usage

First you need to require Lua:

require "lua"

Then you can run a chunk of Lua code:

Lua.run %q{
  local hello_message = table.concat({ 'Hello', 'from', 'Lua!' }, ' ')
  print(hello_message)
} # => prints 'Hello from Lua!'

Or run a Lua file and obtain results:

p Lua.run File.new("./examples/sample.lua") # => 42.0

Or even evaluate a function and pass arguments in:

lua = Lua.load
sum = lua.run %q{
  function sum(x, y)
    return x + y
  end

  return sum
}
p sum.as(Lua::Function).call(3.2, 1) # => 4.2
lua.close

More features coming soon. Try it, that's fun :)

Contributing

  1. Fork it https://github.com/veelenga/lua.cr/fork
  2. Create a feature branch git checkout -b my-new-feature and implement your feature
  3. Run tests crystal spec and format code crystal tool format
  4. Commit your changes git commit -am 'Add some feature'
  5. Push to the branch git push origin my-new-feature
  6. Create a new Pull Request
Github statistic:
  • 35
  • 0
  • 4
  • 5
  • 4
  • about 1 month ago

License:

MIT License

Links: