Crystal to Lua bridge
Crystal
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
spec
src
.ameba.yml
.gitignore
.travis.yml
LICENSE
README.md
shard.yml

README.md

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