620 lines
28 KiB
HTML
620 lines
28 KiB
HTML
<h1 id="awesome-lua">Awesome Lua</h1>
|
||
<p>A curated list of awesome Lua frameworks, libraries and software.
|
||
Inspired by <a
|
||
href="https://github.com/vinta/awesome-python">awesome-python</a>.</p>
|
||
<ul>
|
||
<li><a href="#awesome-Lua">Awesome Lua</a>
|
||
<ul>
|
||
<li><a href="#environment-management">Environment Management</a></li>
|
||
<li><a href="#package-management">Package Management</a></li>
|
||
<li><a href="#distribution">Distribution</a></li>
|
||
<li><a href="#build-tools">Build Tools</a></li>
|
||
<li><a href="#intferactive-interpreter">Interactive Interpreter</a></li>
|
||
<li><a href="#filesystem">Filesystem</a></li>
|
||
<li><a href="#date-and-time">Date and Time</a></li>
|
||
<li><a href="#lua-implementations">Lua Implementations</a></li>
|
||
<li><a href="#text-processing">Text Processing</a></li>
|
||
<li><a href="#natural-language-processing">Natural Language
|
||
Processing</a></li>
|
||
<li><a href="#documentation">Documentation</a></li>
|
||
<li><a href="#configuration">Configuration</a></li>
|
||
<li><a href="#command-line-tools">Command-line Tools</a></li>
|
||
<li><a href="#downloader">Downloader</a></li>
|
||
<li><a href="#imagery">Imagery</a></li>
|
||
<li><a href="#audio">Audio</a></li>
|
||
<li><a href="#video">Video</a></li>
|
||
<li><a href="#geolocation">Geolocation</a></li>
|
||
<li><a href="#http">HTTP</a></li>
|
||
<li><a href="#database">Database</a></li>
|
||
<li><a href="#database-drivers">Database Drivers</a></li>
|
||
<li><a href="#orm">ORM</a></li>
|
||
<li><a href="#web-frameworks">Web Frameworks</a></li>
|
||
<li><a href="#permissions">Permissions</a></li>
|
||
<li><a href="#cms">CMS</a></li>
|
||
<li><a href="#restful-api">RESTful API</a></li>
|
||
<li><a href="#authentication-and-oauth">Authentication and
|
||
OAuth</a></li>
|
||
<li><a href="#template-engine">Template Engine</a></li>
|
||
<li><a href="#queue">Queue</a></li>
|
||
<li><a href="#search">Search</a></li>
|
||
<li><a href="#news-feed">News Feed</a></li>
|
||
<li><a href="#asset-management">Asset Management</a></li>
|
||
<li><a href="#caching">Caching</a></li>
|
||
<li><a href="#email">Email</a></li>
|
||
<li><a href="#internationalization">Internationalization</a></li>
|
||
<li><a href="#url-manipulation">URL Manipulation</a></li>
|
||
<li><a href="#html-manipulation">HTML Manipulation</a></li>
|
||
<li><a href="#web-crawling">Web Crawling</a></li>
|
||
<li><a href="#web-content-extracting">Web Content Extracting</a></li>
|
||
<li><a href="#forms">Forms</a></li>
|
||
<li><a href="#data-validation">Data Validation</a></li>
|
||
<li><a href="#anti-spam">Anti-spam</a></li>
|
||
<li><a href="#tagging">Tagging</a></li>
|
||
<li><a href="#admin-panels">Admin Panels</a></li>
|
||
<li><a href="#static-site-generator">Static Site Generator</a></li>
|
||
<li><a href="#processes-and-threads">Processes and Threads</a></li>
|
||
<li><a href="#networking">Networking</a></li>
|
||
<li><a href="#websocket">WebSocket</a></li>
|
||
<li><a href="#wsgi-servers">WSGI Servers</a></li>
|
||
<li><a href="#rpc-servers">RPC Servers</a></li>
|
||
<li><a href="#cryptography">Cryptography</a></li>
|
||
<li><a href="#gui">GUI</a></li>
|
||
<li><a href="#game-development">Game Development</a></li>
|
||
<li><a href="#logging">Logging</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
<li><a href="#code-analysis-and-linter">Code Analysis and
|
||
Linter</a></li>
|
||
<li><a href="#debugging-tools">Debugging Tools</a></li>
|
||
<li><a href="#science-and-data-analysis">Science and Data
|
||
Analysis</a></li>
|
||
<li><a href="#data-visualization">Data Visualization</a></li>
|
||
<li><a href="#computer-vision">Computer Vision</a></li>
|
||
<li><a href="#machine-learning">Machine Learning</a></li>
|
||
<li><a href="#functional-programming">Functional Programming</a></li>
|
||
<li><a href="#mapreduce">MapReduce</a></li>
|
||
<li><a href="#third-party-apis">Third-party APIs</a></li>
|
||
<li><a href="#devops-tools">DevOps Tools</a></li>
|
||
<li><a href="#job-scheduler">Job Scheduler</a></li>
|
||
<li><a href="#foreign-function-interface">Foreign Function
|
||
Interface</a></li>
|
||
<li><a href="#high-performance">High Performance</a></li>
|
||
<li><a href="#algorithms-and-design-patterns">Algorithms and Design
|
||
Patterns</a></li>
|
||
<li><a href="#hardware">Hardware</a></li>
|
||
<li><a href="#miscellaneous">Miscellaneous</a></li>
|
||
<li><a href="#editor-plugins">Editor Plugins</a></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a>
|
||
<ul>
|
||
<li><a href="#websites">Websites</a></li>
|
||
<li><a href="#weekly">Weekly</a></li>
|
||
<li><a href="#twitter">Twitter</a></li>
|
||
</ul></li>
|
||
<li><a href="#other-awesome-lists">Other Awesome Lists</a></li>
|
||
<li><a href="#contributing">Contributing</a></li>
|
||
</ul>
|
||
<h2 id="environment-management">Environment Management</h2>
|
||
<p><em>Libraries for Lua version and environment management.</em></p>
|
||
<h2 id="package-management">Package Management</h2>
|
||
<p><em>Libraries for package and dependency management.</em></p>
|
||
<ul>
|
||
<li><a href="http://luadist.org/">LuaDist</a> - LuaDist is a true
|
||
multi-platform package management system that aims to provide both
|
||
source and binary repository of modules for the Lua programming
|
||
language.</li>
|
||
<li><a href="http://luaforge.net/projects/">Luaforge</a> - LuaForge was
|
||
a software project hosring website set up in 2004 by André Carregal and
|
||
the Kepler Project, to promote development of Lua software modules.</li>
|
||
<li><a href="http://www.luarocks.org/">LuaRocks</a> - LuaRocks is a
|
||
system that allows the versioning of Lua packages and their
|
||
dependencies. LuaRocks guarantees that every package installed will
|
||
continue to work, even if its dependencies are updated.</li>
|
||
</ul>
|
||
<h2 id="distribution">Distribution</h2>
|
||
<p><em>Libraries to create packaged executables for release
|
||
distribution.</em></p>
|
||
<ul>
|
||
<li><a href="http://luabinaries.sourceforge.net/">LuaBinaries</a> -
|
||
LuaBinaries is a distribution of the Lua libraries and executables
|
||
compiled for several platforms.</li>
|
||
</ul>
|
||
<h2 id="build-tools-ide">Build Tools & IDE</h2>
|
||
<p><em>Compile software from source code.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/unknownworlds/decoda">Decoda</a> -
|
||
Decoda Lua IDE and debugger.</li>
|
||
<li><a href="https://github.com/stevedonovan/Lake">Lake</a> - A
|
||
Lua-based Build Tool</li>
|
||
<li><a href="https://github.com/pkulchenko/ZeroBraneStudio">ZeroBrane
|
||
Studio</a> - A lightweight Lua-based IDE for Lua with code completion,
|
||
syntax highlighting, live coding, remote debugger, and code
|
||
analyzer.</li>
|
||
</ul>
|
||
<h2 id="interactive-interpreter">Interactive Interpreter</h2>
|
||
<p><em>Interactive Lua interpreters.</em></p>
|
||
<h2 id="filesystem">Filesystem</h2>
|
||
<p><em>Libraries for accessing the directory structure and file
|
||
attributes.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="http://keplerproject.github.io/luafilesystem/">LuaFileSystem</a> -
|
||
LuaFileSystem is a Lua library developed to complement the set of
|
||
functions related to file systems offered by the standard Lua
|
||
distribution.</li>
|
||
<li><a href="http://www.keplerproject.org/en/LAR">LAR</a> - LAR stands
|
||
for Lua ARchive, and consist of a module and a file format that empowers
|
||
a lua script to load lua modules from within a packaged, compressed
|
||
file.</li>
|
||
<li><a href="http://keplerproject.org/luazip/">LuaZip</a> - LuaZip is a
|
||
lightweight Lua extension library used to read files stored inside zip
|
||
files. The API is very similar to the standard Lua I/O library API.</li>
|
||
<li><a href="http://matthewwild.co.uk/projects/luaexpat/">LuaExpat</a> -
|
||
LuaExpat is a SAX XML parser based on the Expat library.</li>
|
||
<li><a href="https://github.com/moteus/lua-path">lua-path</a> - File
|
||
system path manipulation library.</li>
|
||
</ul>
|
||
<h2 id="date-and-time">Date and Time</h2>
|
||
<p><em>Libraries for working with dates and times.</em></p>
|
||
<ul>
|
||
<li><a href="http://tieske.github.io/date">LuaDate</a> - Date & Time
|
||
module for Lua 5.1/5.2</li>
|
||
</ul>
|
||
<h2 id="lua-implementations">Lua Implementations</h2>
|
||
<p><em>All kinds of lua implementations</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/xebecnan/UniLua">UniLua</a> - A pure c#
|
||
implementation of Lua 5.2 focus on compatibility with Unity</li>
|
||
<li><a href="https://github.com/rvirding/luerl">Luerl</a> - An
|
||
experimental implementation of Lua 5.2 written solely in pure
|
||
Erlang.</li>
|
||
<li><a href="http://moonscript.org/">MoonScript</a> - MoonScript is a
|
||
dynamic scripting language that compiles into Lua.</li>
|
||
<li><a href="https://github.com/mherkender/lua.js">lua.js</a> - An
|
||
ECMAscript framework to compile and run Lua code, allowing Lua to run in
|
||
a browser or in Flash.</li>
|
||
<li><a href="https://github.com/kripken/lua.vm.js">lua.vm.js</a> - The
|
||
Lua VM, on the Web.</li>
|
||
<li><a href="http://moonshinejs.org/">Moonshine</a> - A lightweight Lua
|
||
VM for the browser.</li>
|
||
<li><a href="https://github.com/lua-alchemy/lua-alchemy">lua-alchemy</a>
|
||
- Port of the Lua programming language for ActionScript using
|
||
Alchemy.</li>
|
||
<li><a href="https://neolua.codeplex.com/">NeoLua</a> - A Lua
|
||
implementation for the Dynamic Language Runtime (DLR).NeoLua is
|
||
implemented in C# and uses the Dynamic Language Runtime. It therefore
|
||
integrates very well with the .net framework.</li>
|
||
</ul>
|
||
<h2 id="text-processing">Text Processing</h2>
|
||
<p><em>Libraries for parsing and manipulating texts.</em></p>
|
||
<ul>
|
||
<li><a href="http://luaforge.net/projects/markdown/">Markdown</a> - A
|
||
pure-lua implementation of the Markdown text-to-html markup system.</li>
|
||
<li></li>
|
||
</ul>
|
||
<h2 id="natural-language-processing">Natural Language Processing</h2>
|
||
<p><em>Libraries for working with human languages.</em></p>
|
||
<h2 id="documentation">Documentation</h2>
|
||
<p><em>Libraries for generating project documentation.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.github.io/luadoc/">LuaDoc</a> - LuaDoc
|
||
is a documentation generator tool for Lua source code.</li>
|
||
</ul>
|
||
<h2 id="configuration">Configuration</h2>
|
||
<p><em>Libraries for storing configuration options.</em></p>
|
||
<h2 id="command-line-tools">Command-line Tools</h2>
|
||
<p><em>Libraries for building command-line application.</em></p>
|
||
<h2 id="downloader">Downloader</h2>
|
||
<p><em>Libraries for downloading.</em></p>
|
||
<h2 id="imagery">Imagery</h2>
|
||
<p><em>Libraries for manipulating images.</em></p>
|
||
<h2 id="audio">Audio</h2>
|
||
<p><em>Libraries for manipulating audio.</em></p>
|
||
<h2 id="video">Video</h2>
|
||
<p><em>Libraries for manipulating video and GIFs.</em></p>
|
||
<h2 id="geolocation">Geolocation</h2>
|
||
<p><em>Libraries for geocoding addresses and working with latitudes and
|
||
longitudes.</em></p>
|
||
<h2 id="http">HTTP</h2>
|
||
<p><em>Libraries for working with HTTP.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.github.io/xavante/">Xavante</a> -
|
||
Xavante is a Lua HTTP 1.1 Web server that uses a modular architecture
|
||
based on URI mapped handlers.</li>
|
||
</ul>
|
||
<h2 id="database">Database</h2>
|
||
<p><em>Databases implemented in Lua.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/tarantool/tarantool">Tarantool</a> -
|
||
Tarantool is an efficient NoSQL database and a Lua application
|
||
server.</li>
|
||
</ul>
|
||
<h2 id="database-drivers">Database Drivers</h2>
|
||
<p><em>Libraries for connecting and operating databases.</em></p>
|
||
<ul>
|
||
<li>Relational Databases
|
||
<ul>
|
||
<li><a href="https://code.google.com/p/luadbi">LuaDBI</a> - LuaDBI is a
|
||
database interface library for Lua. It is designed to provide a RDBMS
|
||
agnostic API for handling database operations.</li>
|
||
<li><a href="http://www.keplerproject.org/lualdap/">LuaLDAP</a> -
|
||
LuaLDAP is a simple interface from Lua to an LDAP client, in fact it is
|
||
a bind to OpenLDAP or to ADSI.</li>
|
||
<li><a href="http://www.keplerproject.org/luasql/">LuaODBC</a> - ODBC
|
||
Library for Lua. Also provide LuaSQL compatible module.</li>
|
||
<li><a href="http://www.keplerproject.org/luasql/">LuaSQL</a> - LuaSQL
|
||
is a simple interface from Lua to a DBMS.</li>
|
||
<li><a href="http://lua.sqlite.org/">LuaSQLite3</a> - a Lua 5.1 and Lua
|
||
5.2 wrapper for the SQLite3 library.</li>
|
||
<li><a href="http://luaforge.net/projects/lsqlite/">Lsqlite</a> - A
|
||
simple libsqlite3 binding for lua5.0-5.2 that provides 3 functions only
|
||
and is still fully functional: local db = lsqlite.open(database)
|
||
results, err = db:exec(statments) db:close()</li>
|
||
</ul></li>
|
||
<li>NoSQL Databases</li>
|
||
</ul>
|
||
<h2 id="orm">ORM</h2>
|
||
<p><em>Libraries that implement Object-Relational Mapping or datamapping
|
||
techniques.</em></p>
|
||
<ul>
|
||
<li><p>Relational Databases</p></li>
|
||
<li><p>NoSQL Databases</p></li>
|
||
</ul>
|
||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||
<p><em>Full stack web frameworks.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.github.io/cgilua/">CGIlua</a> - CGILua
|
||
is a tool for creating dynamic Web pages and manipulating input data
|
||
from Web forms.</li>
|
||
<li><a href="http://www.keplerproject.org/">Kepler Project</a> - Kepler
|
||
is a community of software developers building open software to help
|
||
make Lua a viable option for development of web applications.</li>
|
||
<li><a href="http://keplerproject.github.io/orbit/">Orbit</a> - Orbit is
|
||
an MVC web framework for Lua.</li>
|
||
<li><a href="http://keplerproject.github.io/wsapi/">WSAPI</a> - WSAPI is
|
||
an API that abstracts the web server from Lua web applications.</li>
|
||
<li><a href="https://github.com/zedshaw/Tir">Tir</a> - Tir is an
|
||
experimental web framework for the Mongrel2 webserver and Lua
|
||
programming language.</li>
|
||
<li><a href="https://github.com/leafo/lapis">Lapis</a> - A web framework
|
||
for Lua and OpenResty written in MoonScript.</li>
|
||
<li><a href="https://github.com/oneoo/alilua">aLiLua</a> - A
|
||
epoll/kqueue based web server, inculded lua/coevent support (support
|
||
Linux/MacOS/BSD platform).</li>
|
||
<li><a href="https://github.com/daogangtang/bamboo">Bamboo</a> - Bamboo
|
||
is the web framework of Lua based on Mongrel2, ZeroMQ and NoSQL
|
||
database.</li>
|
||
<li><a href="https://github.com/appwilldev/moochine">MOOCHINE</a> - A
|
||
(very) simple and lightweight web framework based on ngx-openresty.</li>
|
||
</ul>
|
||
<h2 id="permissions">Permissions</h2>
|
||
<p><em>Libraries that allow or deny users access to data or
|
||
functionality.</em></p>
|
||
<h2 id="cms">CMS</h2>
|
||
<p><em>Content management systems</em></p>
|
||
<ul>
|
||
<li><a href="http://sputnik.freewisdom.org/">Sputnik</a> - Sputnik is a
|
||
software application that powers a dynamic website.</li>
|
||
</ul>
|
||
<h2 id="restful-api">RESTful API</h2>
|
||
<p><em>Libraries for developing RESTful APIs.</em></p>
|
||
<h2 id="authentication-and-oauth">Authentication and OAuth</h2>
|
||
<p><em>Libraries for implementing authentications schemes.</em></p>
|
||
<h2 id="template-engine">Template Engine</h2>
|
||
<p><em>Libraries and tools for templating and lexing.</em></p>
|
||
<h2 id="queue">Queue</h2>
|
||
<p><em>Libraries for working with event and task queues.</em></p>
|
||
<h2 id="search">Search</h2>
|
||
<p><em>Libraries and software for indexing and performing search queries
|
||
on data.</em></p>
|
||
<h2 id="news-feed">News Feed</h2>
|
||
<p><em>Libraries for building user’s activities.</em></p>
|
||
<h2 id="asset-management">Asset Management</h2>
|
||
<p><em>Tools for managing, compressing and minifying website
|
||
assets.</em></p>
|
||
<h2 id="caching">Caching</h2>
|
||
<p><em>Libraries for caching data.</em></p>
|
||
<h2 id="email">Email</h2>
|
||
<p><em>Libraries for sending and parsing email.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/vrld/imap4.lua">lua-imap4</a> - Simple
|
||
IMAP4 protocol wrapper for Lua</li>
|
||
<li><a href="https://github.com/moteus/lua-pop3">lua-pop3</a> - POP3
|
||
client library for Lua</li>
|
||
<li><a href="https://github.com/moteus/lua-sendmail">sendmail</a> -
|
||
Simple wrapper around luasoket smtp.send</li>
|
||
</ul>
|
||
<h2 id="internationalization">Internationalization</h2>
|
||
<p><em>Libraries for woking with i18n.</em></p>
|
||
<h2 id="url-manipulation">URL Manipulation</h2>
|
||
<p><em>Libraries for parsing URLs.</em></p>
|
||
<h2 id="html-manipulation">HTML Manipulation</h2>
|
||
<p><em>Libraries for working with HTML and XML.</em></p>
|
||
<ul>
|
||
<li><a href="http://www.bessems.biz/luatidy/">Luatidy</a> - Lua binding
|
||
for <a href="http://tidy.sourceforge.net/">HTMLtidy</a></li>
|
||
</ul>
|
||
<h2 id="web-crawling">Web Crawling</h2>
|
||
<p><em>Libraries for scraping websites.</em></p>
|
||
<h2 id="web-content-extracting">Web Content Extracting</h2>
|
||
<p><em>Libraries for extracting web contents.</em></p>
|
||
<h2 id="forms">Forms</h2>
|
||
<p><em>Libraries for working with forms.</em></p>
|
||
<h2 id="data-validation">Data Validation</h2>
|
||
<p><em>Libraries for validating data. Used for forms in many
|
||
cases.</em></p>
|
||
<h2 id="anti-spam">Anti-spam</h2>
|
||
<p><em>Libraries for fighting spam.</em></p>
|
||
<h2 id="tagging">Tagging</h2>
|
||
<p><em>Libraries for tagging items.</em></p>
|
||
<h2 id="admin-panels">Admin Panels</h2>
|
||
<p><em>Libraries for administrative interfaces.</em></p>
|
||
<h2 id="static-site-generator">Static Site Generator</h2>
|
||
<p><em>Static site generator is a software that takes some text +
|
||
templates as input and produces html files on the output.</em></p>
|
||
<h2 id="processes-and-threads">Processes and Threads</h2>
|
||
<p><em>Libraries for woking with processes or threads</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/Neopallium/lua-llthreads">lua-llthreads</a> -
|
||
Low-Level threads(pthreads or WIN32 threads) for Lua.</li>
|
||
<li><a
|
||
href="https://github.com/moteus/lua-llthreads2">lua-llthreads2</a> -
|
||
Enhancement version of lua-llthreads rewritten without
|
||
<code>LuaNativeObjects</code> code generator</li>
|
||
<li><a href="https://github.com/LuaLanes/lanes">LuaLanes</a> -
|
||
lightweight, native, lazy evaluating multithreading library for Lua 5.1
|
||
and 5.2</li>
|
||
</ul>
|
||
<h2 id="networking">Networking</h2>
|
||
<p><em>Libraries for network programming.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.github.io/copas/">Copas</a> - Copas is
|
||
a dispatcher based on coroutines that can be used by TCP/IP
|
||
servers.</li>
|
||
<li><a href="https://github.com/Neopallium/lua-zmq">lua-zmq</a> - Lua
|
||
bindings to ZeroMQ 2</li>
|
||
<li><a href="http://mason-larobina.github.io/luakit/">Luakit</a> - Fast,
|
||
small, webkit based browser framework extensible by Lua.</li>
|
||
<li><a href="http://repo.or.cz/w/luaevent.git">LuaEvent</a> - This is a
|
||
binding of libevent to Lua. It will serve as a drop-in replacement for
|
||
copas, and eventually support more features (async DNS, HTTP, RPC…)</li>
|
||
<li><a href="https://github.com/brunoos/luasec">LuaSec</a> - LuaSec is a
|
||
binding for OpenSSL library to provide TLS/SSL communication.</li>
|
||
<li><a href="http://w3.impa.br/~diego/software/luasocket/">LuaSocket</a>
|
||
- LuaSocket is a Lua extension library that is composed by two parts: a
|
||
C core that provides support for the TCP and UDP transport layers, and a
|
||
set of Lua modules that add support for functionality commonly needed by
|
||
applications that deal with the Internet.</li>
|
||
<li><a href="https://github.com/ignacio/LuaNode">LuaNode</a> - LuaNode
|
||
allows to write performant net servers or clients, using an asynchronous
|
||
model of computing (the Reactor pattern). You might have seen this model
|
||
implemented in event processing frameworks like Node.js, EventMachine or
|
||
Twisted. In fact, LuaNode is heavily based on Node.js, because I wanted
|
||
to be able to do what Node.js does, but using Lua instead of
|
||
JavaScript.</li>
|
||
<li><a href="https://github.com/zeromq/lzmq">lzmq</a> - A Lua wrapper
|
||
for the ZeroMQ message library. Supports ZeroMQ version above 3.2.0</li>
|
||
<li><a href="https://github.com/openresty/lua-nginx-module">Ngx_lua</a>
|
||
- Embed the power of Lua into Nginx.</li>
|
||
<li><a href="https://github.com/luvit/luvit">Luvit</a> - Luvit is an
|
||
attempt to do something crazy by taking node.js’ awesome architecture
|
||
and dependencies and seeing how it fits in the Lua language.</li>
|
||
<li><a href="http://turbolua.org/">Turbo</a> - Turbo provides you with
|
||
all the stuff you need to develop fast web apps, web API’s and
|
||
networking applications.</li>
|
||
</ul>
|
||
<h2 id="websocket">WebSocket</h2>
|
||
<p><em>Libraries for woking with WebSocket.</em></p>
|
||
<h2 id="wsgi-servers">WSGI Servers</h2>
|
||
<p><em>WSGI-compatible web servers.</em></p>
|
||
<h2 id="rpc-servers">RPC Servers</h2>
|
||
<p><em>RPC-compatible servers.</em></p>
|
||
<h2 id="cryptography">Cryptography</h2>
|
||
<p><em>Cryptography libraries</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/moteus/lua-AesFileEncrypt">AesFileEncrypt</a> -
|
||
A simple file encryption library</li>
|
||
<li><a href="http://keplerproject.org/md5/">MD5</a> - MD5 offers basic
|
||
cryptographic facilities for Lua 5.1: a hash (digest) function, a pair
|
||
crypt/decrypt based on MD5 and CFB, and a pair crypt/decrypt based on
|
||
DES with 56-bit keys.</li>
|
||
<li><a href="http://luaforge.net/projects/lcrypt/">LCrypt</a> - LCrypt
|
||
provides everything needed to implement a basic ssh client or server
|
||
including symmetric ciphers, hashes, microtime, random strings, big
|
||
integers, and zlib compression. An example RSA implementation is
|
||
included.</li>
|
||
<li><a href="http://luacrypto.luaforge.net/">LuaCrypto</a> - LuaCrypto
|
||
provides a Lua frontend to the OpenSSL cryptographic library.</li>
|
||
</ul>
|
||
<h2 id="gui">GUI</h2>
|
||
<p><em>Libraries for working with graphical user interface
|
||
applications.</em></p>
|
||
<ul>
|
||
<li><a href="http://wxlua.sourceforge.net/">wxLua</a> - wxLua is a Lua
|
||
scripting language wrapper around the wxWidgets cross-platform C++ GUI
|
||
library.</li>
|
||
<li><a href="http://www.tecgraf.puc-rio.br/iup/">IUP</a> - IUP is a
|
||
multi-platform toolkit for building graphical user interfaces.</li>
|
||
<li><a href="https://github.com/mkottman/lqt">Lqt</a> - lqt is a Lua
|
||
binding to the Qt framework. It is an automated binding generated from
|
||
the Qt headers, and covers almost all classes and methods from supported
|
||
Qt modules.</li>
|
||
<li><a href="http://lua-gtk.luaforge.net/en/index.html">LuaGnome</a> -
|
||
LuaGnome provides a fairly complete binding to Gnome Libraries Lua,
|
||
including glib 2.x, gdk, gtk 2.x, and a list of supporting
|
||
libraries.</li>
|
||
</ul>
|
||
<h2 id="game-development">Game Development</h2>
|
||
<p><em>Awesome game development libraries.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cloudwu/skynet">Skynet</a> - A
|
||
lightweight online game framework</li>
|
||
<li><a href="https://github.com/ScutGame/Scut">Scut</a> - Scut is a
|
||
free, open source, stable game server framework, which support
|
||
C#/Python/Lua script, and support Unity3d, Cocos2dx, FlashAir client
|
||
access.</li>
|
||
<li><a href="https://github.com/rxi/lovedos">LoveDOS</a> - A framework
|
||
for making 2D DOS games in Lua. LoveDOS provides an API based on a
|
||
subset of the LÖVE API.</li>
|
||
<li><a href="https://github.com/tylerneylon/pacpac">PacPac</a> - This is
|
||
Pac-Man from a parallel universe.</li>
|
||
<li><a href="https://github.com/leafo/aroma">aroma</a> - Aroma is game
|
||
creation framework/platform that targets Chrome’s Native Client. It lets
|
||
you create games that can be distributed through the Chrome Web
|
||
Store.</li>
|
||
</ul>
|
||
<h2 id="logging">Logging</h2>
|
||
<p><em>Libraries for generating and working with log files.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.org/lualogging/">LuaLogging</a> -
|
||
LuaLogging provides a simple API to use logging features in Lua. Its
|
||
design was based on log4j. LuaLogging currently supports, through the
|
||
use of appenders, console, file, email, socket and sql outputs.</li>
|
||
<li><a href="https://gitorious.org/lsyslog/lsyslog">Lsyslog</a> -
|
||
lsyslog is a Lua module that wraps the syslog(3) C API. It has been
|
||
tested with Lua 5.2 on Linux.</li>
|
||
<li><a href="https://github.com/moteus/lua-log">Lua-log</a> -
|
||
Asynchronous logging library for Lua 5.1/5.2</li>
|
||
</ul>
|
||
<h2 id="testing">Testing</h2>
|
||
<p><em>Libraries for testing codebases and generating test
|
||
data.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/Olivine-Labs/busted">Busted</a> -
|
||
Elegant Lua unit testing.</li>
|
||
</ul>
|
||
<h2 id="code-analysis-and-linter">Code Analysis and Linter</h2>
|
||
<p><em>Libraries and tools for analysing, parsing and manipulation
|
||
codebases.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/philips/lualint">Lualint</a> - lualint
|
||
performs luac-based static analysis of global variable usage in Lua
|
||
source code.</li>
|
||
</ul>
|
||
<h2 id="debugging-tools">Debugging Tools</h2>
|
||
<p><em>Libraries for debugging code.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.org/remdebug/">RemDebug</a> - RemDebug
|
||
is a remote debugger for Lua 5.0 and 5.1. It lets you control the
|
||
execution of another Lua program remotely, setting breakpoints and
|
||
inspecting the current state of the program. RemDebug can also debug
|
||
CGILua scripts.</li>
|
||
<li><a href="http://keplerproject.org/luaprofiler/">LuaProfiler</a> -
|
||
LuaProfiler is a time profiler designed to help finding bottlenecks on
|
||
your Lua program.</li>
|
||
</ul>
|
||
<h2 id="science-and-data-analysis">Science and Data Analysis</h2>
|
||
<p><em>Libraries for scientific computing and data analyzing.</em></p>
|
||
<ul>
|
||
<li><a href="http://www.scilua.org/">SciLua</a> - The aim of this
|
||
project is to offer a framework for numerical computing which combines
|
||
the ease of use of scripting languages (Matlab, R, …) with the high
|
||
performance of compiled languages (C/C++, Fortran, …).</li>
|
||
</ul>
|
||
<h2 id="data-visualization">Data Visualization</h2>
|
||
<p><em>Libraries for visualizing data.</em></p>
|
||
<h2 id="computer-vision">Computer Vision</h2>
|
||
<p><em>Libraries for computer vision.</em></p>
|
||
<h2 id="machine-learning">Machine Learning</h2>
|
||
<p><em>Libraries for Machine Learning.</em></p>
|
||
<h2 id="mapreduce">MapReduce</h2>
|
||
<p><em>Framworks and libraries for MapReduce.</em></p>
|
||
<h2 id="functional-programming">Functional Programming</h2>
|
||
<p><em>Functional programming in lua</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/rtsisyk/luafun">Lua Fun</a> - Lua Fun is
|
||
a high-performance functional programming library designed for LuaJIT
|
||
tracing just-in-time compiler.</li>
|
||
</ul>
|
||
<h2 id="third-party-apis">Third-party APIs</h2>
|
||
<p><em>Libraries for accessing third party services APIs.</em></p>
|
||
<ul>
|
||
<li><a href="http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html">LPeg</a>
|
||
- LPeg is a new pattern-matching library for Lua, based on Parsing
|
||
Expression Grammars (PEGs).</li>
|
||
</ul>
|
||
<h2 id="devops-tools">DevOps Tools</h2>
|
||
<p><em>Software and libraries for DevOps.</em></p>
|
||
<h2 id="job-scheduler">Job Scheduler</h2>
|
||
<p><em>Libraries for scheduling jobs.</em></p>
|
||
<h2 id="foreign-function-interface">Foreign Function Interface</h2>
|
||
<p><em>Libraries for providing foreign function interface.</em></p>
|
||
<ul>
|
||
<li><a href="http://mascarenhas.github.com/alien">Alien</a> - A C FFI
|
||
for Lua</li>
|
||
<li><a href="http://luajit.org/ext_ffi.html">FFI Library</a> - The FFI
|
||
library allows calling external C functions and using C data structures
|
||
from pure Lua code.</li>
|
||
<li><a href="https://github.com/jmckaskill/luaffi">LuaFFI</a> -
|
||
Standalone FFI library for calling C functions from lua. Compatible with
|
||
the LuaJIT FFI interface.</li>
|
||
<li><a href="https://github.com/NLua/NLua">NLua</a> - NLua is the bind
|
||
between Lua world and the .NET world.</li>
|
||
</ul>
|
||
<h2 id="high-performance">High Performance</h2>
|
||
<p><em>Libraries for making Lua faster.</em></p>
|
||
<ul>
|
||
<li><a href="http://luajit.org/luajit.html">LuaJIT</a> - LuaJIT is a
|
||
Just-In-Time Compiler (JIT) for the Lua programming language. Lua is a
|
||
powerful, dynamic and light-weight programming language. It may be
|
||
embedded or used as a general-purpose, stand-alone language.</li>
|
||
<li><a href="http://terralang.org/">Terra</a> - Terra is a new low-level
|
||
system programming language that is designed to interoperate seamlessly
|
||
with the Lua programming language.</li>
|
||
<li><a href="https://code.google.com/p/llvm-lua/">LLVM-Lua</a> -
|
||
JIT/Static compiler for Lua using LLVM on the backend.</li>
|
||
</ul>
|
||
<h2 id="microsoft-windows">Microsoft Windows</h2>
|
||
<p><em>Lua programming on Microsoft Windows.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/moteus/lua-pdh">lua-pdh</a> - Lua
|
||
binding to Microsoft Performance Data Helper (PDH) library.</li>
|
||
</ul>
|
||
<h2 id="hardware">Hardware</h2>
|
||
<p><em>Libraries for programming with hardware.</em></p>
|
||
<h2 id="miscellaneous">Miscellaneous</h2>
|
||
<p><em>Useful libraries or tools that don’t fit in the categories
|
||
above.</em></p>
|
||
<ul>
|
||
<li><a href="http://keplerproject.github.io/coxpcall/">Coxpcall</a> -
|
||
Coxpcall encapsulates the protected calls with a coroutine based loop,
|
||
so errors can be dealed without the usual pcall/xpcall issues with
|
||
coroutines.</li>
|
||
<li><a href="https://github.com/stevedonovan/Penlight">Penlight</a> -
|
||
Penlight brings together a set of generally useful pure Lua modules,
|
||
focussing on input data handling (such as reading configuration files),
|
||
functional programming (such as map, reduce, placeholder
|
||
expressions,etc), and OS path management. Much of the functionality is
|
||
inspired by the Python standard libraries.</li>
|
||
</ul>
|
||
<h2 id="algorithms-and-design-patterns">Algorithms and Design
|
||
Patterns</h2>
|
||
<p><em>Collections of algorithms and design patterns.</em></p>
|
||
<h2 id="editor-plugins">Editor Plugins</h2>
|
||
<p><em>Plugins for various editors.</em></p>
|
||
<ul>
|
||
<li>Vim</li>
|
||
<li>Emacs</li>
|
||
<li>Sublime Text</li>
|
||
</ul>
|
||
<h1 id="resources">Resources</h1>
|
||
<p><em>Where to discover new Lua libraries.</em></p>
|
||
<ul>
|
||
<li><a href="http://math2.org/luasearch/">LuaSearch</a> - Navigate Lua
|
||
Module Documentation</li>
|
||
</ul>
|
||
<h2 id="websites">Websites</h2>
|
||
<h2 id="weekly">Weekly</h2>
|
||
<h2 id="twitter">Twitter</h2>
|
||
<h1 id="other-awesome-lists">Other Awesome Lists</h1>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a></li>
|
||
<li><a href="https://github.com/jnv/lists">lists</a></li>
|
||
</ul>
|
||
<h1 id="contributing">Contributing</h1>
|
||
<p>Your contributions are always welcome!</p>
|
||
<p><a href="https://github.com/LewisJEllis/awesome-lua">lua.md
|
||
Github</a></p>
|