awesome-lua
A curated list of quality Lua packages and resources.
https://github.com/LewisJEllis/awesome-lua
Last synced: 13 days ago
JSON representation
-
Resources
-
Other Lists
- 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.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
- Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.
-
Game Engines
- Corona SDK - Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads.
- LÖVE 2D - Desktop game development platform. Cross-platform, feature-complete, well-adopted.
- 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.
- Amulet - Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS.
-
Scriptable by Lua
- AwesomeWM - A highly configurable and extensible window manager for X, scripted and configured by Lua.
- lumail - A console-based mail client, with extensive scripting capabilities.
- KoReader - An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices.
- kpie - A scripting utility to juggle windows.
- luakit - Fast, small, webkit based browser framework extensible by Lua.
-
Implementations, Interpreters, and Bindings
- Lua - Lua's original ANSI C interpreter.
- LuaJIT - High-performance Just-In-Time compiler for Lua.
- Fengari - The Lua VM rewritten in Javascript with seamless JS and DOM interoperability.
- LLVM-Lua - Compiles Lua to LLVM.
- 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.
- Lua Repo - The official Lua repo, as seen by the Lua team, mirrored to GitHub.
- lupa - Python bindings to LuaJIT2.
- UniLua - A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.
- lua.vm.js - Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.
- LuaJIT - High-performance Just-In-Time compiler for Lua.
- Moonshine - A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.
-
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.
-
Debugging and Profiling
- ProFi - Simple profiler that works with LuaJIT and produces a report file.
- lovebird - Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support.
- MobDebug - Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio.
- StackTracePlus - Drop-in upgrade to Lua's stack traces which adds local context and improves readability.
- luatrace - Toolset for tracing/analyzing/profiling script execution and generating detailed reports.
-
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.
- 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.
- BabeLua - Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities.
-
Utility Belts
- compat53 - Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1.
- Lua Fun - High-performance functional programming library designed for LuaJIT.
- Moses - Functional programming utility belt, inspired by Underscore.js.
- Microlight - A little library of useful Lua functions; the 'extra light' version of Penlight.
- RxLua - Reactive Extensions, Observables, etc.
- lua-stdlib - Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff.
- Penlight - Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't.
-
Game Development
- moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
- NoobHub - Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model.
- Jumper - Fast, lightweight, and easy-to-use pathfinding library for grid-based games.
- lurker - Shortens the iteration cycle by auto-swapping changed Lua files in a running LÖVE project.
- bump.lua - Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution.
- flux - A fast, lightweight tweening library for Lua with easing functions and the ability to group tweens together.
- tween.lua - Small library for tweening, with several easing functions.
- Journey to the Center of Hawkthorne - 2D platformer based on Community's [Digital Estate Planning](https://en.wikipedia.org/wiki/Digital_Estate_Planning) episode, made with LÖVE.
- termtris - A tetris clone, written in literate style with "an emphasis on learn-from-ability".
- PacPac - A Pac-man clone, made with LÖVE.
- lume - Utility belt library geared toward game development.
- Coronium - Simple cloud platform supporting analytics, data objects, user management, and more.
- HUMP - A set of lightweight helpers for LÖVE; a game-oriented utility belt.
- moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
- HardonCollider - Detect collisions between arbitrarily positioned and rotated shapes of any type.
- Mari0 - Fusion of Mario and Portal, made with LÖVE. See also its [wikipedia entry](https://en.wikipedia.org/wiki/Mari0).
- HUMP - A set of lightweight helpers for LÖVE; a game-oriented utility belt.
- HardonCollider - Detect collisions between arbitrarily positioned and rotated shapes of any type.
-
Logging
- luasyslog - Log to syslog, based on LuaLogging.
- lua-log - Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more.
- LuaLogging - Log4j-inspired logging library supporting various appenders.
-
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.
-
OpenResty
- OpenResty GitHub Organization - Home of the repositories for ngx_lua, ngx_openresty, and many related modules.
- Lapis - Full-stack framework for Lua and OpenResty. Like the Django or Rails of Lua. Supports Moonscript.
- Kong - Microservice & API Management Layer.
- awesome-resty - A list like this one, but focused on OpenResty.
- Sailor
- ledge - Lua module providing scriptable, RFC-compliant HTTP cache functionality.
- lua-resty-http - Lua HTTP client driver, built on the cosocket API.
- 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).
-
Concurrency and Multithreading
- cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
- comparison
- lanes - Library implementing a message passing model with one OS thread per Lua thread.
- llthreads2 - Newer rewrite of llthreads.
- ConcurrentLua - Implements an Erlang-style message-passing concurrency model.
- llthreads - A simple wrapper for low-level pthreads & WIN32 threads.
- 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.
- Lumen - Simple concurrent task scheduling.
- cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
- comparison
-
Templating
- lustache - Mustache template implementation.
- lua-resty-template - Lua-oriented template engine for OpenResty, somewhat Jinja-like.
- etlua - Embedded Lua templates, ERB-style.
- lustache - Mustache template implementation.
-
File system and OS
- lunix - Bindings to common Unix system APIs, striving for thread-safety.
- LuaFileSystem - Extends and complements Lua's built-in set of file system functions.
- luaposix - Bindings for POSIX APIs, including curses.
- lua-path - File system path manipulation library.
- lunix - Bindings to common Unix system APIs, striving for thread-safety.
-
Digital Signal Processing
-
Hardware and Embedded Systems
-
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.
- lhf's Lua Tools - Assorted libraries and tools, many math- or data-related.
-
Parsing and Serialization
- LuaExpat - SAX XML parser via binding to the Expat library.
- LPeg - A pattern-matching library for Lua, based on Parsing Expression Grammars.
- LuaExpat - SAX XML parser via binding to the Expat library.
- dkjson - JSON encoder/decoder implemented in pure Lua.
- json.lua - A fast and tiny JSON library in pure Lua.
- lyaml - YAML encoding/decoding via binding to LibYAML.
- lua-cmsgpack - A MessagePack C implementation with Lua bindings, as used by Redis.=
- lunamark - Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing.
- SLAXML - Pure Lua SAX-like streaming XML parser.
- luajson - JSON encoder/decoder implemented in Lua on top of LPeg.
- lpeg_patterns - A collection of LPeg patterns.
- LPegLJ - A pure LuaJIT implementation of LPeg v1.0.
- LXSH - A collection of lexers and syntax highlighters written with LPeg.
- LPegLabel - An extension of LPeg adding support for labeled failures.
- LuLPeg - A pure Lua implementation of LPeg v0.12.
- lua-pb - Protocol Buffers implementation.
- LPeg - A pattern-matching library for Lua, based on Parsing Expression Grammars.
- lua-MessagePack - Pure Lua implementation of MessagePack.
- lua-cjson - Blazing fast JSON encoding/decoding implemented in C and exposed to Lua.
-
Foreign Function Interfaces
- LuaJIT FFI - LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code.
- 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.
-
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.
- sitegen - A static site generator which uses MoonScript and supports HTML and Markdown, page grouping, and plugins.
-
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.
- 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".
- Lua Conf - Annual 1-day Lua conference in Brazil.
- 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.
- lua-l - The official Lua mailing list, and one of the focal points of the Lua community.
-
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 ___?'.
- lua-users wiki - A large community-maintained collection of Lua information and resources, supplementing the official website.
- Reference Manual - The official definition of the Lua language.
-
Glossaries
- Lua 5.3 Glossary - A glossary of some essential Lua terms.
-
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.
- Lua-users style guide - A general, high-level style guide; unopinionated, easily agreed on.
-
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.
- 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.
- Lua Missions - A series of 'Missions' to work through which are designed to teach aspects of Lua along the way.
- lua-users tutorial - In-depth collection of tutorials aimed at newcomers.
- 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.
- 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.
-
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: 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.
- Embedding Lua in C - An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough.
-
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.
- 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.
-
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.
- Lua Programming - A shorter overview of the language, up to date for Lua 5.2, and 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.
-
Data Stores
- LuaSQL - Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL.
- redis-lua - Pure Lua client library for Redis.
- lua-resty-mysql - Lua MySQL driver for OpenResty.
- lua-resty-redis - Lua Redis client driver for OpenResty.
- pgmoon - Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.
- lua-resty-cassandra - Lua Cassandra client driver for OpenResty and others.
- lredis - Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues.
-
Analysis Tools and ASTs
- luacov - Simple coverage analyzer, used by busted and telescope for checking test coverage.
- luacheck - Simple static analyzer which detects accidental globals and undefined or shadowed locals.
- Typed Lua - A typed superset of Lua that compiles to plain Lua.
- luacov-coveralls - LuaCov reporter for coveralls.io.
- lua-parser - A Lua 5.3 parser written using LPegLabel, with improved error messages.
- 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.
- Metalua - Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way.
- luadec51 - Lua Decompiler for Lua version 5.1.
- luacov - Simple coverage analyzer, used by busted and telescope for checking test coverage.
-
Humanize
- inspect.lua - Human-readable representation of Lua tables.
- Ser - Dead simple serializer with good performance.
- serpent - Serializer and pretty printer.
- i18n.lua - Internationalization library with locales, formatting, and pluralization.
- say - Simple string key-value store for i18n.
-
Build Tools and Standalone Makers
-
Experimental, etc
- graphql-lua - Lua implementation of [GraphQL](http://graphql.org/).
- luvit - Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript.
- punchdrunk.js - Moonshine + LÖVE API reimplementation = run LÖVE games in the browser.
-
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.
-
Testing
-
Cryptography
- luaossl - "Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http.
- lua-lockbox - A collection of cryptographic primitives written in pure Lua.
- LuaCrypto - Lua bindings to OpenSSL.
- luatweetnacl - Bindings to tweetnacl, modern high-security cryptographic library.
-
Network
- 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.
- lua-websockets - WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.
- LuaSocket - Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP.
-
Compression
-
Message Brokers
- lzmq - A newer Lua binding to ZeroMQ.
- lua-resty-rabbitmqstomp - RabbitMQ client library based on OpenResty cosockets.
- lua-resty-kafka - Kafka client driver based on OpenResty cosockets.
- lua-zmq - Lua bindings to ZeroMQ.
-
Time and Date
-
Image Manipulation
- magick - Lua bindings to ImageMagick for LuaJIT using FFI.
-
Command-line Utilities
- lua-term - Terminal operations and manipulations.
- argparse - A feature-rich command line parser inspired by argparse for Python.
- ansicolors - Simple function for printing to the console in color.
- cliargs - A simple command-line argument parsing module.
-
Documentation
- docroc - Parse comments into a Lua table to generate documentation.
- LDoc - Documentation generator which modernizes and extends [LuaDoc](http://keplerproject.github.io/luadoc/).
- Locco - Lua port of [Docco](http://ashkenas.com/docco/), the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".
- LDoc - Documentation generator which modernizes and extends [LuaDoc](http://keplerproject.github.io/luadoc/).
- Locco - Lua port of [Docco](http://ashkenas.com/docco/), the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".
-
Programming Languages
Categories
Sub Categories
Other Lists
20
Parsing and Serialization
19
Game Development
18
Implementations, Interpreters, and Bindings
13
Analysis Tools and ASTs
10
Concurrency and Multithreading
10
Community
10
Tutorials
9
OpenResty
8
Utility Belts
7
Data Stores
7
Game Engines
7
IDEs and Plugins
6
Debugging and Profiling
5
File system and OS
5
Humanize
5
References
5
Scriptable by Lua
5
Documentation
5
Articles
4
Network
4
Web/Networking Platforms
4
Talks & Slides
4
Message Brokers
4
Math and Scientific Computing
4
Build Tools and Standalone Makers
4
Command-line Utilities
4
Cryptography
4
Books
4
Templating
4
Foreign Function Interfaces
3
Experimental, etc
3
Digital Signal Processing
3
Style Guides
3
Time and Date
3
Miscellaneous
3
Logging
3
Object-oriented Programming
2
Testing
2
Compression
2
Hardware and Embedded Systems
2
Image Manipulation
1
Glossaries
1
Package Managers
1
Keywords
lua
27
luajit
5
lua-bindings
2
love2d
2
cqueues
2
luarocks
2
functional-programming
2
lua-binding
2
datetime
2
date
2
http
2
microservices
1
microservice
1
kubernetes-ingress-controller
1
kubernetes-ingress
1
kubernetes
1
kong
1
docker
1
devops
1
consul
1
cloud-native
1
nginx
1
reverse-proxy
1
serverless
1
go
1
gopher-lua
1
human-readable
1
tables
1
linter
1
luaposix
1
posix
1
posix-apis
1
corona-sdk
1
gideros
1
awesome
1
awesome-list
1
game-development
1
cbz
1
djvu
1
djvu-reflow
1
ebook
1
ebook-reader
1
eink
1
epub
1
ereader
1
fb2
1
kindle
1
kobo
1
opds
1
pdf
1