{"slug": "LewisJEllis--awesome-lua", "title": "Lua", "description": "A curated list of quality Lua packages and resources.", "github_url": "https://github.com/LewisJEllis/awesome-lua", "stars": "3.2K", "tag": "Programming Languages", "entry_count": 202, "subcategory_count": 45, "subcategories": [{"name": "Packages", "parent": "", "entries": [{"name": "Implementations, Interpreters, and Bindings", "url": "#implementations-interpreters-and-bindings", "description": ""}, {"name": "Package Managers", "url": "#package-managers", "description": ""}, {"name": "Build Tools and Standalone Makers", "url": "#build-tools-and-standalone-makers", "description": ""}, {"name": "Debugging and Profiling", "url": "#debugging-and-profiling", "description": ""}, {"name": "IDEs and Plugins", "url": "#ides-and-plugins", "description": ""}, {"name": "Utility Belts", "url": "#utility-belts", "description": ""}, {"name": "Game Engines", "url": "#game-engines", "description": ""}, {"name": "Game Development", "url": "#game-development", "description": ""}, {"name": "Logging", "url": "#logging", "description": ""}, {"name": "Web/Networking Platforms", "url": "#webnetworking-platforms", "description": ""}, {"name": "OpenResty", "url": "#openresty", "description": ""}, {"name": "Command-line Utilities", "url": "#command-line-utilities", "description": ""}, {"name": "Concurrency and Multithreading", "url": "#concurrency-and-multithreading", "description": ""}, {"name": "Templating", "url": "#templating", "description": ""}, {"name": "Documentation", "url": "#documentation", "description": ""}, {"name": "Object-oriented Programming", "url": "#object-oriented-programming", "description": ""}, {"name": "File system and OS", "url": "#file-system-and-os", "description": ""}, {"name": "Time and Date", "url": "#time-and-date", "description": ""}, {"name": "Image Manipulation", "url": "#image-manipulation", "description": ""}, {"name": "Digital Signal Processing", "url": "#digital-signal-processing", "description": ""}, {"name": "Hardware and Embedded Systems", "url": "###hardware-and-embedded-systems", "description": ""}, {"name": "Math and Scientific Computing", "url": "#math-and-scientific-computing", "description": ""}, {"name": "Parsing and Serialization", "url": "#parsing-and-serialization", "description": ""}, {"name": "Humanize", "url": "#humanize", "description": ""}, {"name": "Compression", "url": "#compression", "description": ""}, {"name": "Cryptography", "url": "#cryptography", "description": ""}, {"name": "Network", "url": "#network", "description": ""}, {"name": "Data Stores", "url": "#data-stores", "description": ""}, {"name": "Message Brokers", "url": "#message-brokers", "description": ""}, {"name": "Testing", "url": "#testing", "description": ""}, {"name": "Foreign Function Interfaces", "url": "#foreign-function-interfaces", "description": ""}, {"name": "Analysis Tools and ASTs", "url": "#analysis-tools-and-asts", "description": ""}, {"name": "Experimental, etc", "url": "#experimental-etc", "description": ""}, {"name": "Scriptable by Lua", "url": "#scriptable-by-lua", "description": ""}, {"name": "Miscellaneous", "url": "#miscellaneous", "description": ""}, {"name": "Community", "url": "#community", "description": ""}, {"name": "References", "url": "#references", "description": ""}, {"name": "Style Guides", "url": "#style-guides", "description": ""}, {"name": "Tutorials", "url": "#tutorials", "description": ""}, {"name": "Articles", "url": "#articles", "description": ""}, {"name": "Talks & Slides", "url": "#talks--slides", "description": ""}, {"name": "Books", "url": "#books", "description": ""}, {"name": "Other Lists", "url": "#other-lists", "description": ""}]}, {"name": "Implementations, Interpreters, and Bindings", "parent": "Resources", "entries": [{"name": "Lua", "url": "http://www.lua.org/download.html", "description": "Lua's original ANSI C interpreter."}, {"name": "LuaJIT", "url": "http://luajit.org/luajit.html", "description": "High-performance Just-In-Time compiler for Lua."}, {"name": "LLVM-Lua", "url": "https://github.com/neopallium/llvm-lua", "description": "Compiles Lua to LLVM.", "stars": "121"}, {"name": "lua.vm.js", "url": "https://github.com/daurnimator/lua.vm.js", "description": "Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.", "stars": "829"}, {"name": "Moonshine", "url": "https://github.com/gamesys/moonshine", "description": "A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.", "stars": "493"}, {"name": "Fengari", "url": "https://fengari.io/", "description": "The Lua VM rewritten in Javascript with seamless JS and DOM interoperability."}, {"name": "MoonSharp", "url": "https://github.com/xanathar/moonsharp", "description": "A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms.", "stars": "1.2k"}, {"name": "UniLua", "url": "https://github.com/xebecnan/UniLua", "description": "A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.", "stars": "1.1k"}, {"name": "lupa", "url": "https://github.com/scoder/lupa", "description": "Python bindings to LuaJIT2.", "stars": "841"}, {"name": "golua", "url": "https://github.com/aarzilli/golua", "description": "Golang bindings to the Lua C API.", "stars": "598"}, {"name": "GopherLua", "url": "https://github.com/yuin/gopher-lua", "description": "Lua 5.1 VM and compiler implemented in Go with Go APIs.", "stars": "5.1k"}, {"name": "LuaBridge", "url": "https://github.com/vinniefalco/LuaBridge", "description": "A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua.", "stars": "1.4k"}]}, {"name": "Package Managers", "parent": "Resources", "entries": [{"name": "LuaRocks", "url": "https://luarocks.org/", "description": "De-facto tool for installing Lua modules as packages called \"rocks\", plus public rock repository and website. Much like npm or pip."}]}, {"name": "Build Tools and Standalone Makers", "parent": "Resources", "entries": [{"name": "Lake", "url": "https://github.com/stevedonovan/Lake", "description": "A build engine written in Lua, similar to Ruby's rake.", "stars": "123"}, {"name": "Luabuild", "url": "https://github.com/stevedonovan/luabuild", "description": "Highly customizable Lua 5.2 build system.", "stars": "79"}, {"name": "luastatic", "url": "https://github.com/ers35/luastatic", "description": "Simple tool for turning Lua programs into standalone executables.", "stars": "663"}, {"name": "omnia", "url": "https://github.com/tongson/omnia", "description": "A batteries-included creator of standalone executables, built on top of luastatic.", "stars": "45"}]}, {"name": "Debugging and Profiling", "parent": "Resources", "entries": [{"name": "ProFi", "url": "https://gist.github.com/perky/2838755", "description": "Simple profiler that works with LuaJIT and produces a report file."}, {"name": "luatrace", "url": "https://github.com/geoffleyland/luatrace", "description": "Toolset for tracing/analyzing/profiling script execution and generating detailed reports.", "stars": "157"}, {"name": "StackTracePlus", "url": "https://github.com/ignacio/StackTracePlus", "description": "Drop-in upgrade to Lua's stack traces which adds local context and improves readability.", "stars": "180"}, {"name": "MobDebug", "url": "https://github.com/pkulchenko/MobDebug", "description": "Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio.", "stars": "778"}, {"name": "lovebird", "url": "https://github.com/rxi/lovebird", "description": "Browser-based debug console. Originally made for L\u00d6VE, but works in any project with LuaSocket support.", "stars": "257"}]}, {"name": "IDEs and Plugins", "parent": "Resources", "entries": [{"name": "Lua Development Tools", "url": "https://eclipse.org/ldt/", "description": "Eclipse plugin which provides code completion, debugging, and more. Built on Metalua."}, {"name": "Lua for IDEA", "url": "https://bitbucket.org/sylvanaar2/lua-for-idea/wiki/Home", "description": "IntelliJ IDEA plugin which, among other things, provides code completion, smart highlighting, and experimental debugging."}, {"name": "ZeroBraneStudio", "url": "https://studio.zerobrane.com/", "description": "Lightweight, customizable, cross-platform Lua-dedicated IDE with code completion and analysis, written in Lua. Has broad debugging support for numerous Lua engines."}, {"name": "BabeLua", "url": "https://archive.codeplex.com/?p=babelua", "description": "Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities."}, {"name": "lua-mode", "url": "https://github.com/immerrr/lua-mode", "description": "Emacs major mode for editing Lua.", "stars": "292"}, {"name": "vscode-lua", "url": "https://github.com/trixnz/vscode-lua", "description": "VSCode intellisense and linting.", "stars": "109"}]}, {"name": "Utility Belts", "parent": "Resources", "entries": [{"name": "Lua Fun", "url": "https://github.com/luafun/luafun", "description": "High-performance functional programming library designed for LuaJIT.", "stars": "1.8k"}, {"name": "Moses", "url": "https://github.com/Yonaba/Moses", "description": "Functional programming utility belt, inspired by Underscore.js.", "stars": "590"}, {"name": "Penlight", "url": "https://github.com/stevedonovan/Penlight", "description": "Broad, heavyweight utility library, inspired by Python's standard libs. Provides the batteries that Lua doesn't.", "stars": "1.6k"}, {"name": "lua-stdlib", "url": "https://github.com/lua-stdlib/lua-stdlib", "description": "Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff.", "stars": "259"}, {"name": "Microlight", "url": "https://github.com/stevedonovan/Microlight", "description": "A little library of useful Lua functions; the 'extra light' version of Penlight.", "stars": "156"}, {"name": "compat53", "url": "https://luarocks.org/modules/siffiejoe/compat53", "description": "Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1."}, {"name": "RxLua", "url": "https://github.com/bjornbytes/RxLua", "description": "Reactive Extensions, Observables, etc.", "stars": "467"}]}, {"name": "Game Engines", "parent": "Resources", "entries": [{"name": "L\u00d6VE 2D", "url": "http://love2d.org/", "description": "Desktop game development platform. Cross-platform, feature-complete, well-adopted."}, {"name": "Corona SDK", "url": "https://coronalabs.com/", "description": "Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads."}, {"name": "MOAI", "url": "http://getmoai.com/", "description": "Open source, cross-platform, mobile game development framework. Minimalist C++ engine powered by Lua scripting."}, {"name": "Drystal", "url": "https://drystal.github.io/", "description": "Open source, games can run on Linux or on any platform with a recent web browser."}, {"name": "Amulet", "url": "http://www.amulet.xyz/", "description": "Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS."}, {"name": "L\u00d6VR", "url": "https://lovr.org", "description": "3D framework for creating virtual reality experiences, inspired by L\u00d6VE 2D."}]}, {"name": "Game Development", "parent": "Resources", "entries": [{"name": "Jumper", "url": "https://github.com/Yonaba/Jumper", "description": "Fast, lightweight, and easy-to-use pathfinding library for grid-based games.", "stars": "575"}, {"name": "lume", "url": "https://github.com/rxi/lume/", "description": "Utility belt library geared toward game development.", "stars": "761"}, {"name": "NoobHub", "url": "https://github.com/Overtorment/NoobHub", "description": "Network multiplayer for Corona, L\u00d6VE, and more, following a simple pub-sub model.", "stars": "273"}]}, {"name": "Logging", "parent": "Resources", "entries": [{"name": "lua-log", "url": "https://github.com/moteus/lua-log", "description": "Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more.", "stars": "96"}, {"name": "LuaLogging", "url": "https://github.com/Neopallium/lualogging", "description": "Log4j-inspired logging library supporting various appenders.", "stars": "145"}, {"name": "luasyslog", "url": "https://luarocks.org/modules/luarocks/luasyslog", "description": "Log to syslog, based on LuaLogging."}]}, {"name": "Web/Networking Platforms", "parent": "Resources", "entries": [{"name": "OpenResty", "url": "http://openresty.org/en/", "description": "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."}, {"name": "turbo", "url": "https://turbo.readthedocs.io/en/latest/", "description": "Event-driven, non-blocking, LuaJIT-based networking suite and framework, inspired by Tornado."}, {"name": "Kepler Project", "url": "https://github.com/keplerproject", "description": "A collection of web-oriented projects using a common set of standards and components."}, {"name": "Pegasus.lua", "url": "https://github.com/EvandroLG/pegasus.lua", "description": "Pegasus.lua is a http server to work with web applications written in Lua language.", "stars": "309"}]}, {"name": "OpenResty", "parent": "Resources", "entries": [{"name": "awesome-resty", "url": "https://github.com/bungle/awesome-resty", "description": "A list like this one, but focused on OpenResty.", "stars": "2.2k"}]}, {"name": "Command-line Utilities", "parent": "Resources", "entries": [{"name": "ansicolors", "url": "https://github.com/kikito/ansicolors.lua", "description": "Simple function for printing to the console in color.", "stars": "107"}, {"name": "cliargs", "url": "https://github.com/amireh/lua_cliargs", "description": "A simple command-line argument parsing module.", "stars": "96"}, {"name": "lua-term", "url": "https://github.com/hoelzro/lua-term", "description": "Terminal operations and manipulations.", "stars": "114"}, {"name": "argparse", "url": "https://github.com/mpeterv/argparse", "description": "A feature-rich command line parser inspired by argparse for Python.", "stars": "205"}]}, {"name": "Concurrency and Multithreading", "parent": "Resources", "entries": []}, {"name": "Templating", "parent": "Resources", "entries": [{"name": "lustache", "url": "http://olivinelabs.com/lustache/", "description": "Mustache template implementation."}, {"name": "etlua", "url": "https://github.com/leafo/etlua", "description": "Embedded Lua templates, ERB-style.", "stars": "187"}, {"name": "lua-resty-template", "url": "https://github.com/bungle/lua-resty-template", "description": "Lua-oriented template engine for OpenResty, somewhat Jinja-like.", "stars": "852"}]}, {"name": "Documentation", "parent": "Resources", "entries": [{"name": "LDoc", "url": "http://stevedonovan.github.io/ldoc/", "description": "Documentation generator which modernizes and extends [LuaDoc](http://keplerproject.github.io/luadoc/)."}, {"name": "Locco", "url": "http://rgieseke.github.io/locco/", "description": "Lua port of [Docco](http://ashkenas.com/docco/), the \"quick-and-dirty, hundred-line-long, literate-programming-style documentation generator\"."}, {"name": "docroc", "url": "https://github.com/bjornbytes/docroc", "description": "Parse comments into a Lua table to generate documentation.", "stars": "11"}]}, {"name": "Object-oriented Programming", "parent": "Resources", "entries": [{"name": "30log", "url": "https://github.com/Yonaba/30log", "description": "Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines.", "stars": "381"}, {"name": "middleclass", "url": "https://github.com/kikito/middleclass", "description": "Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins.", "stars": "1.5k"}]}, {"name": "File system and OS", "parent": "Resources", "entries": [{"name": "LuaFileSystem", "url": "http://keplerproject.github.io/luafilesystem/", "description": "Extends and complements Lua's built-in set of file system functions."}, {"name": "luaposix", "url": "https://github.com/luaposix/luaposix", "description": "Bindings for POSIX APIs, including curses.", "stars": "441"}, {"name": "lunix", "url": "http://25thandclement.com/\\~william/projects/lunix.html", "description": "Bindings to common Unix system APIs, striving for thread-safety."}, {"name": "lua-path", "url": "https://github.com/moteus/lua-path", "description": "File system path manipulation library.", "stars": "58"}]}, {"name": "Time and Date", "parent": "Resources", "entries": [{"name": "LuaDate", "url": "https://github.com/Tieske/date", "description": "Date and time module with parsing, formatting, addition/subtraction, localization, and ISO 8601 support.", "stars": "225"}, {"name": "cron.lua", "url": "https://github.com/kikito/cron.lua", "description": "Time-related functions for Lua, inspired by JavaScript's setTimeout and setInterval.", "stars": "149"}, {"name": "luatx", "url": "https://github.com/daurnimator/luatz", "description": "Time, date, and timezone library.", "stars": "106"}]}, {"name": "Image Manipulation", "parent": "Resources", "entries": [{"name": "magick", "url": "https://github.com/leafo/magick", "description": "Lua bindings to ImageMagick for LuaJIT using FFI.", "stars": "362"}]}, {"name": "Digital Signal Processing", "parent": "Resources", "entries": [{"name": "LuaFFT", "url": "https://github.com/h4rm/luafft", "description": "An easy to use Fast Fourier Transformation package in pure Lua.", "stars": "37"}, {"name": "Worp", "url": "http://worp.zevv.nl/about.html", "description": "Sound/music/DSP engine written for LuaJIT."}]}, {"name": "Hardware and Embedded Systems", "parent": "Resources", "entries": [{"name": "eLua", "url": "http://www.eluaproject.net/", "description": "Lua, extended with optimizations and specific features for efficient and portable embedded software development."}]}, {"name": "Math and Scientific Computing", "parent": "Resources", "entries": [{"name": "SciLua", "url": "http://scilua.org/", "description": "Numerical/scientific computing framework built on LuaJIT, with an interface to R."}, {"name": "Torch7", "url": "http://torch.ch/", "description": "Scientific computing framework with wide support for machine learning algorithms, used by Facebook, Google, and more."}, {"name": "lhf's Lua Tools", "url": "http://webserver2.tecgraf.puc-rio.br/\\~lhf/ftp/lua/", "description": "Assorted libraries and tools, many math- or data-related."}]}, {"name": "Parsing and Serialization", "parent": "Resources", "entries": [{"name": "lyaml", "url": "https://github.com/gvvaughan/lyaml", "description": "YAML encoding/decoding via binding to LibYAML.", "stars": "163"}, {"name": "lunamark", "url": "https://github.com/jgm/lunamark", "description": "Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing.", "stars": "166"}, {"name": "LXSH", "url": "https://github.com/xolox/lua-lxsh", "description": "A collection of lexers and syntax highlighters written with LPeg.", "stars": "71"}, {"name": "lua-pb", "url": "https://github.com/Neopallium/lua-pb", "description": "Protocol Buffers implementation.", "stars": "278"}]}, {"name": "Humanize", "parent": "Resources", "entries": [{"name": "i18n.lua", "url": "https://github.com/kikito/i18n.lua", "description": "Internationalization library with locales, formatting, and pluralization.", "stars": "218"}, {"name": "inspect.lua", "url": "https://github.com/kikito/inspect.lua", "description": "Human-readable representation of Lua tables.", "stars": "1.1k"}, {"name": "serpent", "url": "https://github.com/pkulchenko/serpent", "description": "Serializer and pretty printer.", "stars": "464"}, {"name": "Ser", "url": "https://github.com/gvx/Ser", "description": "Dead simple serializer with good performance.", "stars": "72"}, {"name": "say", "url": "https://github.com/Olivine-Labs/say", "description": "Simple string key-value store for i18n.", "stars": "29"}]}, {"name": "Compression", "parent": "Resources", "entries": [{"name": "lua-zlib", "url": "https://github.com/brimworks/lua-zlib", "description": "Simple streaming interface to zlib for gzip/gunzip.", "stars": "246"}, {"name": "lua-zip", "url": "https://github.com/brimworks/lua-zip", "description": "Lua binding to libzip. Reads and writes zip files.", "stars": "69"}]}, {"name": "Cryptography", "parent": "Resources", "entries": [{"name": "LuaCrypto", "url": "https://github.com/mkottman/luacrypto", "description": "Lua bindings to OpenSSL.", "stars": "86"}, {"name": "lua-lockbox", "url": "https://github.com/somesocks/lua-lockbox", "description": "A collection of cryptographic primitives written in pure Lua.", "stars": "325"}, {"name": "luatweetnacl", "url": "https://github.com/philanc/luatweetnacl", "description": "Bindings to tweetnacl, modern high-security cryptographic library.", "stars": "13"}, {"name": "luaossl", "url": "https://github.com/wahern/luaossl", "description": "\"Most comprehensive OpenSSL module in the Lua universe\" - used by lapis, kong, and lua-http.", "stars": "123"}]}, {"name": "Network", "parent": "Resources", "entries": [{"name": "LuaSocket", "url": "https://github.com/diegonehab/luasocket", "description": "Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP.", "stars": "1.5k"}, {"name": "lua-websockets", "url": "https://github.com/lipp/lua-websockets", "description": "WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.", "stars": "365"}, {"name": "lua-cURLv3", "url": "https://github.com/Lua-cURL/Lua-cURLv3", "description": "Lua binding to libcurl.", "stars": "243"}, {"name": "lua-http", "url": "https://github.com/daurnimator/lua-http", "description": "Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues.", "stars": "669"}]}, {"name": "Data Stores", "parent": "Resources", "entries": [{"name": "LuaSQL", "url": "http://keplerproject.github.io/luasql/", "description": "Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL."}, {"name": "pgmoon", "url": "https://github.com/leafo/pgmoon", "description": "Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.", "stars": "322"}, {"name": "lua-resty-mysql", "url": "https://github.com/openresty/lua-resty-mysql", "description": "Lua MySQL driver for OpenResty.", "stars": "666"}, {"name": "lua-resty-cassandra", "url": "https://github.com/jbochi/lua-resty-cassandra", "description": "Lua Cassandra client driver for OpenResty and others.", "stars": "67"}]}, {"name": "Message Brokers", "parent": "Resources", "entries": [{"name": "lua-zmq", "url": "https://github.com/Neopallium/lua-zmq", "description": "Lua bindings to ZeroMQ.", "stars": "149"}, {"name": "lzmq", "url": "https://github.com/zeromq/lzmq", "description": "A newer Lua binding to ZeroMQ.", "stars": "128"}, {"name": "lua-resty-kafka", "url": "https://github.com/doujiang24/lua-resty-kafka", "description": "Kafka client driver based on OpenResty cosockets.", "stars": "738"}, {"name": "lua-resty-rabbitmqstomp", "url": "https://github.com/wingify/lua-resty-rabbitmqstomp", "description": "RabbitMQ client library based on OpenResty cosockets.", "stars": "186"}]}, {"name": "Testing", "parent": "Resources", "entries": [{"name": "busted", "url": "http://olivinelabs.com/busted/", "description": "BDD-style unit testing framework with great docs and Moonscript support."}, {"name": "telescope", "url": "https://github.com/norman/telescope", "description": "Flexible and highly customizable testing library.", "stars": "153"}, {"name": "luassert", "url": "https://github.com/Olivine-Labs/luassert", "description": "Assertion library extending Lua's built-in assertions.", "stars": "137"}, {"name": "lust", "url": "https://github.com/bjornbytes/lust", "description": "Minimal test framework.", "stars": "78"}]}, {"name": "Foreign Function Interfaces", "parent": "Resources", "entries": [{"name": "LuaJIT FFI", "url": "http://luajit.org/ext_ffi.html", "description": "LuaJIT's mechanism for calling external C functions and using C data structures from pure Lua code."}, {"name": "luaffi", "url": "https://github.com/jmckaskill/luaffi", "description": "Standalone FFI library, compatible with the LuaJIT FFI interface.", "stars": "441"}]}, {"name": "Analysis Tools and ASTs", "parent": "Resources", "entries": [{"name": "luadec51", "url": "https://github.com/sztupy/luadec51", "description": "Lua Decompiler for Lua version 5.1.", "stars": "288"}, {"name": "luacov", "url": "http://keplerproject.github.io/luacov/", "description": "Simple coverage analyzer, used by busted and telescope for checking test coverage."}, {"name": "luacheck", "url": "https://github.com/mpeterv/luacheck", "description": "Simple static analyzer which detects accidental globals and undefined or shadowed locals.", "stars": "1.7k"}, {"name": "Metalua", "url": "https://github.com/fab13n/metalua", "description": "Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way.", "stars": "324"}, {"name": "LuaInspect", "url": "https://github.com/davidm/lua-inspect", "description": "Lua's most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others.", "stars": "160"}, {"name": "LuaMinify", "url": "https://github.com/stravant/LuaMinify", "description": "Minifier which also brings its own static analysis tools, lexer, and parser.", "stars": "231"}, {"name": "Typed Lua", "url": "https://github.com/andremm/typedlua", "description": "A typed superset of Lua that compiles to plain Lua.", "stars": "528"}, {"name": "lua-parser", "url": "https://github.com/andremm/lua-parser", "description": "A Lua 5.3 parser written using LPegLabel, with improved error messages.", "stars": "163"}]}, {"name": "Experimental, etc", "parent": "Resources", "entries": [{"name": "punchdrunk.js", "url": "https://github.com/TannerRogalsky/punchdrunk", "description": "Moonshine + L\u00d6VE API reimplementation = run L\u00d6VE games in the browser.", "stars": "79"}, {"name": "luvit", "url": "https://github.com/luvit/luvit", "description": "Node.js's underlying architecture (libUV) with Lua on top instead of JavaScript.", "stars": "3.6k"}, {"name": "graphql-lua", "url": "https://github.com/bjornbytes/graphql-lua", "description": "Lua implementation of [GraphQL](http://graphql.org/).", "stars": "171"}]}, {"name": "Scriptable by Lua", "parent": "Resources", "entries": [{"name": "luakit", "url": "https://luakit.github.io/luakit/", "description": "Fast, small, webkit based browser framework extensible by Lua."}, {"name": "Hammerspoon", "url": "http://www.hammerspoon.org", "description": "A powerful, extensible OS X automation tool. A community-maintained fork of [Mjolnir](http://www.mjolnir.io/)."}, {"name": "kpie", "url": "https://github.com/skx/kpie", "description": "A scripting utility to juggle windows.", "stars": "76"}, {"name": "lumail", "url": "https://lumail.org/", "description": "A console-based mail client, with extensive scripting capabilities."}, {"name": "AwesomeWM", "url": "https://awesomewm.org/", "description": "A highly configurable and extensible window manager for X, scripted and configured by Lua."}, {"name": "Textadept", "url": "https://foicica.com/textadept/", "description": "Extremely lightweight, customizable, cross-platform editor, written (mostly) in (and scripted by) Lua."}, {"name": "KoReader", "url": "https://github.com/koreader/koreader", "description": "An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices.", "stars": "12k"}]}, {"name": "Miscellaneous", "parent": "Resources", "entries": [{"name": "MoonScript", "url": "http://moonscript.org/", "description": "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'."}, {"name": "sitegen", "url": "http://leafo.net/sitegen/", "description": "A static site generator which uses MoonScript and supports HTML and Markdown, page grouping, and plugins."}]}, {"name": "Community", "parent": "Resources", "entries": [{"name": "lua-l", "url": "http://www.lua.org/lua-l.html", "description": "The official Lua mailing list, and one of the focal points of the Lua community."}, {"name": "Lua.Space", "url": "http://lua.space/", "description": "The Lua community blog."}, {"name": "Lua Users Foundation", "url": "https://github.com/lua-users-foundation", "description": "An association of individuals with the mission of supporting and promoting Lua and its community and ecosystems."}, {"name": "lua-users.org", "url": "http://lua-users.org/", "description": "A site for and by users of Lua, featuring an IRC channel, a web archive of lua-l, and a large wiki."}]}, {"name": "References", "parent": "Resources", "entries": [{"name": "Reference Manual", "url": "http://www.lua.org/manual/5.3/", "description": "The official definition of the Lua language."}, {"name": "lua-users wiki", "url": "http://lua-users.org/wiki/", "description": "A large community-maintained collection of Lua information and resources, supplementing the official website."}, {"name": "Lua Unofficial FAQ", "url": "http://www.luafaq.org/", "description": "Answers all sorts of Lua-related questions, including many of the form 'How to \\_\\_\\_?'."}]}, {"name": "Glossaries", "parent": "Resources", "entries": [{"name": "Lua 5.3 Glossary", "url": "https://rawgit.com/dlaurie/lua-notes/master/glossary.html", "description": "A glossary of some essential Lua terms."}]}, {"name": "Style Guides", "parent": "Resources", "entries": [{"name": "Lua-users style guide", "url": "http://lua-users.org/wiki/LuaStyleGuide", "description": "A general, high-level style guide; unopinionated, easily agreed on."}, {"name": "Olivine style guide", "url": "https://github.com/Olivine-Labs/lua-style-guide", "description": "A more opinionated and specific, and therefore more rigorous, guide.", "stars": "445"}]}, {"name": "Tutorials", "parent": "Resources", "entries": [{"name": "Lua Crash Course", "url": "http://www.coppeliarobotics.com/helpFiles/en/luaCrashCourse.htm", "description": "Short crash course readover, or reference for when you forget the basics."}, {"name": "Learn Lua in 15 Minutes", "url": "http://tylerneylon.com/a/learn-lua/", "description": "A well-commented example file which covers the basics."}, {"name": "Learning Lua from JS", "url": "http://phrogz.net/lua/LearningLua_FromJS.html", "description": "An overview of the similarities and differences between Lua and JS; a great start for JavaScript folks looking to pick up Lua."}, {"name": "lua-users tutorial", "url": "http://lua-users.org/wiki/LuaTutorial", "description": "In-depth collection of tutorials aimed at newcomers."}, {"name": "Lua Missions", "url": "https://github.com/kikito/lua_missions", "description": "A series of 'Missions' to work through which are designed to teach aspects of Lua along the way.", "stars": "318"}, {"name": "Creating an Image Server", "url": "http://leafo.net/posts/creating_an_image_server.html", "description": "Walks through setting up and using OpenResty to build a simple image processing server; a great starting point for playing with OpenResty."}]}, {"name": "Articles", "parent": "Resources", "entries": [{"name": "Embedding Lua in C", "url": "https://debian-administration.org/article/264/Embedding_a_scripting_language_inside_your_C/C_code", "description": "An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough."}, {"name": "Lua: Good, bad, and ugly parts", "url": "http://notebook.kulchenko.com/programming/lua-good-different-bad-and-ugly-parts", "description": "A thorough summary of the good, different, bad, and ugly aspects of Lua, including many subtle quirks, by the author of ZeroBraneStudio."}, {"name": "Lua states, libraries, coroutines and memory", "url": "http://www.thijsschreijer.nl/blog/?p=693", "description": "Diagrams and explains some more advanced concepts of the Lua VM, particularly when interfacing with C."}]}, {"name": "Talks & Slides", "parent": "Resources", "entries": [{"name": "Roberto's Talks", "url": "http://www.inf.puc-rio.br/\\~roberto/talks/index.html", "description": "History of talks given by Lua's chief architect, with slides for each."}, {"name": "Lua Workshop Talks", "url": "http://www.lua.org/wshop14.html#abstracts", "description": "High-quality talks are given at each \\~annual Lua Workshop, and a history of them is online, slides included."}]}, {"name": "Books", "parent": "Resources", "entries": [{"name": "Programming in Lua", "url": "http://www.lua.org/pil/", "description": "The authoritative intro to all aspects of Lua programming, written by Lua's chief architect. Three editions released; first edition available online."}, {"name": "Lua Quick Reference", "url": "https://foicica.com/lua/", "description": "A quick reference on how to program in and embed Lua 5.1 through 5.3, by the creator of Textadept."}, {"name": "Programming Gems", "url": "http://www.lua.org/gems/", "description": "A collection of articles covering existing wisdom and practices on programming well in Lua, in a broad variety of use cases."}, {"name": "Lua Programming", "url": "https://en.wikibooks.org/wiki/Lua_Programming", "description": "A shorter overview of the language, up to date for Lua 5.2, and available online."}]}, {"name": "Other Lists", "parent": "Resources", "entries": [{"name": "awesome-resty", "url": "https://github.com/bungle/awesome-resty", "description": "A list like this one, but focused on OpenResty.", "stars": "2.2k"}, {"name": "awesome-love2d", "url": "https://github.com/love2d-community/awesome-love2d", "description": "A list like this one, but focused on game dev and the L\u00d6VE platform.", "stars": "2.5k"}, {"name": "Where Lua is Used", "url": "https://sites.google.com/site/marbux/home/where-lua-is-used", "description": "A comprehensive list of stand-alone programs written in or extensible using Lua."}]}], "name": ""}