awesome-lua
by LewisJEllis
A curated list of quality Lua packages and resources.
AI summary
Lua toolkit
A curated list of quality Lua packages and resources for building applications.
- stars
- 4K
- forks
- 322
- watching
- 154
- awesome lists
- 12
- entries
- 207
What's in the list
207 links in 64 sections, with live GitHub stats.activeno commit in 2y
Resources / Implementations, Interpreters, and Bindings
- Lua
Lua's original ANSI C interpreter
Resources / Implementations, Interpreters, and Bindings / Lua
Lua Repo
The official Lua repo, as seen by the Lua team, mirrored to GitHub
Resources / Implementations, Interpreters, and Bindings
- LuaJIT
High-performance Just-In-Time compiler for Lua
LLVM-Lua
Compiles Lua to LLVM
lua.vm.js
Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js
Moonshine
A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing
- Fengari
The Lua VM rewritten in Javascript with seamless JS and DOM interoperability
MoonSharp
A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms
UniLua
A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine
lupa
Python bindings to LuaJIT2
golua
Golang bindings to the Lua C API
GopherLua
Lua 5.1 VM and compiler implemented in Go with Go APIs
LuaBridge
A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua
Resources / Package Managers
- LuaRocks
De-facto tool for installing Lua modules as packages called "rocks", plus public rock repository and website. Much like npm or pip
Resources / Build Tools and Standalone Makers
Resources / Debugging and Profiling
- ProFi
Simple profiler that works with LuaJIT and produces a report file
luatrace
Toolset for tracing/analyzing/profiling script execution and generating detailed reports
StackTracePlus
Drop-in upgrade to Lua's stack traces which adds local context and improves readability
MobDebug
Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio
lovebird
Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support
Resources / IDEs and Plugins
- Lua Development Tools
Eclipse plugin which provides code completion, debugging, and more. Built on Metalua
- Lua for IDEA
IntelliJ IDEA plugin which, among other things, provides code completion, smart highlighting, and experimental debugging
- ZeroBraneStudio
Lightweight, customizable, cross-platform Lua-dedicated IDE with code completion and analysis, written in Lua. Has broad debugging support for numerous Lua engines
- BabeLua
Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities
lua-mode
Emacs major mode for editing Lua
vscode-lua
VSCode intellisense and linting
Resources / Utility Belts
Lua Fun
High-performance functional programming library designed for LuaJIT
Moses
Functional programming utility belt, inspired by Underscore.js
Penlight
Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't
lua-stdlib
Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff
Microlight
A little library of useful Lua functions; the 'extra light' version of Penlight
- compat53
Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1
RxLua
Reactive Extensions, Observables, etc
Resources / Game Engines
- LÖVE 2D
Desktop game development platform. Cross-platform, feature-complete, well-adopted
- Corona SDK
Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads
- MOAI
Open source, cross-platform, mobile game development framework. Minimalist C++ engine powered by Lua scripting
- Drystal
Open source, games can run on Linux or on any platform with a recent web browser
- Amulet
Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS
- LÖVR
3D framework for creating virtual reality experiences, inspired by LÖVE 2D
Resources / Game Development / Corona
- Coronium
Simple cloud platform supporting analytics, data objects, user management, and more
Resources / Game Development / LÖVE
awesome-love2d
A list like this one, but focused on game dev and the LÖVE platform
lurker
Shortens the iteration cycle by auto-swapping changed Lua files in a running LÖVE project
- HUMP
A set of lightweight helpers for LÖVE; a game-oriented utility belt
Resources / Game Development / MOAI
- moaifiddle
Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL
Resources / Game Development
Resources / Game Development / Collision detection
bump.lua
Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution
- HardonCollider
Detect collisions between arbitrarily positioned and rotated shapes of any type
Resources / Game Development / Tweening
Resources / Game Development / Examples
termtris
A tetris clone, written in literate style with "an emphasis on learn-from-ability"
PacPac
A Pac-man clone, made with LÖVE
Mari0
Fusion of Mario and Portal, made with LÖVE. See also its
Journey to the Center of Hawkthorne
2D platformer based on Community's episode, made with LÖVE
Resources / Logging
lua-log
Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more
LuaLogging
Log4j-inspired logging library supporting various appenders
- luasyslog
Log to syslog, based on LuaLogging
Resources / Web/Networking Platforms
- OpenResty
A fast and scalable web application platform created by extending Nginx with Lua. Today's de-facto Lua web platform, used heavily by Cloudflare, Taobao, Tencent, and others
- turbo
Event-driven, non-blocking, LuaJIT-based networking suite and framework, inspired by Tornado
- Kepler Project
A collection of web-oriented projects using a common set of standards and components
Pegasus.lua
Pegasus.lua is a http server to work with web applications written in Lua language
Resources / OpenResty
awesome-resty
A list like this one, but focused on OpenResty
Resources / OpenResty / Core platform
- ngx_lua
The core piece of OpenResty. Embeds Lua in Nginx and exposes, among other things, the cosocket API for non-blocking sockets (compatible with LuaSocket's API)
- OpenResty GitHub Organization
Home of the repositories for ngx_lua, ngx_openresty, and many related modules
Resources / OpenResty / Third-party modules
lua-resty-http
Lua HTTP client driver, built on the cosocket API
Resources / OpenResty / Frameworks & tools
Resources / Command-line Utilities
ansicolors
Simple function for printing to the console in color
cliargs
A simple command-line argument parsing module
lua-term
Terminal operations and manipulations
argparse
A feature-rich command line parser inspired by argparse for Python
Resources / Concurrency and Multithreading / Coroutine-based multitasking:
Lumen
Simple concurrent task scheduling
ConcurrentLua
Implements an Erlang-style message-passing concurrency model
- cqueues
Library for managing sockets, signals, and threads based on an event loop with coroutines
Resources / Concurrency and Multithreading / Multithreading:
llthreads
A simple wrapper for low-level pthreads & WIN32 threads
llthreads2
Newer rewrite of llthreads
lanes
Library implementing a message passing model with one OS thread per Lua thread
luaproc
Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also where it originated
Resources / Templating
- lustache
Mustache template implementation
etlua
Embedded Lua templates, ERB-style
lua-resty-template
Lua-oriented template engine for OpenResty, somewhat Jinja-like
Resources / Documentation
Resources / Object-oriented Programming
30log
Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines
middleclass
Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins
Resources / File system and OS
- LuaFileSystem
Extends and complements Lua's built-in set of file system functions
luaposix
Bindings for POSIX APIs, including curses
- lunix
Bindings to common Unix system APIs, striving for thread-safety
lua-path
File system path manipulation library
Resources / Time and Date
Resources / Image Manipulation
magick
Lua bindings to ImageMagick for LuaJIT using FFI
Resources / Digital Signal Processing
Resources / Hardware and Embedded Systems
- eLua
Lua, extended with optimizations and specific features for efficient and portable embedded software development
Resources / Math and Scientific Computing
- SciLua
Numerical/scientific computing framework built on LuaJIT, with an interface to R
- Torch7
Scientific computing framework with wide support for machine learning algorithms, used by Facebook, Google, and more
- lhf's Lua Tools
Assorted libraries and tools, many math- or data-related
Resources / Parsing and Serialization / JSON
Resources / Parsing and Serialization / XML
Resources / Parsing and Serialization / MessagePack
- lua-MessagePack
Pure Lua implementation of MessagePack
lua-cmsgpack
A MessagePack C implementation with Lua bindings, as used by Redis.=
Resources / Parsing and Serialization / LPeg
- LPeg
A pattern-matching library for Lua, based on Parsing Expression Grammars
lpeg_patterns
A collection of LPeg patterns
LuLPeg
A pure Lua implementation of LPeg v0.12
LPegLJ
A pure LuaJIT implementation of LPeg v1.0
LPegLabel
An extension of LPeg adding support for labeled failures
Resources / Parsing and Serialization
Resources / Humanize
i18n.lua
Internationalization library with locales, formatting, and pluralization
inspect.lua
Human-readable representation of Lua tables
serpent
Serializer and pretty printer
Ser
Dead simple serializer with good performance
say
Simple string key-value store for i18n
Resources / Compression
Resources / Cryptography
LuaCrypto
Lua bindings to OpenSSL
lua-lockbox
A collection of cryptographic primitives written in pure Lua
luatweetnacl
Bindings to tweetnacl, modern high-security cryptographic library
luaossl
"Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http
Resources / Network
LuaSocket
Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP
lua-websockets
WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket
lua-cURLv3
Lua binding to libcurl
lua-http
Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues
Resources / Data Stores
- LuaSQL
Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL
pgmoon
Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues
lua-resty-mysql
Lua MySQL driver for OpenResty
lua-resty-cassandra
Lua Cassandra client driver for OpenResty and others
Resources / Data Stores / Redis
redis-lua
Pure Lua client library for Redis
lua-resty-redis
Lua Redis client driver for OpenResty
lredis
Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues
Resources / Message Brokers
lua-zmq
Lua bindings to ZeroMQ
lzmq
A newer Lua binding to ZeroMQ
lua-resty-kafka
Kafka client driver based on OpenResty cosockets
lua-resty-rabbitmqstomp
RabbitMQ client library based on OpenResty cosockets
Resources / Testing
Resources / Foreign Function Interfaces
- LuaJIT FFI
LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code
luaffi
Standalone FFI library, compatible with the LuaJIT FFI interface
Resources / Analysis Tools and ASTs
Resources / Analysis Tools and ASTs / luacov
luacov-coveralls
LuaCov reporter for coveralls.io
Resources / Analysis Tools and ASTs
luacheck
Simple static analyzer which detects accidental globals and undefined or shadowed locals
Metalua
Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way
LuaInspect
Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others
LuaMinify
Minifier which also brings its own static analysis tools, lexer, and parser
Typed Lua
A typed superset of Lua that compiles to plain Lua
lua-parser
A Lua 5.3 parser written using LPegLabel, with improved error messages
Resources / Experimental, etc
punchdrunk.js
Moonshine + LÖVE API reimplementation = run LÖVE games in the browser
luvit
Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript
graphql-lua
Lua implementation of
Resources / Scriptable by Lua
- luakit
Fast, small, webkit based browser framework extensible by Lua
- Hammerspoon
A powerful, extensible OS X automation tool. A community-maintained fork of
kpie
A scripting utility to juggle windows
- lumail
A console-based mail client, with extensive scripting capabilities
- AwesomeWM
A highly configurable and extensible window manager for X, scripted and configured by Lua
- Textadept
Extremely lightweight, customizable, cross-platform editor, written (mostly) in (and scripted by) Lua
KoReader
An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices
Resources / Miscellaneous
- MoonScript
Moonscript is a dynamic scripting language that compiles to Lua. It reduces verbosity and provides a rich set of features like comprehensions and classes. Its author calls it 'CoffeeScript for Lua'
- sitegen
A static site generator which uses MoonScript and supports HTML and Markdown, page grouping, and plugins
Resources / Community
- lua-l
The official Lua mailing list, and one of the focal points of the Lua community
- Lua.Space
The Lua community blog
- Lua Users Foundation
An association of individuals with the mission of supporting and promoting Lua and its community and ecosystems
- lua-users.org
A site for and by users of Lua, featuring an IRC channel, a web archive of lua-l, and a large wiki
Resources / Community / Conferences/Meetups
- Lua Workshop
Annual 2-day meeting of the Lua community, in rotating locations
- Lua Conf
Annual 1-day Lua conference in Brazil
- FOSDEM
Annual 2-day gathering of F/OSS developers in Brussels which sometimes has a "Lua devroom"
Resources / References
- Reference Manual
The official definition of the Lua language
- lua-users wiki
A large community-maintained collection of Lua information and resources, supplementing the official website
- Lua Unofficial FAQ
Answers all sorts of Lua-related questions, including many of the form 'How to ___?'
Resources / Glossaries
- Lua 5.3 Glossary
A glossary of some essential Lua terms
Resources / Style Guides
- Lua-users style guide
A general, high-level style guide; unopinionated, easily agreed on
Olivine style guide
A more opinionated and specific, and therefore more rigorous, guide
Resources / Tutorials
- Lua Crash Course
Short crash course readover, or reference for when you forget the basics
- Learn Lua in 15 Minutes
A well-commented example file which covers the basics
- Learning Lua from JS
An overview of the similarities and differences between Lua and JS; a great start for JavaScript folks looking to pick up Lua
- lua-users tutorial
In-depth collection of tutorials aimed at newcomers
Lua Missions
A series of 'Missions' to work through which are designed to teach aspects of Lua along the way
- Creating an Image Server
Walks through setting up and using OpenResty to build a simple image processing server; a great starting point for playing with OpenResty
Resources / Articles
- Embedding Lua in C
An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough
- Lua: Good, bad, and ugly parts
A thorough summary of the good, different, bad, and ugly aspects of Lua, including many subtle quirks, by the author of ZeroBraneStudio
- Lua states, libraries, coroutines and memory
Diagrams and explains some more advanced concepts of the Lua VM, particularly when interfacing with C
Resources / Talks & Slides
- Roberto's Talks
History of talks given by Lua's chief architect, with slides for each
- Lua Workshop Talks
High-quality talks are given at each ~annual Lua Workshop, and a history of them is online, slides included
Resources / Books
- Programming in Lua
The authoritative intro to all aspects of Lua programming, written by Lua's chief architect. Three editions released; first edition available online
- Lua Quick Reference
A quick reference on how to program in and embed Lua 5.1 through 5.3, by the creator of Textadept
- Programming Gems
A collection of articles covering existing wisdom and practices on programming well in Lua, in a broad variety of use cases
- Lua Programming
A shorter overview of the language, up to date for Lua 5.2, and available online
Resources / Other Lists
awesome-resty
A list like this one, but focused on OpenResty
awesome-love2d
A list like this one, but focused on game dev and the LÖVE platform
- Where Lua is Used
A comprehensive list of stand-alone programs written in or extensible using Lua
Nothing in this list matches your filter.
Featured in 12 awesome lists
Each link jumps to the spot where the list mentions awesome-lua.
More related projects
aptise/lua-resty-peter_sslers9
upyun/lua-resty-checkups260
heroku/heroku-kong84
rainingmaster/netstoragekit-lua0
zmartzone/lua-resty-openidc979
timebug/lua-resty-httpipe71
rainingmaster/lua-shdict-nginx-module18
iqiyi/lua-resty-couchbase79
gui/lua-resty-mail66
timebug/lua-resty-redis-ratelimit163
openresty/lemplate54
kong/lua-resty-counter22
openresty/lua-resty-dns326