Unmodified TeX has very few ways of preventing widows and orphans. In documents with figures, section headings, and equations, TeX can stretch the vertical glue between items in order to prevent widows and orphans, but many documents have no figures or headings. TeX can also shorten the page by 1 line, but this will give each page a different length which can make a document look uneven. The typical solution is to strategically insert \looseness=1, but this requires manual editing every time that the document is edited. Lua-widow-control is essentially an automation of the \looseness
method: it uses Lua callbacks to find stretchy paragraphs, then it lengthens them to remove widows and orphans. Lua-widow-control is compatible with all LuaTeX and LuaMetaTeX-based formats.
GopherLua is a Lua5.1(+ goto statement in Lua5.2) VM and compiler. It provides Go APIs that allow you to easily embed a scripting language to your Go host programs.
Package gopher-luar
simplifies data passing to and from gopher-lua.
Luar is designed to make using Lua from Go more convenient. Go structs, slices and maps can be automatically converted to Lua tables and vice-versa. The resulting conversion can either be a copy or a proxy. In the latter case, any change made to the result will reflect on the source.
Any Go function can be made available to Lua scripts, without having to write C-style wrappers.
Luar support cyclic structures (lists, etc.).
User-defined types can be made available to Lua as well: their exported methods can be called and usual operations such as indexing or arithmetic can be performed.