I'd like to announce Luar v2, the Lua reflection bindings for Go (based on
Arzilli's Golua).

Luar is a convenience bridge between Lua and Go, with awesomeness like:

- Modify Go data (maps, structures, you name it) from Lua using regular Lua
syntax (e.g. `m[3] = 17` and `m.field = 'foobar'`).

- Conversely, modify Lua data (tables, userdata with metatables) from Go.

- Call Go functions from Lua over a mix of Go and Lua arguments.

- Likewise, call Lua functions from Go.

- Use Go channels from Lua.

- Use Lua regular `for` construct to loop over Go maps, slices, strings, etc.

- Loop over Lua data from a Go `for`.

See some examples on godoc: https://godoc.org/gopkg.in/stevedonovan/luar.v2.

This library is not new, as Luar was first released a few years ago by Steve
Donovan, then left unmaintained for a while. I took over maintenance and
rewrote most of the API to simplify its use:

- Reflection is no longer required from the caller side.

- I've halved the number of exported functions.

- Easier of use (less parameters).

- Cyclic structures are supported on both sides.

- Initialization of the Lua state is optional and can be completely customized.

- LuaToGo handles more conversions and allows for merging Lua data into existing
maps.

- LuaObjects support __call/__index/__newindex metamethods.

- LuaObject's Get*()/Set() functions support subfield indexing.

- Does not panic. (At least not when it can be avoided.)

- Tons of bug fixes.

v2 is still in development, any feedback is very welcome.

--
Peter Neidhardt

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to