lua

Lua bridge lua bindings
HEAD Yanked release released

lua.cr Build Status

Bindings to liblua and a wrapper around it. UNDER CONSTRUCTION :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
lua:
  github: veelenga/lua.cr
  
License MIT
Crystal 0.25.0

Authors

Dependencies 0

Development Dependencies 1

  • ameba ~> 0.11
    {'github' => 'crystal-ameba/ameba', 'version' => '~> 0.11'}

Dependents 0

Last synced .
search fire star recently