Files
awesome-awesomeness/terminal/lua
2025-07-18 22:22:32 +02:00

47 KiB

Awesome Lua !Awesome (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) (https://github.com/sindresorhus/awesome)
 
A curated list of quality Lua packages (#packages) and resources (#resources).
 
Inspired by the lists awesome (https://github.com/sindresorhus/awesome), awesome-awesomeness (https://github.com/bayandin/awesome-awesomeness), and awesome-nodejs (https://github.com/sindresorhus/awesome-nodejs).
 
 
Packages
- Implementations, Interpreters, and Bindings (#implementations-interpreters-and-bindings)
- Package Managers (#package-managers)
- Build Tools and Standalone Makers (#build-tools-and-standalone-makers)
- Debugging and Profiling (#debugging-and-profiling)
- IDEs and Plugins (#ides-and-plugins)
- Utility Belts (#utility-belts)
- Game Engines (#game-engines)
- Game Development (#game-development)
- Logging (#logging)
- Web/Networking Platforms (#webnetworking-platforms)
- OpenResty (#openresty)
- Command-line Utilities (#command-line-utilities)
- Concurrency and Multithreading (#concurrency-and-multithreading)
- Templating (#templating)
- Documentation (#documentation)
- Object-oriented Programming (#object-oriented-programming)
- File system and OS (#file-system-and-os)
- Time and Date (#time-and-date)
- Image Manipulation (#image-manipulation)
- Digital Signal Processing (#digital-signal-processing)
- Hardware and Embedded Systems (###hardware-and-embedded-systems)
- Math and Scientific Computing (#math-and-scientific-computing)
- Parsing and Serialization (#parsing-and-serialization)
- Humanize (#humanize)
- Compression (#compression)
- Cryptography (#cryptography)
- Network (#network)
- Data Stores (#data-stores)
- Message Brokers (#message-brokers)
- Testing (#testing)
- Foreign Function Interfaces (#foreign-function-interfaces)
- Analysis Tools and ASTs (#analysis-tools-and-asts)
- Experimental, etc (#experimental-etc)
- Scriptable by Lua (#scriptable-by-lua)
- Miscellaneous (#miscellaneous)
 
 
Resources
- Community (#community)
- References (#references)
- Style Guides (#style-guides)
- Tutorials (#tutorials)
- Articles (#articles)
- Talks & Slides (#talks--slides)
- Books (#books)
- Other Lists (#other-lists)
 
 
Implementations, Interpreters, and Bindings
- Lua (http://www.lua.org/download.html) - Lua's original ANSI C interpreter.
- Lua Repo (https://github.com/lua/lua) - The official Lua repo, as seen by the Lua team, mirrored to GitHub.
- LuaJIT (http://luajit.org/luajit.html) - High-performance Just-In-Time compiler for Lua.
- LLVM-Lua (https://github.com/neopallium/llvm-lua) - Compiles Lua to LLVM.
- lua.vm.js (https://github.com/daurnimator/lua.vm.js) - Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.
- Moonshine (https://github.com/gamesys/moonshine) - A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.
- Fengari (https://fengari.io/) - The Lua VM rewritten in Javascript with seamless JS and DOM interoperability.
- MoonSharp (https://github.com/xanathar/moonsharp) - A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms.
- UniLua (https://github.com/xebecnan/UniLua) - A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.
- lupa (https://github.com/scoder/lupa) - Python bindings to LuaJIT2.
- golua (https://github.com/aarzilli/golua) - Golang bindings to the Lua C API.
- GopherLua (https://github.com/yuin/gopher-lua) - Lua 5.1 VM and compiler implemented in Go with Go APIs.
- LuaBridge (https://github.com/vinniefalco/LuaBridge) - A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua.
 
Note: From LuaJIT to Lua to lua.vm.js to Moonshine, a basic benchmark sees performance drop by roughly a factor of 6 with each hop.
 
 
Package Managers
- LuaRocks (https://luarocks.org/) - De-facto tool for installing Lua modules as packages called "rocks", plus public rock repository and website. Much like npm or pip.
 
 
Build Tools and Standalone Makers
- Lake (https://github.com/stevedonovan/Lake) - A build engine written in Lua, similar to Ruby's rake.
- Luabuild (https://github.com/stevedonovan/luabuild) - Highly customizable Lua 5.2 build system.
- luastatic (https://github.com/ers35/luastatic) - Simple tool for turning Lua programs into standalone executables.
- omnia (https://github.com/tongson/omnia) - A batteries-included creator of standalone executables, built on top of luastatic.
 
 
Debugging and Profiling
- ProFi (https://gist.github.com/perky/2838755) - Simple profiler that works with LuaJIT and produces a report file.
- luatrace (https://github.com/geoffleyland/luatrace) - Toolset for tracing/analyzing/profiling script execution and generating detailed reports.
- StackTracePlus (https://github.com/ignacio/StackTracePlus) - Drop-in upgrade to Lua's stack traces which adds local context and improves readability.
- MobDebug (https://github.com/pkulchenko/MobDebug) - Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio.
- lovebird (https://github.com/rxi/lovebird) - Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support.
 
 
IDEs and Plugins
- Lua Development Tools (https://eclipse.org/ldt/) - Eclipse plugin which provides code completion, debugging, and more. Built on Metalua.
- Lua for IDEA (https://bitbucket.org/sylvanaar2/lua-for-idea/wiki/Home) - IntelliJ IDEA plugin which, among other things, provides code completion, smart highlighting, and experimental debugging.
- ZeroBraneStudio (https://studio.zerobrane.com/) - Lightweight, customizable, cross-platform Lua-dedicated IDE with code completion and analysis, written in Lua. Has broad debugging support for numerous Lua engines.
- BabeLua (https://archive.codeplex.com/?p=babelua) - Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities.
- lua-mode (https://github.com/immerrr/lua-mode) - Emacs major mode for editing Lua.
- vscode-lua (https://github.com/trixnz/vscode-lua) - VSCode intellisense and linting.
 
 
Utility Belts
- Lua Fun (https://github.com/luafun/luafun) - High-performance functional programming library designed for LuaJIT.
- Moses (https://github.com/Yonaba/Moses) - Functional programming utility belt, inspired by Underscore.js.
- Penlight (https://github.com/stevedonovan/Penlight) - Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't.
- lua-stdlib (https://github.com/lua-stdlib/lua-stdlib) - Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff.
- Microlight (https://github.com/stevedonovan/Microlight) - A little library of useful Lua functions; the 'extra light' version of Penlight.
- compat53 (https://luarocks.org/modules/siffiejoe/compat53) - Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1.
- RxLua (https://github.com/bjornbytes/RxLua) - Reactive Extensions, Observables, etc.
 
 
Game Engines
- LÖVE 2D (http://love2d.org/) - Desktop game development platform. Cross-platform, feature-complete, well-adopted.
- Corona SDK (https://coronalabs.com/) - Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads.
- MOAI (http://getmoai.com/) - Open source, cross-platform, mobile game development framework. Minimalist C++ engine powered by Lua scripting.
- Drystal (https://drystal.github.io/) - Open source, games can run on Linux or on any platform with a recent web browser.
- Amulet (http://www.amulet.xyz/) - Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS.
- LÖVR (https://lovr.org) - 3D framework for creating virtual reality experiences, inspired by LÖVE 2D.
 
 
Game Development
- Corona
- Coronium (https://develephant.github.io/coronium-core-docs/) - Simple cloud platform supporting analytics, data objects, user management, and more.
- LÖVE
- awesome-love2d (https://github.com/love2d-community/awesome-love2d) - A list like this one, but focused on game dev and the LÖVE platform.
- lurker (https://github.com/rxi/lurker) - Shortens the iteration cycle by auto-swapping changed Lua files in a running LÖVE project.
- HUMP (http://vrld.github.io/hump/) - A set of lightweight helpers for LÖVE; a game-oriented utility belt.
- MOAI
- moaifiddle (https://moaifiddle.com) - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
- Jumper (https://github.com/Yonaba/Jumper) - Fast, lightweight, and easy-to-use pathfinding library for grid-based games.
- lume (https://github.com/rxi/lume/) - Utility belt library geared toward game development.
- NoobHub (https://github.com/Overtorment/NoobHub) - Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model.
- Collision detection
- bump.lua (https://github.com/kikito/bump.lua) - Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution.
- HardonCollider (http://vrld.github.io/HardonCollider/) - Detect collisions between arbitrarily positioned and rotated shapes of any type.
- Tweening
- flux (https://github.com/rxi/flux) - A fast, lightweight tweening library for Lua with easing functions and the ability to group tweens together.
- tween.lua (https://github.com/kikito/tween.lua) - Small library for tweening, with several easing functions.
- Examples
- termtris (https://github.com/tylerneylon/termtris) - A tetris clone, written in literate style with "an emphasis on learn-from-ability".
- PacPac (https://github.com/tylerneylon/pacpac) - A Pac-man clone, made with LÖVE.
- Mari0 (https://github.com/Stabyourself/mari0) - Fusion of Mario and Portal, made with LÖVE. See also its wikipedia entry (https://en.wikipedia.org/wiki/Mari0).
- Journey to the Center of Hawkthorne (https://github.com/hawkthorne/hawkthorne-journey) - 2D platformer based on Community's Digital Estate Planning (https://en.wikipedia.org/wiki/Digital_Estate_Planning) episode, made with LÖVE.
 
 
Logging
- lua-log (https://github.com/moteus/lua-log) - Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more.
- LuaLogging (https://github.com/Neopallium/lualogging) - Log4j-inspired logging library supporting various appenders.
- luasyslog (https://luarocks.org/modules/luarocks/luasyslog) - Log to syslog, based on LuaLogging.
 
 
Web/Networking Platforms
- OpenResty (http://openresty.org/en/) - 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 (https://turbo.readthedocs.io/en/latest/) - Event-driven, non-blocking, LuaJIT-based networking suite and framework, inspired by Tornado.
- Kepler Project (https://github.com/keplerproject) - A collection of web-oriented projects using a common set of standards and components.
- Pegasus.lua (https://github.com/EvandroLG/pegasus.lua) - Pegasus.lua is a http server to work with web applications written in Lua language.
 
 
OpenResty
- awesome-resty (https://github.com/bungle/awesome-resty) - A list like this one, but focused on OpenResty.
- Core platform
- ngx_lua (https://www.nginx.com/resources/wiki/modules/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 (https://github.com/openresty) - Home of the repositories for ngx_lua, ngx_openresty, and many related modules.
- Third-party modules
- lua-resty-http (https://github.com/pintsized/lua-resty-http) - Lua HTTP client driver, built on the cosocket API.
- Frameworks & tools
- Lapis (http://leafo.net/lapis/) - Full-stack framework for Lua and OpenResty. Like the Django or Rails of Lua. Supports Moonscript.
- ledge (https://github.com/pintsized/ledge) - Lua module providing scriptable, RFC-compliant HTTP cache functionality.
- Sailor (https://github.com/sailorproject/sailor) — An MVC web framework compatible with OpenResty, Apache and other webservers.
- Kong (https://github.com/Kong/kong) - Microservice & API Management Layer.
 
Search this page for 'OpenResty' to find related packages under other categories (data stores in particular).
 
 
Command-line Utilities
- ansicolors (https://github.com/kikito/ansicolors.lua) - Simple function for printing to the console in color.
- cliargs (https://github.com/amireh/lua_cliargs) - A simple command-line argument parsing module.
- lua-term (https://github.com/hoelzro/lua-term) - Terminal operations and manipulations.
- argparse (https://github.com/mpeterv/argparse) - A feature-rich command line parser inspired by argparse for Python.
 
Concurrency and Multithreading
- Coroutine-based multitasking:
- Lumen (https://github.com/xopxe/Lumen) - Simple concurrent task scheduling.
- ConcurrentLua (https://github.com/lefcha/concurrentlua) - Implements an Erlang-style message-passing concurrency model.
- cqueues (http://25thandclement.com/~william/projects/cqueues.html) - Library for managing sockets, signals, and threads based on an event loop with coroutines.
- Multithreading:
- llthreads (https://github.com/Neopallium/lua-llthreads) - A simple wrapper for low-level pthreads & WIN32 threads.
- llthreads2 (https://github.com/moteus/lua-llthreads2) - Newer rewrite of llthreads.
- lanes (https://github.com/LuaLanes/lanes) - Library implementing a message passing model with one OS thread per Lua thread.
- luaproc (https://github.com/askyrme/luaproc) - Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also the paper (http://www.inf.puc-rio.br/~roberto/docs/ry08-05.pdf) where it
originated.
 
For more on the differences (particularly between lanes and luaproc), see this comparison (http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_For_Windows/lanes/comparison.html) of options; somewhat dated, but covers how each one works and the
significant differences.
 
 
Templating
- lustache (http://olivinelabs.com/lustache/) - Mustache template implementation.
- etlua (https://github.com/leafo/etlua) - Embedded Lua templates, ERB-style.
- lua-resty-template (https://github.com/bungle/lua-resty-template) - Lua-oriented template engine for OpenResty, somewhat Jinja-like.
 
 
Documentation
- LDoc (http://stevedonovan.github.io/ldoc/) - Documentation generator which modernizes and extends LuaDoc (http://keplerproject.github.io/luadoc/).
- Locco (http://rgieseke.github.io/locco/) - Lua port of Docco (http://ashkenas.com/docco/), the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".
- docroc (https://github.com/bjornbytes/docroc) - Parse comments into a Lua table to generate documentation.
 
 
Object-oriented Programming
- 30log (https://github.com/Yonaba/30log) - Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines.
- middleclass (https://github.com/kikito/middleclass) - Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins.
 
 
File system and OS
- LuaFileSystem (http://keplerproject.github.io/luafilesystem/) - Extends and complements Lua's built-in set of file system functions.
- luaposix (https://github.com/luaposix/luaposix) - Bindings for POSIX APIs, including curses.
- lunix (http://25thandclement.com/~william/projects/lunix.html) - Bindings to common Unix system APIs, striving for thread-safety.
- lua-path (https://github.com/moteus/lua-path) - File system path manipulation library.
 
 
Time and Date
- LuaDate (https://github.com/Tieske/date) - Date and time module with parsing, formatting, addition/subtraction, localization, and ISO 8601 support.
- cron.lua (https://github.com/kikito/cron.lua) - Time-related functions for Lua, inspired by JavaScript's setTimeout and setInterval.
- luatx (https://github.com/daurnimator/luatz) - Time, date, and timezone library.
 
 
Image Manipulation
- magick (https://github.com/leafo/magick) - Lua bindings to ImageMagick for LuaJIT using FFI.
 
 
Digital Signal Processing
- LuaFFT (https://github.com/h4rm/luafft) - An easy to use Fast Fourier Transformation package in pure Lua.
- Worp (http://worp.zevv.nl/about.html) - Sound/music/DSP engine written for LuaJIT.
 
 
Hardware and Embedded Systems
- eLua (http://www.eluaproject.net/) - Lua, extended with optimizations and specific features for efficient and portable embedded software development.
 
 
Math and Scientific Computing
- SciLua (http://scilua.org/) - Numerical/scientific computing framework built on LuaJIT, with an interface to R.
- Torch7 (http://torch.ch/) - Scientific computing framework with wide support for machine learning algorithms, used by Facebook, Google, and more.
- lhf's Lua Tools (http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/) - Assorted libraries and tools, many math- or data-related.
 
 
Parsing and Serialization
- JSON
- lua-cjson (https://github.com/mpx/lua-cjson/) - Blazing fast JSON encoding/decoding implemented in C and exposed to Lua.
- luajson (https://github.com/harningt/luajson) - JSON encoder/decoder implemented in Lua on top of LPeg.
- dkjson (http://dkolf.de/src/dkjson-lua.fsl/home) - JSON encoder/decoder implemented in pure Lua.
- json.lua (https://github.com/rxi/json.lua) - A fast and tiny JSON library in pure Lua.
- XML
- LuaExpat (https://matthewwild.co.uk/projects/luaexpat/) - SAX XML parser via binding to the Expat library.
- SLAXML (https://github.com/Phrogz/SLAXML) - Pure Lua SAX-like streaming XML parser.
- MessagePack
- lua-MessagePack (https://github.com/fperrad/lua-MessagePack) - Pure Lua implementation of MessagePack.
- lua-cmsgpack (https://github.com/antirez/lua-cmsgpack) - A MessagePack C implementation with Lua bindings, as used by Redis.=
- LPeg
- LPeg (http://www.inf.puc-rio.br/~roberto/lpeg/) - A pattern-matching library for Lua, based on Parsing Expression Grammars.
- lpeg_patterns (https://github.com/daurnimator/lpeg_patterns) - A collection of LPeg patterns.
- LuLPeg (https://github.com/pygy/LuLPeg) - A pure Lua implementation of LPeg v0.12.
- LPegLJ (https://github.com/sacek/LPegLJ) - A pure LuaJIT implementation of LPeg v1.0.
- LPegLabel (https://github.com/sqmedeiros/lpeglabel) - An extension of LPeg adding support for labeled failures.
- lyaml (https://github.com/gvvaughan/lyaml) - YAML encoding/decoding via binding to LibYAML.
- lunamark (https://github.com/jgm/lunamark) - Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing.
- LXSH (https://github.com/xolox/lua-lxsh) - A collection of lexers and syntax highlighters written with LPeg.
- lua-pb (https://github.com/Neopallium/lua-pb) - Protocol Buffers implementation.
 
 
Humanize
- i18n.lua (https://github.com/kikito/i18n.lua) - Internationalization library with locales, formatting, and pluralization.
- inspect.lua (https://github.com/kikito/inspect.lua) - Human-readable representation of Lua tables.
- serpent (https://github.com/pkulchenko/serpent) - Serializer and pretty printer.
- Ser (https://github.com/gvx/Ser) - Dead simple serializer with good performance.
- say (https://github.com/Olivine-Labs/say) - Simple string key-value store for i18n.
 
 
Compression
- lua-zlib (https://github.com/brimworks/lua-zlib) - Simple streaming interface to zlib for gzip/gunzip.
- lua-zip (https://github.com/brimworks/lua-zip) - Lua binding to libzip. Reads and writes zip files.
 
 
Cryptography
- LuaCrypto (https://github.com/mkottman/luacrypto) - Lua bindings to OpenSSL.
- lua-lockbox (https://github.com/somesocks/lua-lockbox) - A collection of cryptographic primitives written in pure Lua.
- luatweetnacl (https://github.com/philanc/luatweetnacl) - Bindings to tweetnacl, modern high-security cryptographic library.
- luaossl (https://github.com/wahern/luaossl) - "Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http.
 
 
Network
- LuaSocket (https://github.com/diegonehab/luasocket) - Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP.
- lua-websockets (https://github.com/lipp/lua-websockets) - WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.
- lua-cURLv3 (https://github.com/Lua-cURL/Lua-cURLv3) - Lua binding to libcurl.
- lua-http (https://github.com/daurnimator/lua-http) - Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues.
 
 
Data Stores
- LuaSQL (http://keplerproject.github.io/luasql/) - Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL.
- pgmoon (https://github.com/leafo/pgmoon) - Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.
- lua-resty-mysql (https://github.com/openresty/lua-resty-mysql) - Lua MySQL driver for OpenResty.
- lua-resty-cassandra (https://github.com/jbochi/lua-resty-cassandra) - Lua Cassandra client driver for OpenResty and others.
- Redis
- redis-lua (https://github.com/nrk/redis-lua) - Pure Lua client library for Redis.
- lua-resty-redis (https://github.com/openresty/lua-resty-redis) - Lua Redis client driver for OpenResty.
- lredis (https://github.com/daurnimator/lredis) - Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues.
 
 
Message Brokers
- lua-zmq (https://github.com/Neopallium/lua-zmq) - Lua bindings to ZeroMQ.
- lzmq (https://github.com/zeromq/lzmq) - A newer Lua binding to ZeroMQ.
- lua-resty-kafka (https://github.com/doujiang24/lua-resty-kafka) - Kafka client driver based on OpenResty cosockets.
- lua-resty-rabbitmqstomp (https://github.com/wingify/lua-resty-rabbitmqstomp) - RabbitMQ client library based on OpenResty cosockets.
 
 
Testing
- busted (http://olivinelabs.com/busted/) - BDD-style unit testing framework with great docs and Moonscript support.
- telescope (https://github.com/norman/telescope) - Flexible and highly customizable testing library.
- luassert (https://github.com/Olivine-Labs/luassert) - Assertion library extending Lua's built-in assertions.
- lust (https://github.com/bjornbytes/lust) - Minimal test framework.
 
 
Foreign Function Interfaces
- LuaJIT FFI (http://luajit.org/ext_ffi.html) - LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code.
- luaffi (https://github.com/jmckaskill/luaffi) - Standalone FFI library, compatible with the LuaJIT FFI interface.
 
 
Analysis Tools and ASTs
- luadec51 (https://github.com/sztupy/luadec51) - Lua Decompiler for Lua version 5.1.
- luacov (http://keplerproject.github.io/luacov/) - Simple coverage analyzer, used by busted and telescope for checking test coverage.
- luacov-coveralls (https://github.com/moteus/luacov-coveralls) - LuaCov reporter for coveralls.io.
- luacheck (https://github.com/mpeterv/luacheck) - Simple static analyzer which detects accidental globals and undefined or shadowed locals.
- Metalua (https://github.com/fab13n/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 (https://github.com/davidm/lua-inspect) - Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others.
- LuaMinify (https://github.com/stravant/LuaMinify) - Minifier which also brings its own static analysis tools, lexer, and parser.
- Typed Lua (https://github.com/andremm/typedlua) - A typed superset of Lua that compiles to plain Lua.
- lua-parser (https://github.com/andremm/lua-parser) - A Lua 5.3 parser written using LPegLabel, with improved error messages.
 
 
Experimental, etc
- punchdrunk.js (https://github.com/TannerRogalsky/punchdrunk) - Moonshine + LÖVE API reimplementation = run LÖVE games in the browser.
- luvit (https://github.com/luvit/luvit) - Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript.
- graphql-lua (https://github.com/bjornbytes/graphql-lua) - Lua implementation of GraphQL (http://graphql.org/).
 
 
Scriptable by Lua
- luakit (https://luakit.github.io/luakit/) - Fast, small, webkit based browser framework extensible by Lua.
- Hammerspoon (http://www.hammerspoon.org) - A powerful, extensible OS X automation tool. A community-maintained fork of Mjolnir (http://www.mjolnir.io/).
- kpie (https://github.com/skx/kpie) - A scripting utility to juggle windows.
- lumail (https://lumail.org/) - A console-based mail client, with extensive scripting capabilities.
- AwesomeWM (https://awesomewm.org/) - A highly configurable and extensible window manager for X, scripted and configured by Lua.
- Textadept (https://foicica.com/textadept/) - Extremely lightweight, customizable, cross-platform editor, written (mostly) in (and scripted by) Lua.
- KoReader (https://github.com/koreader/koreader) - An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices.
 
 
Miscellaneous
- MoonScript (http://moonscript.org/) - 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 (http://leafo.net/sitegen/) - A static site generator which uses MoonScript and supports HTML and Markdown, page grouping, and plugins.
 
 
Resources
 
Community
- lua-l (http://www.lua.org/lua-l.html) - The official Lua mailing list, and one of the focal points of the Lua community.
- Lua.Space (http://lua.space/) - The Lua community blog.
- Lua Users Foundation (https://github.com/lua-users-foundation) - An association of individuals with the mission of supporting and promoting Lua and its community and ecosystems.
- lua-users.org (http://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 (https://www.lua.org/community.html#workshop) - Annual 2-day meeting of the Lua community, in rotating locations.
- Lua Conf (http://luaconf.com/) - Annual 1-day Lua conference in Brazil.
- FOSDEM (https://fosdem.org/) - Annual 2-day gathering of F/OSS developers in Brussels which sometimes has a "Lua devroom".
 
 
References
- Reference Manual (http://www.lua.org/manual/5.3/) - The official definition of the Lua language.
- lua-users wiki (http://lua-users.org/wiki/) - A large community-maintained collection of Lua information and resources, supplementing the official website.
- Lua Unofficial FAQ (http://www.luafaq.org/) - Answers all sorts of Lua-related questions, including many of the form 'How to ___?'.
 
 
Glossaries
- Lua 5.3 Glossary (https://rawgit.com/dlaurie/lua-notes/master/glossary.html) - A glossary of some essential Lua terms.
 
 
Style Guides
- Lua-users style guide (http://lua-users.org/wiki/LuaStyleGuide) - A general, high-level style guide; unopinionated, easily agreed on.
- Olivine style guide (https://github.com/Olivine-Labs/lua-style-guide) - A more opinionated and specific, and therefore more rigorous, guide.
 
 
Tutorials
- Lua Crash Course (http://www.coppeliarobotics.com/helpFiles/en/luaCrashCourse.htm) - Short crash course readover, or reference for when you forget the basics.
- Learn Lua in 15 Minutes (http://tylerneylon.com/a/learn-lua/) - A well-commented example file which covers the basics.
- Learning Lua from JS (http://phrogz.net/lua/LearningLua_FromJS.html) - 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 (http://lua-users.org/wiki/LuaTutorial) - In-depth collection of tutorials aimed at newcomers.
- Lua Missions (https://github.com/kikito/lua_missions) - A series of 'Missions' to work through which are designed to teach aspects of Lua along the way.
- Creating an Image Server (http://leafo.net/posts/creating_an_image_server.html) - Walks through setting up and using OpenResty to build a simple image processing server; a great starting point for playing with OpenResty.
 
 
Articles
- Embedding Lua in C (https://debian-administration.org/article/264/Embedding_a_scripting_language_inside_your_C/C_code) - An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough.
- Lua: Good, bad, and ugly parts (http://notebook.kulchenko.com/programming/lua-good-different-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 (http://www.thijsschreijer.nl/blog/?p=693) - Diagrams and explains some more advanced concepts of the Lua VM, particularly when interfacing with C.
 
 
Talks & Slides
- Roberto's Talks (http://www.inf.puc-rio.br/~roberto/talks/index.html) - History of talks given by Lua's chief architect, with slides for each.
- Lua Workshop Talks (http://www.lua.org/wshop14.html#abstracts) - High-quality talks are given at each ~annual Lua Workshop, and a history of them is online, slides included.
 
 
Books
- Programming in Lua (http://www.lua.org/pil/) - 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 (https://foicica.com/lua/) - A quick reference on how to program in and embed Lua 5.1 through 5.3, by the creator of Textadept.
- Programming Gems (http://www.lua.org/gems/) - A collection of articles covering existing wisdom and practices on programming well in Lua, in a broad variety of use cases.
- Lua Programming (https://en.wikibooks.org/wiki/Lua_Programming) - A shorter overview of the language, up to date for Lua 5.2, and available online.
 
 
Other Lists
- awesome-resty (https://github.com/bungle/awesome-resty) - A list like this one, but focused on OpenResty.
- awesome-love2d (https://github.com/love2d-community/awesome-love2d) - A list like this one, but focused on game dev and the LÖVE platform.
- Where Lua is Used (https://sites.google.com/site/marbux/home/where-lua-is-used) - A comprehensive list of stand-alone programs written in or extensible using Lua.
 
 
Contribute
 
Contributions welcome and wanted! Read the contribution guidelines (contributing.md) first.
 
License
 
!CC0 (https://licensebuttons.net/p/zero/1.0/88x31.png) (https://creativecommons.org/publicdomain/zero/1.0/)
 
To the extent possible under law, Lewis Ellis has waived all copyright and related or neighboring rights to this work.
 
lua Github: https://github.com/LewisJEllis/awesome-lua