Lune
A pure Go implementation of the Lua virtual machine.
Install / Use
/learn @mna/LuneREADME
Lune
A pure Go implementation of the Lua virtual machine (v5.2).
Goals / Features
- Run Lua code. Make every pure Lua code (without C calls outside of the standard libs) work as expected. Every lua binary chunk compiled using
luacshould work on Lune, unless it relies on the C API. - Implement the Lua standard libraries in Go. Make it transparent to Lua code.
- Embeddable. This is a Go package, it can be embedded in any Go application.
- Go-friendly. Just like Lua is the dynamic companion to C, Lune tries to bring this Batman and Robin camaraderie to Go. This means registering Go functions to be callable from Lua-on-Lune. This may be a port of the C API to Go, or something else that does more or less the same thing.
Current status
Dormant. Unstable. Ugly. Unsafe. Unfast.
A few things work, though, like ummm... loading and deserializing the binary chunks. On 64-bit little-endian architectures at least. And running some trivial programs (see ./vm/testdata). Closures that actually use the closed-over environment currently don't work (upvalues in Lua literature). Tail calls and variadic arguments and return values don't work. Metamethods are not there yet.
License
The BSD 3-Clause license, the same as the Go language. Lua itself is licensed under the MIT License.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
