yuin/gopher-lua

GopherLua: VM and compiler for Lua in Go

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 2 minutes ago
Added to GitGenius on September 9th, 2026
Created on February 15th, 2015
Open Issues & Pull Requests: 104 (+0)
GitHub issues: Enabled
Number of forks: 707
Total Stargazers: 6,979 (-1)
Total Subscribers: 142 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 64.5 days
Mean response time: 179.3 days
90th percentile: 639.5 days
Tracked items: 7

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 17
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 561 days
Stale 30+ days: 17
Stale 90+ days: 17

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

GopherLua is a Lua5.1 VM and compiler written in Go that allows you to embed a scripting language into Go host programs.

The tool solves the problem of adding extensible scripting capabilities to Go applications. It implements a Lua interpreter entirely in Go, supporting Lua5.1 syntax plus the goto statement from Lua5.2. Rather than using a stack-based API like the original Lua implementation, GopherLua prioritizes user-friendliness by working with objects that implement an LValue interface. This means developers interact with concrete Go types rather than managing stack indices, making the API more intuitive for Go programmers. The tool also supports channel operations, enabling integration with Go's concurrency model.

GopherLua suits projects that need to embed a scripting layer without external dependencies or C bindings. It works well when you want Lua's familiar syntax and semantics accessible from Go code, and when you prefer a straightforward object-oriented API over stack manipulation. The tool is not optimized for raw speed—it performs comparably to Python3 on micro benchmarks—so it fits use cases where scripting convenience matters more than maximum performance. Projects requiring metatable support or advanced error handling through public struct methods should note these limitations exist.

The project maintains steady activity with regular commits addressing bug fixes and feature requests. Pull requests receive thoughtful review and discussion before merging. The maintainer actively documents the codebase and responds to issues, though the pace of development is measured rather than rapid. The project includes a wiki with benchmark data and maintains clear documentation linking to both the Lua reference manual and Go API documentation.