Track Awesome Lua Updates Weekly
A curated list of quality Lua packages and resources.
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 LewisJEllis/awesome-lua · ⭐ 3.2K · 🏷️ Programming Languages
Apr 02 - Apr 08, 2018
Resources / Implementations, Interpreters, and Bindings
- Lua - Lua's original ANSI C interpreter.
- Lua Repo (⭐6.2k) - The official Lua repo, as seen by the Lua team, mirrored to GitHub.
- Fengari - The Lua VM rewritten in Javascript with seamless JS and DOM interoperability.
- LuaBridge (⭐1.4k) - A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua.
Resources / Build Tools and Standalone Makers
- Lake (⭐123) - A build engine written in Lua, similar to Ruby's rake.
- Luabuild (⭐79) - Highly customizable Lua 5.2 build system.
- luastatic (⭐663) - Simple tool for turning Lua programs into standalone executables.
- omnia (⭐45) - A batteries-included creator of standalone executables, built on top of luastatic.
Resources / IDEs and Plugins
- BabeLua - Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities.
- lua-mode (⭐292) - Emacs major mode for editing Lua.
- vscode-lua (⭐109) - VSCode intellisense and linting.
Resources / Utility Belts
- compat53 - Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1.
- RxLua (⭐467) - Reactive Extensions, Observables, etc.
Resources / Game Engines
- 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 / Logging
- lua-log (⭐96) - Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more.
- LuaLogging (⭐145) - Log4j-inspired logging library supporting various appenders.
- luasyslog - Log to syslog, based on LuaLogging.
Resources / OpenResty
- Frameworks & tools
- Lapis - Full-stack framework for Lua and OpenResty. Like the Django or Rails of Lua. Supports Moonscript.
- ledge (⭐436) - Lua module providing scriptable, RFC-compliant HTTP cache functionality.
- Sailor (⭐881) — An MVC web framework compatible with OpenResty, Apache and other webservers.
- Kong (⭐33k) - Microservice & API Management Layer.
Resources / Concurrency and Multithreading
- Coroutine-based multitasking:
- Lumen (⭐139) - Simple concurrent task scheduling.
- ConcurrentLua (⭐158) - Implements an Erlang-style message-passing concurrency model.
- cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
Resources / File system and OS
- LuaFileSystem - Extends and complements Lua's built-in set of file system functions.
- lunix - Bindings to common Unix system APIs, striving for thread-safety.
- lua-path (⭐58) - File system path manipulation library.
Resources / Time and Date
- luatx (⭐106) - Time, date, and timezone library.
Resources / Parsing and Serialization
- JSON
- lua-cjson (⭐821) - Blazing fast JSON encoding/decoding implemented in C and exposed to Lua.
- luajson (⭐240) - JSON encoder/decoder implemented in Lua on top of LPeg.
- dkjson - JSON encoder/decoder implemented in pure Lua.
- json.lua (⭐1.4k) - A fast and tiny JSON library in pure Lua.
- MessagePack
- lua-MessagePack - Pure Lua implementation of MessagePack.
- lua-cmsgpack (⭐330) - A MessagePack C implementation with Lua bindings, as used by Redis.=
- LPeg
- LPeg - A pattern-matching library for Lua, based on Parsing Expression Grammars.
- lpeg_patterns (⭐111) - A collection of LPeg patterns.
- LuLPeg (⭐226) - A pure Lua implementation of LPeg v0.12.
- LPegLJ (⭐104) - A pure LuaJIT implementation of LPeg v1.0.
- LPegLabel (⭐115) - An extension of LPeg adding support for labeled failures.
- LXSH (⭐71) - A collection of lexers and syntax highlighters written with LPeg.
- lua-pb (⭐278) - Protocol Buffers implementation.
Resources / Humanize
- say (⭐29) - Simple string key-value store for i18n.
Resources / Cryptography
- luaossl (⭐123) - "Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http.
Resources / Network
- lua-cURLv3 (⭐243) - Lua binding to libcurl.
- lua-http (⭐669) - Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues.
Resources / Data Stores
- pgmoon (⭐322) - Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.
- Redis
- redis-lua (⭐704) - Pure Lua client library for Redis.
- lua-resty-redis (⭐1.8k) - Lua Redis client driver for OpenResty.
- lredis (⭐43) - Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues.
Resources / Message Brokers
- lua-zmq (⭐149) - Lua bindings to ZeroMQ.
- lzmq (⭐128) - A newer Lua binding to ZeroMQ.
- lua-resty-kafka (⭐738) - Kafka client driver based on OpenResty cosockets.
- lua-resty-rabbitmqstomp (⭐186) - RabbitMQ client library based on OpenResty cosockets.
Resources / Analysis Tools and ASTs
- luacov - Simple coverage analyzer, used by busted and telescope for checking test coverage.
- luacov-coveralls (⭐45) - LuaCov reporter for coveralls.io.
- lua-parser (⭐163) - A Lua 5.3 parser written using LPegLabel, with improved error messages.
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.
- 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".
Jul 24 - Jul 30, 2017
Resources / Implementations, Interpreters, and Bindings
- lua.vm.js (⭐829) - Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.
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 / IDEs and Plugins
- Lua Development Tools - Eclipse plugin which provides code completion, debugging, and more. Built on Metalua.
- ZeroBraneStudio - Lightweight, customizable, cross-platform Lua-dedicated IDE with code completion and analysis, written in Lua. Has broad debugging support for numerous Lua engines.
Resources / Utility Belts
- Lua Fun (⭐1.8k) - High-performance functional programming library designed for LuaJIT.
Resources / Game Engines
- Corona SDK - Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads.
Resources / Other Lists
- awesome-love2d (⭐2.5k) - A list like this one, but focused on game dev and the LÖVE platform.
Resources / Game Development
- MOAI
- moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
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 (⭐309) - Pegasus.lua is a http server to work with web applications written in Lua language.
Resources / Documentation
- Locco - Lua port of Docco, the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".
Resources / Digital Signal Processing
- LuaFFT (⭐37) - An easy to use Fast Fourier Transformation package in pure Lua.
Resources / Math and Scientific Computing
- lhf's Lua Tools - Assorted libraries and tools, many math- or data-related.
Resources / Data Stores
- LuaSQL - Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL.
Resources / Scriptable by Lua
- 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.
Resources / Articles
- Embedding Lua in C - An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough.
Resources / Books
- Lua Quick Reference - A quick reference on how to program in and embed Lua 5.1 through 5.3, by the creator of Textadept.
May 08 - May 14, 2017
Resources / Glossaries
- Lua 5.3 Glossary - A glossary of some essential Lua terms.
Jan 30 - Feb 05, 2017
Resources / Scriptable by Lua
- luakit - Fast, small, webkit based browser framework extensible by Lua.
Dec 12 - Dec 18, 2016
Resources / Cryptography
- luatweetnacl (⭐13) - Bindings to tweetnacl, modern high-security cryptographic library.
Feb 08 - Feb 14, 2016
Resources / Game Engines
- 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.
Jan 18 - Jan 24, 2016
Resources / Implementations, Interpreters, and Bindings
- LLVM-Lua (⭐121) - Compiles Lua to LLVM.
Resources / Game Development
- Examples
- termtris (⭐432) - A tetris clone, written in literate style with "an emphasis on learn-from-ability".
- PacPac (⭐334) - A Pac-man clone, made with LÖVE.
- Mari0 (⭐513) - Fusion of Mario and Portal, made with LÖVE. See also its wikipedia entry.
- Journey to the Center of Hawkthorne (⭐1k) - 2D platformer based on Community's Digital Estate Planning episode, made with LÖVE.
Resources / Documentation
- docroc (⭐11) - Parse comments into a Lua table to generate documentation.
Resources / Math and Scientific Computing
- SciLua - Numerical/scientific computing framework built on LuaJIT, with an interface to R.
Resources / Testing
- lust (⭐78) - Minimal test framework.
Resources / Experimental, etc
- graphql-lua (⭐171) - Lua implementation of GraphQL.
Resources / Scriptable by Lua
- Hammerspoon - A powerful, extensible OS X automation tool. A community-maintained fork of Mjolnir.
- lumail - A console-based mail client, with extensive scripting capabilities.
Resources / Books
- Lua Programming - A shorter overview of the language, up to date for Lua 5.2, and available online.
Oct 05 - Oct 11, 2015
Resources / Other Lists
- awesome-resty (⭐2.2k) - A list like this one, but focused on OpenResty.
Apr 13 - Apr 19, 2015
Resources / Scriptable by Lua
- KoReader (⭐12k) - An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices.
Mar 16 - Mar 22, 2015
Resources / Implementations, Interpreters, and Bindings
- MoonSharp (⭐1.2k) - A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms.
Resources / Analysis Tools and ASTs
- luadec51 (⭐288) - Lua Decompiler for Lua version 5.1.
Mar 02 - Mar 08, 2015
Resources / Implementations, Interpreters, and Bindings
- GopherLua (⭐5.1k) - Lua 5.1 VM and compiler implemented in Go with Go APIs.
Feb 09 - Feb 15, 2015
Resources / References
- Reference Manual - The official definition of the Lua language.
Jan 26 - Feb 01, 2015
Resources / Command-line Utilities
- argparse (⭐205) - A feature-rich command line parser inspired by argparse for Python.
Resources / Cryptography
- LuaCrypto (⭐86) - Lua bindings to OpenSSL.
- lua-lockbox (⭐325) - A collection of cryptographic primitives written in pure Lua.
Jan 19 - Jan 25, 2015
Resources / Hardware and Embedded Systems
- eLua - Lua, extended with optimizations and specific features for efficient and portable embedded software development.
Jan 12 - Jan 18, 2015
Resources / Implementations, Interpreters, and Bindings
- lupa (⭐841) - Python bindings to LuaJIT2.
- golua (⭐598) - Golang bindings to the Lua C API.
Jan 05 - Jan 11, 2015
Resources / Parsing and Serialization
- lyaml (⭐163) - YAML encoding/decoding via binding to LibYAML.
Resources / Network
- lua-websockets (⭐365) - WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.
Dec 15 - Dec 21, 2014
Resources / OpenResty
- Third-party modules
- lua-resty-http (⭐1.8k) - Lua HTTP client driver, built on the cosocket API.
Resources / Analysis Tools and ASTs
- Typed Lua (⭐528) - A typed superset of Lua that compiles to plain Lua.
Resources / Other Lists
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
Sep 01 - Sep 07, 2014
Resources / Implementations, Interpreters, and Bindings
- UniLua (⭐1.1k) - A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.
Aug 25 - Aug 31, 2014
Resources / Debugging and Profiling
- lovebird (⭐257) - Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support.
Resources / Game Engines
- MOAI - Open source, cross-platform, mobile game development framework. Minimalist C++ engine powered by Lua scripting.
Resources / Game Development
- Tweening
- flux (⭐301) - A fast, lightweight tweening library for Lua with easing functions and the ability to group tweens together.
- tween.lua (⭐485) - Small library for tweening, with several easing functions.
Resources / Digital Signal Processing
- Worp - Sound/music/DSP engine written for LuaJIT.
Resources / Network
- LuaSocket (⭐1.5k) - Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP.
Resources / Data Stores
- lua-resty-cassandra (⭐67) - Lua Cassandra client driver for OpenResty and others.
Resources / References
- Lua Unofficial FAQ - Answers all sorts of Lua-related questions, including many of the form 'How to ___?'.
Resources / Articles
- Lua states, libraries, coroutines and memory - Diagrams and explains some more advanced concepts of the Lua VM, particularly when interfacing with C.
Aug 18 - Aug 24, 2014
Resources / Implementations, Interpreters, and Bindings
- LuaJIT - High-performance Just-In-Time compiler for Lua.
- Moonshine (⭐493) - A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.
Resources / Debugging and Profiling
- ProFi - Simple profiler that works with LuaJIT and produces a report file.
- luatrace (⭐157) - Toolset for tracing/analyzing/profiling script execution and generating detailed reports.
- StackTracePlus (⭐180) - Drop-in upgrade to Lua's stack traces which adds local context and improves readability.
- MobDebug (⭐778) - Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio.
Resources / IDEs and Plugins
- Lua for IDEA - IntelliJ IDEA plugin which, among other things, provides code completion, smart highlighting, and experimental debugging.
Resources / Utility Belts
- Moses (⭐590) - Functional programming utility belt, inspired by Underscore.js.
- Penlight (⭐1.6k) - Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't.
- lua-stdlib (⭐259) - Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff.
- Microlight (⭐156) - A little library of useful Lua functions; the 'extra light' version of Penlight.
Resources / Game Engines
- LÖVE 2D - Desktop game development platform. Cross-platform, feature-complete, well-adopted.
Resources / Game Development
- Jumper (⭐575) - Fast, lightweight, and easy-to-use pathfinding library for grid-based games.
- lume (⭐761) - Utility belt library geared toward game development.
- NoobHub (⭐273) - Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model.
- Collision detection
- bump.lua (⭐769) - 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 / 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 / Command-line Utilities
- ansicolors (⭐107) - Simple function for printing to the console in color.
- cliargs (⭐96) - A simple command-line argument parsing module.
- lua-term (⭐114) - Terminal operations and manipulations.
Resources / Concurrency and Multithreading
- Multithreading:
- llthreads (⭐141) - A simple wrapper for low-level pthreads & WIN32 threads.
- llthreads2 (⭐69) - Newer rewrite of llthreads.
- lanes (⭐381) - Library implementing a message passing model with one OS thread per Lua thread.
- luaproc (⭐105) - Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also the paper where it originated.
Resources / Templating
- lustache - Mustache template implementation.
- etlua (⭐187) - Embedded Lua templates, ERB-style.
- lua-resty-template (⭐852) - Lua-oriented template engine for OpenResty, somewhat Jinja-like.
Resources / Documentation
Resources / Object-oriented Programming
- 30log (⭐381) - Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines.
- middleclass (⭐1.5k) - Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins.
Resources / File system and OS
- luaposix (⭐441) - Bindings for POSIX APIs, including curses.
Resources / Time and Date
- LuaDate (⭐225) - Date and time module with parsing, formatting, addition/subtraction, localization, and ISO 8601 support.
- cron.lua (⭐149) - Time-related functions for Lua, inspired by JavaScript's setTimeout and setInterval.
Resources / Image Manipulation
- magick (⭐362) - Lua bindings to ImageMagick for LuaJIT using FFI.
Resources / Math and Scientific Computing
- Torch7 - Scientific computing framework with wide support for machine learning algorithms, used by Facebook, Google, and more.
Resources / Parsing and Serialization
- XML
- LuaExpat - SAX XML parser via binding to the Expat library.
- SLAXML (⭐141) - Pure Lua SAX-like streaming XML parser.
- lunamark (⭐166) - Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing.
Resources / Humanize
- i18n.lua (⭐218) - Internationalization library with locales, formatting, and pluralization.
- inspect.lua (⭐1.1k) - Human-readable representation of Lua tables.
- serpent (⭐464) - Serializer and pretty printer.
- Ser (⭐72) - Dead simple serializer with good performance.
Resources / Compression
- lua-zlib (⭐246) - Simple streaming interface to zlib for gzip/gunzip.
- lua-zip (⭐69) - Lua binding to libzip. Reads and writes zip files.
Resources / Data Stores
- lua-resty-mysql (⭐666) - Lua MySQL driver for OpenResty.
Resources / Testing
- busted - BDD-style unit testing framework with great docs and Moonscript support.
- telescope (⭐153) - Flexible and highly customizable testing library.
- luassert (⭐137) - Assertion library extending Lua's built-in assertions.
Resources / Foreign Function Interfaces
- LuaJIT FFI - LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code.
- luaffi (⭐441) - Standalone FFI library, compatible with the LuaJIT FFI interface.
Resources / Analysis Tools and ASTs
- luacheck (⭐1.7k) - Simple static analyzer which detects accidental globals and undefined or shadowed locals.
- Metalua (⭐324) - Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way.
- LuaInspect (⭐160) - Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others.
- LuaMinify (⭐231) - Minifier which also brings its own static analysis tools, lexer, and parser.
Resources / Experimental, etc
- punchdrunk.js (⭐79) - Moonshine + LÖVE API reimplementation = run LÖVE games in the browser.
- luvit (⭐3.6k) - Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript.
Resources / Scriptable by Lua
- kpie (⭐76) - A scripting utility to juggle windows.
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 / References
- lua-users wiki - A large community-maintained collection of Lua information and resources, supplementing the official website.
Resources / Style Guides
- Lua-users style guide - A general, high-level style guide; unopinionated, easily agreed on.
- Olivine style guide (⭐445) - 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 (⭐318) - 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
- 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.
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.
- Programming Gems - A collection of articles covering existing wisdom and practices on programming well in Lua, in a broad variety of use cases.