An open API service indexing awesome lists of open source software.

awesome-lua

A curated list of quality Lua packages and resources.
https://github.com/LewisJEllis/awesome-lua

Last synced: 27 days ago
JSON representation

Resources

Analysis Tools and ASTs

  • luacov - Simple coverage analyzer, used by busted and telescope for checking test coverage.
  • luadec51 - Lua Decompiler for Lua version 5.1.
  • luacov-coveralls - LuaCov reporter for coveralls.io.
  • luacheck - Simple static analyzer which detects accidental globals and undefined or shadowed locals.
  • Metalua - Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way.
  • LuaInspect - Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others.
  • LuaMinify - Minifier which also brings its own static analysis tools, lexer, and parser.
  • Typed Lua - A typed superset of Lua that compiles to plain Lua.
  • lua-parser - A Lua 5.3 parser written using LPegLabel, with improved error messages.

Articles

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.

Build Tools and Standalone Makers

  • Lake - A build engine written in Lua, similar to Ruby's rake.
  • Luabuild - Highly customizable Lua 5.2 build system.
  • luastatic - Simple tool for turning Lua programs into standalone executables.
  • omnia - A batteries-included creator of standalone executables, built on top of luastatic.

Command-line Utilities

  • ansicolors - Simple function for printing to the console in color.
  • lua-term - Terminal operations and manipulations.
  • argparse - A feature-rich command line parser inspired by argparse for Python.
  • cliargs - A simple command-line argument parsing module.

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.
  • FOSDEM - Annual 2-day gathering of F/OSS developers in Brussels which sometimes has a "Lua devroom".

Compression

  • lua-zlib - Simple streaming interface to zlib for gzip/gunzip.
  • lua-zip - Lua binding to libzip. Reads and writes zip files.

Concurrency and Multithreading

  • cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
  • comparison
  • Lumen - Simple concurrent task scheduling.
  • ConcurrentLua - Implements an Erlang-style message-passing concurrency model.
  • cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
  • llthreads - A simple wrapper for low-level pthreads & WIN32 threads.
  • llthreads2 - Newer rewrite of llthreads.
  • lanes - Library implementing a message passing model with one OS thread per Lua thread.
  • luaproc - Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also the paper where it originated.
  • comparison

Cryptography

  • LuaCrypto - Lua bindings to OpenSSL.
  • lua-lockbox - A collection of cryptographic primitives written in pure Lua.
  • luatweetnacl - Bindings to tweetnacl, modern high-security cryptographic library.
  • luaossl - "Most comprehensive OpenSSL module in the Lua universe" - used by lapis, kong, and lua-http.

Data Stores

  • LuaSQL - Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL.
  • pgmoon - Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.
  • lua-resty-mysql - Lua MySQL driver for OpenResty.
  • lua-resty-cassandra - Lua Cassandra client driver for OpenResty and others.
  • redis-lua - Pure Lua client library for Redis.
  • lua-resty-redis - Lua Redis client driver for OpenResty.
  • lredis - Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues.

Debugging and Profiling

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

Digital Signal Processing

  • Worp - Sound/music/DSP engine written for LuaJIT.
  • LuaFFT - An easy to use Fast Fourier Transformation package in pure Lua.

Documentation

  • LDoc - Documentation generator which modernizes and extends LuaDoc.
  • Locco - Lua port of Docco, the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".
  • docroc - Parse comments into a Lua table to generate documentation.
  • LDoc - Documentation generator which modernizes and extends LuaDoc.
  • Locco - Lua port of Docco, the "quick-and-dirty, hundred-line-long, literate-programming-style documentation generator".

Experimental, etc

  • punchdrunk.js - Moonshine + LÖVE API reimplementation = run LÖVE games in the browser.
  • luvit - Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript.
  • graphql-lua - Lua implementation of GraphQL.

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.
  • lunix - Bindings to common Unix system APIs, striving for thread-safety.
  • lua-path - File system path manipulation library.

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.

Game Development

  • moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
  • Coronium - Simple cloud platform supporting analytics, data objects, user management, and more.
  • lurker - Shortens the iteration cycle by auto-swapping changed Lua files in a running LÖVE project.
  • HUMP - A set of lightweight helpers for LÖVE; a game-oriented utility belt.
  • moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
  • Jumper - Fast, lightweight, and easy-to-use pathfinding library for grid-based games.
  • lume - Utility belt library geared toward game development.
  • NoobHub - Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model.
  • bump.lua - Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution.
  • HardonCollider - Detect collisions between arbitrarily positioned and rotated shapes of any type.
  • 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.
  • termtris - A tetris clone, written in literate style with "an emphasis on learn-from-ability".
  • PacPac - A Pac-man clone, made with LÖVE.
  • Mari0 - Fusion of Mario and Portal, made with LÖVE. See also its wikipedia entry.
  • Journey to the Center of Hawkthorne - 2D platformer based on Community's Digital Estate Planning episode, made with LÖVE.
  • 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.

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.
  • Amulet - Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS.

Glossaries

Hardware and Embedded Systems

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

Humanize

  • i18n.lua - Internationalization library with locales, formatting, and pluralization.
  • inspect.lua - Human-readable representation of Lua tables.
  • serpent - Serializer and pretty printer.
  • Ser - Dead simple serializer with good performance.
  • say - Simple string key-value store for i18n.

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.
  • Lua Development Tools - Eclipse plugin which provides code completion, debugging, and more. Built on Metalua.

Image Manipulation

  • magick - Lua bindings to ImageMagick for LuaJIT using FFI.

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.
  • Lua Repo - The official Lua repo, as seen by the Lua team, mirrored to GitHub.
  • LuaJIT - High-performance Just-In-Time compiler for Lua.
  • LLVM-Lua - Compiles Lua to LLVM.
  • lua.vm.js - Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.
  • Moonshine - A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.
  • UniLua - A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.
  • lupa - Python bindings to LuaJIT2.
  • golua - Golang bindings to the Lua C API.
  • GopherLua - Lua 5.1 VM and compiler implemented in Go with Go APIs.
  • LuaBridge - A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua.

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.

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.
  • SciLua - Numerical/scientific computing framework built on LuaJIT, with an interface to R.

Message Brokers

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.

Network

  • lua-websockets - WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.
  • lua-cURLv3 - Lua binding to libcurl.
  • lua-http - Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues.

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.

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.
  • awesome-resty - A list like this one, but focused on OpenResty.
  • Sailor
  • Kong - Microservice & API Management Layer.
  • ledge - Lua module providing scriptable, RFC-compliant HTTP cache functionality.
  • lua-resty-http - Lua HTTP client driver, built on the cosocket API.

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.
  • 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.

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.

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.
  • dkjson - JSON encoder/decoder implemented in pure Lua.
  • luajson - JSON encoder/decoder implemented in Lua on top of LPeg.
  • json.lua - A fast and tiny JSON library in pure Lua.