awesome-lua

Lua toolkit

A curated list of quality Lua packages and resources for building applications.

A curated list of quality Lua packages and resources.

GitHub

4k stars
153 watching
321 forks
last commit: 4 months ago
Linked from 12 awesome lists


Awesome Lua / Resources / Implementations, Interpreters, and Bindings

Lua Lua's original ANSI C interpreter

Awesome Lua / Resources / Implementations, Interpreters, and Bindings / Lua

Lua Repo 8,590 12 days ago The official Lua repo, as seen by the Lua team, mirrored to GitHub

Awesome Lua / Resources / Implementations, Interpreters, and Bindings

LuaJIT High-performance Just-In-Time compiler for Lua
LLVM-Lua 153 almost 9 years ago Compiles Lua to LLVM
lua.vm.js 835 over 6 years ago Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js
Moonshine 502 over 3 years ago 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 1,421 about 1 year ago A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms
UniLua 1,111 5 months ago A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine
lupa 1,022 about 2 months ago Python bindings to LuaJIT2
golua 651 23 days ago Golang bindings to the Lua C API
GopherLua 6,306 24 days ago Lua 5.1 VM and compiler implemented in Go with Go APIs
LuaBridge 1,650 over 1 year ago A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua

Awesome 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

Awesome Lua / Resources / Build Tools and Standalone Makers

Lake 134 about 9 years ago A build engine written in Lua, similar to Ruby's rake
Luabuild 79 almost 9 years ago Highly customizable Lua 5.2 build system
luastatic 793 about 1 year ago Simple tool for turning Lua programs into standalone executables
omnia 47 about 4 years ago A batteries-included creator of standalone executables, built on top of luastatic

Awesome Lua / Resources / Debugging and Profiling

ProFi Simple profiler that works with LuaJIT and produces a report file
luatrace 170 about 9 years ago Toolset for tracing/analyzing/profiling script execution and generating detailed reports
StackTracePlus 195 over 1 year ago Drop-in upgrade to Lua's stack traces which adds local context and improves readability
MobDebug 889 about 1 year ago Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio
lovebird 293 over 3 years ago Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support

Awesome Lua / 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 321 5 months ago Emacs major mode for editing Lua
vscode-lua 116 9 months ago VSCode intellisense and linting

Awesome Lua / Resources / Utility Belts

Lua Fun 2,122 about 2 months ago High-performance functional programming library designed for LuaJIT
Moses 629 almost 5 years ago Functional programming utility belt, inspired by Underscore.js
Penlight 1,934 26 days ago Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't
lua-stdlib 290 almost 2 years ago Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff
Microlight 168 over 2 years ago 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 521 over 4 years ago Reactive Extensions, Observables, etc

Awesome Lua / 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

Awesome Lua / Resources / Game Development / Corona

Coronium Simple cloud platform supporting analytics, data objects, user management, and more

Awesome Lua / Resources / Game Development / LÖVE

awesome-love2d 3,329 5 days ago A list like this one, but focused on game dev and the LÖVE platform
lurker 288 over 1 year ago 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

Awesome Lua / Resources / Game Development / MOAI

moaifiddle Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL

Awesome Lua / Resources / Game Development

Jumper 619 about 2 years ago Fast, lightweight, and easy-to-use pathfinding library for grid-based games
lume 1,023 about 1 year ago Utility belt library geared toward game development
NoobHub 321 5 months ago Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model

Awesome Lua / Resources / Game Development / Collision detection

bump.lua 944 about 1 year ago Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution
HardonCollider Detect collisions between arbitrarily positioned and rotated shapes of any type

Awesome Lua / Resources / Game Development / Tweening

flux 394 almost 4 years ago A fast, lightweight tweening library for Lua with easing functions and the ability to group tweens together
tween.lua 587 almost 2 years ago Small library for tweening, with several easing functions

Awesome Lua / Resources / Game Development / Examples

termtris 450 almost 5 years ago A tetris clone, written in literate style with "an emphasis on learn-from-ability"
PacPac 344 over 9 years ago A Pac-man clone, made with LÖVE
Mari0 664 about 1 year ago Fusion of Mario and Portal, made with LÖVE. See also its
Journey to the Center of Hawkthorne 1,095 7 days ago 2D platformer based on Community's episode, made with LÖVE

Awesome Lua / Resources / Logging

lua-log 109 about 6 years ago Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more
LuaLogging 146 over 3 years ago Log4j-inspired logging library supporting various appenders
luasyslog Log to syslog, based on LuaLogging

Awesome Lua / 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 424 2 months ago Pegasus.lua is a http server to work with web applications written in Lua language

Awesome Lua / Resources / OpenResty

awesome-resty 2,405 13 days ago A list like this one, but focused on OpenResty

Awesome Lua / 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

Awesome Lua / Resources / OpenResty / Third-party modules

lua-resty-http 2,005 6 months ago Lua HTTP client driver, built on the cosocket API

Awesome Lua / Resources / OpenResty / Frameworks & tools

Lapis Full-stack framework for Lua and OpenResty. Like the Django or Rails of Lua. Supports Moonscript
ledge 455 over 3 years ago Lua module providing scriptable, RFC-compliant HTTP cache functionality
Sailor 926 about 2 years ago — An MVC web framework compatible with OpenResty, Apache and other webservers
Kong 39,358 7 days ago Microservice & API Management Layer

Awesome Lua / Resources / Command-line Utilities

ansicolors 137 6 months ago Simple function for printing to the console in color
cliargs 123 12 months ago A simple command-line argument parsing module
lua-term 159 3 months ago Terminal operations and manipulations
argparse 263 about 4 years ago A feature-rich command line parser inspired by argparse for Python

Awesome Lua / Resources / Concurrency and Multithreading / Coroutine-based multitasking:

Lumen 154 30 days ago Simple concurrent task scheduling
ConcurrentLua 159 about 10 years ago Implements an Erlang-style message-passing concurrency model
cqueues Library for managing sockets, signals, and threads based on an event loop with coroutines

Awesome Lua / Resources / Concurrency and Multithreading / Multithreading:

llthreads 145 2 months ago A simple wrapper for low-level pthreads & WIN32 threads
llthreads2 76 about 1 year ago Newer rewrite of llthreads
lanes 469 1 day ago Library implementing a message passing model with one OS thread per Lua thread
luaproc 118 over 7 years ago Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also where it originated

Awesome Lua / Resources / Templating

lustache Mustache template implementation
etlua 219 about 1 year ago Embedded Lua templates, ERB-style
lua-resty-template 911 over 1 year ago Lua-oriented template engine for OpenResty, somewhat Jinja-like

Awesome Lua / Resources / Documentation

LDoc Documentation generator which modernizes and extends
Locco Lua port of , the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator"
docroc 14 almost 9 years ago Parse comments into a Lua table to generate documentation

Awesome Lua / Resources / Object-oriented Programming

30log 456 over 3 years ago Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines
middleclass 1,771 over 1 year ago Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins

Awesome Lua / Resources / File system and OS

LuaFileSystem Extends and complements Lua's built-in set of file system functions
luaposix 536 4 months ago Bindings for POSIX APIs, including curses
lunix Bindings to common Unix system APIs, striving for thread-safety
lua-path 81 almost 4 years ago File system path manipulation library

Awesome Lua / Resources / Time and Date

LuaDate 263 about 1 year ago Date and time module with parsing, formatting, addition/subtraction, localization, and ISO 8601 support
cron.lua 178 about 1 year ago Time-related functions for Lua, inspired by JavaScript's setTimeout and setInterval
luatx 120 9 months ago Time, date, and timezone library

Awesome Lua / Resources / Image Manipulation

magick 409 7 months ago Lua bindings to ImageMagick for LuaJIT using FFI

Awesome Lua / Resources / Digital Signal Processing

LuaFFT 58 7 months ago An easy to use Fast Fourier Transformation package in pure Lua
Worp Sound/music/DSP engine written for LuaJIT

Awesome Lua / Resources / Hardware and Embedded Systems

eLua Lua, extended with optimizations and specific features for efficient and portable embedded software development

Awesome Lua / 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

Awesome Lua / Resources / Parsing and Serialization / JSON

lua-cjson 936 6 months ago Blazing fast JSON encoding/decoding implemented in C and exposed to Lua
luajson 251 about 1 year ago JSON encoder/decoder implemented in Lua on top of LPeg
dkjson JSON encoder/decoder implemented in pure Lua
json.lua 1,871 about 1 year ago A fast and tiny JSON library in pure Lua

Awesome Lua / Resources / Parsing and Serialization / XML

LuaExpat SAX XML parser via binding to the Expat library
SLAXML 153 5 months ago Pure Lua SAX-like streaming XML parser

Awesome Lua / Resources / Parsing and Serialization / MessagePack

lua-MessagePack Pure Lua implementation of MessagePack
lua-cmsgpack 357 almost 3 years ago A MessagePack C implementation with Lua bindings, as used by Redis.=

Awesome Lua / Resources / Parsing and Serialization / LPeg

LPeg A pattern-matching library for Lua, based on Parsing Expression Grammars
lpeg_patterns 120 over 2 years ago A collection of LPeg patterns
LuLPeg 252 over 2 years ago A pure Lua implementation of LPeg v0.12
LPegLJ 109 over 2 years ago A pure LuaJIT implementation of LPeg v1.0
LPegLabel 140 over 1 year ago An extension of LPeg adding support for labeled failures

Awesome Lua / Resources / Parsing and Serialization

lyaml 209 over 1 year ago YAML encoding/decoding via binding to LibYAML
lunamark 198 4 months ago Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing
LXSH 72 about 2 years ago A collection of lexers and syntax highlighters written with LPeg
lua-pb 289 over 6 years ago Protocol Buffers implementation

Awesome Lua / Resources / Humanize

i18n.lua 257 about 2 years ago Internationalization library with locales, formatting, and pluralization
inspect.lua 1,388 over 1 year ago Human-readable representation of Lua tables
serpent 557 over 2 years ago Serializer and pretty printer
Ser 76 over 8 years ago Dead simple serializer with good performance
say 47 over 1 year ago Simple string key-value store for i18n

Awesome Lua / Resources / Compression

lua-zlib 276 over 1 year ago Simple streaming interface to zlib for gzip/gunzip
lua-zip 83 almost 3 years ago Lua binding to libzip. Reads and writes zip files

Awesome Lua / Resources / Cryptography

LuaCrypto 100 over 5 years ago Lua bindings to OpenSSL
lua-lockbox 362 10 months ago A collection of cryptographic primitives written in pure Lua
luatweetnacl 17 about 3 years ago Bindings to tweetnacl, modern high-security cryptographic library
luaossl 145 5 months ago "Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http

Awesome Lua / Resources / Network

LuaSocket 1,859 5 months ago Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP
lua-websockets 403 about 2 years ago WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket
lua-cURLv3 282 over 1 year ago Lua binding to libcurl
lua-http 808 3 months ago Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues

Awesome Lua / Resources / Data Stores

LuaSQL Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL
pgmoon 398 about 1 year ago Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues
lua-resty-mysql 709 4 months ago Lua MySQL driver for OpenResty
lua-resty-cassandra 68 over 7 years ago Lua Cassandra client driver for OpenResty and others

Awesome Lua / Resources / Data Stores / Redis

redis-lua 737 about 1 year ago Pure Lua client library for Redis
lua-resty-redis 1,906 4 months ago Lua Redis client driver for OpenResty
lredis 42 almost 4 years ago Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues

Awesome Lua / Resources / Message Brokers

lua-zmq 153 2 months ago Lua bindings to ZeroMQ
lzmq 137 over 4 years ago A newer Lua binding to ZeroMQ
lua-resty-kafka 803 about 1 year ago Kafka client driver based on OpenResty cosockets
lua-resty-rabbitmqstomp 194 over 4 years ago RabbitMQ client library based on OpenResty cosockets

Awesome Lua / Resources / Testing

busted BDD-style unit testing framework with great docs and Moonscript support
telescope 161 over 7 years ago Flexible and highly customizable testing library
luassert 209 26 days ago Assertion library extending Lua's built-in assertions
lust 112 2 months ago Minimal test framework

Awesome Lua / Resources / Foreign Function Interfaces

LuaJIT FFI LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code
luaffi 473 almost 4 years ago Standalone FFI library, compatible with the LuaJIT FFI interface

Awesome Lua / Resources / Analysis Tools and ASTs

luadec51 320 over 2 years ago Lua Decompiler for Lua version 5.1
luacov Simple coverage analyzer, used by busted and telescope for checking test coverage

Awesome Lua / Resources / Analysis Tools and ASTs / luacov

luacov-coveralls 50 over 2 years ago LuaCov reporter for coveralls.io

Awesome Lua / Resources / Analysis Tools and ASTs

luacheck 1,921 almost 2 years ago Simple static analyzer which detects accidental globals and undefined or shadowed locals
Metalua 349 11 months ago Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way
LuaInspect 172 over 8 years ago Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others
LuaMinify 259 about 2 years ago Minifier which also brings its own static analysis tools, lexer, and parser
Typed Lua 566 over 4 years ago A typed superset of Lua that compiles to plain Lua
lua-parser 193 almost 2 years ago A Lua 5.3 parser written using LPegLabel, with improved error messages

Awesome Lua / Resources / Experimental, etc

punchdrunk.js 81 almost 9 years ago Moonshine + LÖVE API reimplementation = run LÖVE games in the browser
luvit 3,829 7 days ago Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript
graphql-lua 187 over 1 year ago Lua implementation of

Awesome Lua / 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 80 almost 4 years ago 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 16,993 about 5 hours ago An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices

Awesome Lua / 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

Awesome Lua / 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

Awesome Lua / 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"

Awesome Lua / 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 ___?'

Awesome Lua / Resources / Glossaries

Lua 5.3 Glossary A glossary of some essential Lua terms

Awesome Lua / Resources / Style Guides

Lua-users style guide A general, high-level style guide; unopinionated, easily agreed on
Olivine style guide 519 over 3 years ago A more opinionated and specific, and therefore more rigorous, guide

Awesome Lua / 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 378 6 months ago 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

Awesome 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
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

Awesome Lua / 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

Awesome Lua / 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

Awesome Lua / Resources / Other Lists

awesome-resty 2,405 13 days ago A list like this one, but focused on OpenResty
awesome-love2d 3,329 5 days ago 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

Backlinks from these awesome lists:

More related projects: