├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | This resource was made by the Go community and wouldn't be possible without you! We appreciate and recognize [all contributors](https://github.com/forhappy/awesome-lua/graphs/contributors). 2 | 3 | # Contribution Guidelines 4 | 5 | - **To add to the list:** Submit a pull request 6 | - **To remove from the list:** Open an issue 7 | 8 | Awesome-lua is a specially curated list for high-quality, actively maintained Lua packages and resources. 9 | 10 | - List items should be sorted *alphabetically*. 11 | - Each item should be limited to one link 12 | - The link should be the name of the package or project 13 | - Descriptions should be clear, concise, and non-promotional 14 | - Descriptions should follow the link, on the same line 15 | 16 | Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. 17 | 18 | 19 | ## Quality standard 20 | 21 | To stay on the list, package repositories should adhere to these quality standards: 22 | 23 | - Generally useful to the community 24 | - Functional 25 | - Actively maintained (even if that just means acknowledging open issues when they arise) 26 | - Stable, or progressing toward stable 27 | - Documented (preferably godoc.org) 28 | - Tests are preferred (when possible) 29 | 30 | 31 | ## Reporting issues 32 | 33 | Please open an issue if you find anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, please let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental -- again, just open an issue. Thanks everyone! 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 傅 海平 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Lua 2 | 3 | A curated list of awesome Lua frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). 4 | 5 | - [Awesome Lua](#awesome-Lua) 6 | - [Environment Management](#environment-management) 7 | - [Package Management](#package-management) 8 | - [Distribution](#distribution) 9 | - [Build Tools](#build-tools) 10 | - [Interactive Interpreter](#intferactive-interpreter) 11 | - [Filesystem](#filesystem) 12 | - [Date and Time](#date-and-time) 13 | - [Lua Implementations](#lua-implementations) 14 | - [Text Processing](#text-processing) 15 | - [Natural Language Processing](#natural-language-processing) 16 | - [Documentation](#documentation) 17 | - [Configuration](#configuration) 18 | - [Command-line Tools](#command-line-tools) 19 | - [Downloader](#downloader) 20 | - [Imagery](#imagery) 21 | - [Audio](#audio) 22 | - [Video](#video) 23 | - [Geolocation](#geolocation) 24 | - [HTTP](#http) 25 | - [Database](#database) 26 | - [Database Drivers](#database-drivers) 27 | - [ORM](#orm) 28 | - [Web Frameworks](#web-frameworks) 29 | - [Permissions](#permissions) 30 | - [CMS](#cms) 31 | - [RESTful API](#restful-api) 32 | - [Authentication and OAuth](#authentication-and-oauth) 33 | - [Template Engine](#template-engine) 34 | - [Queue](#queue) 35 | - [Search](#search) 36 | - [News Feed](#news-feed) 37 | - [Asset Management](#asset-management) 38 | - [Caching](#caching) 39 | - [Email](#email) 40 | - [Internationalization](#internationalization) 41 | - [URL Manipulation](#url-manipulation) 42 | - [HTML Manipulation](#html-manipulation) 43 | - [Web Crawling](#web-crawling) 44 | - [Web Content Extracting](#web-content-extracting) 45 | - [Forms](#forms) 46 | - [Data Validation](#data-validation) 47 | - [Anti-spam](#anti-spam) 48 | - [Tagging](#tagging) 49 | - [Admin Panels](#admin-panels) 50 | - [Static Site Generator](#static-site-generator) 51 | - [Processes and Threads](#processes-and-threads) 52 | - [Networking](#networking) 53 | - [WebSocket](#websocket) 54 | - [WSGI Servers](#wsgi-servers) 55 | - [RPC Servers](#rpc-servers) 56 | - [Cryptography](#cryptography) 57 | - [GUI](#gui) 58 | - [Game Development](#game-development) 59 | - [Logging](#logging) 60 | - [Testing](#testing) 61 | - [Code Analysis and Linter](#code-analysis-and-linter) 62 | - [Debugging Tools](#debugging-tools) 63 | - [Science and Data Analysis](#science-and-data-analysis) 64 | - [Data Visualization](#data-visualization) 65 | - [Computer Vision](#computer-vision) 66 | - [Machine Learning](#machine-learning) 67 | - [Functional Programming](#functional-programming) 68 | - [MapReduce](#mapreduce) 69 | - [Third-party APIs](#third-party-apis) 70 | - [DevOps Tools](#devops-tools) 71 | - [Job Scheduler](#job-scheduler) 72 | - [Foreign Function Interface](#foreign-function-interface) 73 | - [High Performance](#high-performance) 74 | - [Algorithms and Design Patterns](#algorithms-and-design-patterns) 75 | - [Hardware](#hardware) 76 | - [Miscellaneous](#miscellaneous) 77 | - [Editor Plugins](#editor-plugins) 78 | - [Resources](#resources) 79 | - [Websites](#websites) 80 | - [Weekly](#weekly) 81 | - [Twitter](#twitter) 82 | - [Other Awesome Lists](#other-awesome-lists) 83 | - [Contributing](#contributing) 84 | 85 | ## Environment Management 86 | 87 | *Libraries for Lua version and environment management.* 88 | 89 | 90 | ## Package Management 91 | 92 | *Libraries for package and dependency management.* 93 | 94 | * [LuaDist](http://luadist.org/) - 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. 95 | * [Luaforge](http://luaforge.net/projects/) - 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. 96 | * [LuaRocks](http://www.luarocks.org/) - 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. 97 | 98 | 99 | ## Distribution 100 | 101 | *Libraries to create packaged executables for release distribution.* 102 | 103 | * [LuaBinaries](http://luabinaries.sourceforge.net/) - LuaBinaries is a distribution of the Lua libraries and executables compiled for several platforms. 104 | 105 | 106 | ## Build Tools & IDE 107 | 108 | *Compile software from source code.* 109 | 110 | * [Decoda](https://github.com/unknownworlds/decoda) - Decoda Lua IDE and debugger. 111 | * [Lake](https://github.com/stevedonovan/Lake) - A Lua-based Build Tool 112 | * [ZeroBrane Studio](https://github.com/pkulchenko/ZeroBraneStudio) - A lightweight Lua-based IDE for Lua with code completion, syntax highlighting, live coding, remote debugger, and code analyzer. 113 | 114 | 115 | 116 | ## Interactive Interpreter 117 | 118 | *Interactive Lua interpreters.* 119 | 120 | 121 | ## Filesystem 122 | 123 | *Libraries for accessing the directory structure and file attributes.* 124 | 125 | * [LuaFileSystem](http://keplerproject.github.io/luafilesystem/) - LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution. 126 | * [LAR](http://www.keplerproject.org/en/LAR) - 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. 127 | * [LuaZip](http://keplerproject.org/luazip/) - 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. 128 | * [LuaExpat](http://matthewwild.co.uk/projects/luaexpat/) - LuaExpat is a SAX XML parser based on the Expat library. 129 | * [lua-path](https://github.com/moteus/lua-path) - File system path manipulation library. 130 | 131 | ## Date and Time 132 | 133 | *Libraries for working with dates and times.* 134 | 135 | * [LuaDate](http://tieske.github.io/date) - Date & Time module for Lua 5.1/5.2 136 | 137 | ## Lua Implementations 138 | 139 | *All kinds of lua implementations* 140 | 141 | * [UniLua](https://github.com/xebecnan/UniLua) - A pure c# implementation of Lua 5.2 focus on compatibility with Unity 142 | * [Luerl](https://github.com/rvirding/luerl) - An experimental implementation of Lua 5.2 written solely in pure Erlang. 143 | * [MoonScript](http://moonscript.org/) - MoonScript is a dynamic scripting language that compiles into Lua. 144 | * [lua.js](https://github.com/mherkender/lua.js) - An ECMAscript framework to compile and run Lua code, allowing Lua to run in a browser or in Flash. 145 | * [lua.vm.js](https://github.com/kripken/lua.vm.js) - The Lua VM, on the Web. 146 | * [Moonshine](http://moonshinejs.org/) - A lightweight Lua VM for the browser. 147 | * [lua-alchemy](https://github.com/lua-alchemy/lua-alchemy) - Port of the Lua programming language for ActionScript using Alchemy. 148 | * [NeoLua](https://neolua.codeplex.com/) - 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. 149 | 150 | 151 | ## Text Processing 152 | 153 | *Libraries for parsing and manipulating texts.* 154 | 155 | * [Markdown](http://luaforge.net/projects/markdown/) - A pure-lua implementation of the Markdown text-to-html markup system. 156 | * 157 | 158 | 159 | ## Natural Language Processing 160 | 161 | *Libraries for working with human languages.* 162 | 163 | 164 | ## Documentation 165 | 166 | *Libraries for generating project documentation.* 167 | 168 | * [LuaDoc](http://keplerproject.github.io/luadoc/) - LuaDoc is a documentation generator tool for Lua source code. 169 | 170 | 171 | ## Configuration 172 | 173 | *Libraries for storing configuration options.* 174 | 175 | 176 | ## Command-line Tools 177 | 178 | *Libraries for building command-line application.* 179 | 180 | 181 | ## Downloader 182 | 183 | *Libraries for downloading.* 184 | 185 | 186 | ## Imagery 187 | 188 | *Libraries for manipulating images.* 189 | 190 | 191 | ## Audio 192 | 193 | *Libraries for manipulating audio.* 194 | 195 | 196 | ## Video 197 | 198 | *Libraries for manipulating video and GIFs.* 199 | 200 | 201 | ## Geolocation 202 | 203 | *Libraries for geocoding addresses and working with latitudes and longitudes.* 204 | 205 | 206 | ## HTTP 207 | 208 | *Libraries for working with HTTP.* 209 | 210 | * [Xavante](http://keplerproject.github.io/xavante/) - Xavante is a Lua HTTP 1.1 Web server that uses a modular architecture based on URI mapped handlers. 211 | 212 | 213 | ## Database 214 | 215 | *Databases implemented in Lua.* 216 | 217 | * [Tarantool](https://github.com/tarantool/tarantool) - Tarantool is an efficient NoSQL database and a Lua application server. 218 | 219 | 220 | ## Database Drivers 221 | 222 | *Libraries for connecting and operating databases.* 223 | 224 | * Relational Databases 225 | * [LuaDBI](https://code.google.com/p/luadbi) - LuaDBI is a database interface library for Lua. It is designed to provide a RDBMS agnostic API for handling database operations. 226 | * [LuaLDAP](http://www.keplerproject.org/lualdap/) - LuaLDAP is a simple interface from Lua to an LDAP client, in fact it is a bind to OpenLDAP or to ADSI. 227 | * [LuaODBC](http://www.keplerproject.org/luasql/) - ODBC Library for Lua. Also provide LuaSQL compatible module. 228 | * [LuaSQL](http://www.keplerproject.org/luasql/) - LuaSQL is a simple interface from Lua to a DBMS. 229 | * [LuaSQLite3](http://lua.sqlite.org/) - a Lua 5.1 and Lua 5.2 wrapper for the SQLite3 library. 230 | * [Lsqlite](http://luaforge.net/projects/lsqlite/) - 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() 231 | 232 | * NoSQL Databases 233 | 234 | 235 | ## ORM 236 | 237 | *Libraries that implement Object-Relational Mapping or datamapping techniques.* 238 | 239 | * Relational Databases 240 | 241 | * NoSQL Databases 242 | 243 | 244 | ## Web Frameworks 245 | 246 | *Full stack web frameworks.* 247 | 248 | * [CGIlua](http://keplerproject.github.io/cgilua/) - CGILua is a tool for creating dynamic Web pages and manipulating input data from Web forms. 249 | * [Kepler Project](http://www.keplerproject.org/) - Kepler is a community of software developers building open software to help make Lua a viable option for development of web applications. 250 | * [Orbit](http://keplerproject.github.io/orbit/) - Orbit is an MVC web framework for Lua. 251 | * [WSAPI](http://keplerproject.github.io/wsapi/) - WSAPI is an API that abstracts the web server from Lua web applications. 252 | * [Tir](https://github.com/zedshaw/Tir) - Tir is an experimental web framework for the Mongrel2 webserver and Lua programming language. 253 | * [Lapis](https://github.com/leafo/lapis) - A web framework for Lua and OpenResty written in MoonScript. 254 | * [aLiLua](https://github.com/oneoo/alilua) - A epoll/kqueue based web server, inculded lua/coevent support (support Linux/MacOS/BSD platform). 255 | * [Bamboo](https://github.com/daogangtang/bamboo) - Bamboo is the web framework of Lua based on Mongrel2, ZeroMQ and NoSQL database. 256 | * [MOOCHINE](https://github.com/appwilldev/moochine) - A (very) simple and lightweight web framework based on ngx-openresty. 257 | 258 | 259 | ## Permissions 260 | 261 | *Libraries that allow or deny users access to data or functionality.* 262 | 263 | 264 | ## CMS 265 | 266 | *Content management systems* 267 | 268 | * [Sputnik](http://sputnik.freewisdom.org/) - Sputnik is a software application that powers a dynamic website. 269 | 270 | 271 | ## RESTful API 272 | 273 | *Libraries for developing RESTful APIs.* 274 | 275 | 276 | ## Authentication and OAuth 277 | 278 | *Libraries for implementing authentications schemes.* 279 | 280 | 281 | ## Template Engine 282 | 283 | *Libraries and tools for templating and lexing.* 284 | 285 | 286 | ## Queue 287 | 288 | *Libraries for working with event and task queues.* 289 | 290 | 291 | ## Search 292 | 293 | *Libraries and software for indexing and performing search queries on data.* 294 | 295 | 296 | ## News Feed 297 | 298 | *Libraries for building user's activities.* 299 | 300 | 301 | ## Asset Management 302 | 303 | *Tools for managing, compressing and minifying website assets.* 304 | 305 | 306 | ## Caching 307 | 308 | *Libraries for caching data.* 309 | 310 | 311 | ## Email 312 | 313 | *Libraries for sending and parsing email.* 314 | 315 | * [lua-imap4](https://github.com/vrld/imap4.lua) - Simple IMAP4 protocol wrapper for Lua 316 | * [lua-pop3](https://github.com/moteus/lua-pop3) - POP3 client library for Lua 317 | * [sendmail](https://github.com/moteus/lua-sendmail) - Simple wrapper around luasoket smtp.send 318 | 319 | 320 | ## Internationalization 321 | 322 | *Libraries for woking with i18n.* 323 | 324 | 325 | ## URL Manipulation 326 | 327 | *Libraries for parsing URLs.* 328 | 329 | 330 | ## HTML Manipulation 331 | 332 | *Libraries for working with HTML and XML.* 333 | 334 | * [Luatidy](http://www.bessems.biz/luatidy/) - Lua binding for [HTMLtidy](http://tidy.sourceforge.net/) 335 | 336 | 337 | ## Web Crawling 338 | 339 | *Libraries for scraping websites.* 340 | 341 | 342 | ## Web Content Extracting 343 | 344 | *Libraries for extracting web contents.* 345 | 346 | 347 | ## Forms 348 | 349 | *Libraries for working with forms.* 350 | 351 | 352 | ## Data Validation 353 | 354 | *Libraries for validating data. Used for forms in many cases.* 355 | 356 | 357 | ## Anti-spam 358 | 359 | *Libraries for fighting spam.* 360 | 361 | 362 | ## Tagging 363 | 364 | *Libraries for tagging items.* 365 | 366 | 367 | ## Admin Panels 368 | 369 | *Libraries for administrative interfaces.* 370 | 371 | 372 | ## Static Site Generator 373 | 374 | *Static site generator is a software that takes some text + templates as input and produces html files on the output.* 375 | 376 | 377 | ## Processes and Threads 378 | 379 | *Libraries for woking with processes or threads* 380 | 381 | * [lua-llthreads](https://github.com/Neopallium/lua-llthreads) - Low-Level threads(pthreads or WIN32 threads) for Lua. 382 | * [lua-llthreads2](https://github.com/moteus/lua-llthreads2) - Enhancement version of lua-llthreads rewritten without `LuaNativeObjects` code generator 383 | * [LuaLanes](https://github.com/LuaLanes/lanes) - lightweight, native, lazy evaluating multithreading library for Lua 5.1 and 5.2 384 | 385 | 386 | ## Networking 387 | 388 | *Libraries for network programming.* 389 | 390 | * [Copas](http://keplerproject.github.io/copas/) - Copas is a dispatcher based on coroutines that can be used by TCP/IP servers. 391 | * [lua-zmq](https://github.com/Neopallium/lua-zmq) - Lua bindings to ZeroMQ 2 392 | * [Luakit](http://mason-larobina.github.io/luakit/) - Fast, small, webkit based browser framework extensible by Lua. 393 | * [LuaEvent](http://repo.or.cz/w/luaevent.git) - 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...) 394 | * [LuaSec](https://github.com/brunoos/luasec) - LuaSec is a binding for OpenSSL library to provide TLS/SSL communication. 395 | * [LuaSocket](http://w3.impa.br/~diego/software/luasocket/) - 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. 396 | * [LuaNode](https://github.com/ignacio/LuaNode) - 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. 397 | * [lzmq](https://github.com/zeromq/lzmq) - A Lua wrapper for the ZeroMQ message library. Supports ZeroMQ version above 3.2.0 398 | * [Ngx_lua](https://github.com/openresty/lua-nginx-module) - Embed the power of Lua into Nginx. 399 | * [Luvit](https://github.com/luvit/luvit) - 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. 400 | * [Turbo](http://turbolua.org/) - Turbo provides you with all the stuff you need to develop fast web apps, web API's and networking applications. 401 | 402 | 403 | ## WebSocket 404 | 405 | *Libraries for woking with WebSocket.* 406 | 407 | 408 | ## WSGI Servers 409 | 410 | *WSGI-compatible web servers.* 411 | 412 | 413 | ## RPC Servers 414 | 415 | *RPC-compatible servers.* 416 | 417 | 418 | ## Cryptography 419 | 420 | *Cryptography libraries* 421 | 422 | * [AesFileEncrypt](https://github.com/moteus/lua-AesFileEncrypt) - A simple file encryption library 423 | * [MD5](http://keplerproject.org/md5/) - 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. 424 | * [LCrypt](http://luaforge.net/projects/lcrypt/) - 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. 425 | * [LuaCrypto](http://luacrypto.luaforge.net/) - LuaCrypto provides a Lua frontend to the OpenSSL cryptographic library. 426 | 427 | 428 | ## GUI 429 | 430 | *Libraries for working with graphical user interface applications.* 431 | 432 | * [wxLua](http://wxlua.sourceforge.net/) - wxLua is a Lua scripting language wrapper around the wxWidgets cross-platform C++ GUI library. 433 | * [IUP](http://www.tecgraf.puc-rio.br/iup/) - IUP is a multi-platform toolkit for building graphical user interfaces. 434 | * [Lqt](https://github.com/mkottman/lqt) - 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. 435 | * [LuaGnome](http://lua-gtk.luaforge.net/en/index.html) - LuaGnome provides a fairly complete binding to Gnome Libraries Lua, including glib 2.x, gdk, gtk 2.x, and a list of supporting libraries. 436 | 437 | 438 | ## Game Development 439 | 440 | *Awesome game development libraries.* 441 | 442 | * [Skynet](https://github.com/cloudwu/skynet) - A lightweight online game framework 443 | * [Scut](https://github.com/ScutGame/Scut) - Scut is a free, open source, stable game server framework, which support C#/Python/Lua script, and support Unity3d, Cocos2dx, FlashAir client access. 444 | * [LoveDOS](https://github.com/rxi/lovedos) - A framework for making 2D DOS games in Lua. LoveDOS provides an API based on a subset of the LÖVE API. 445 | * [PacPac](https://github.com/tylerneylon/pacpac) - This is Pac-Man from a parallel universe. 446 | * [aroma](https://github.com/leafo/aroma) - 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. 447 | 448 | 449 | ## Logging 450 | 451 | *Libraries for generating and working with log files.* 452 | 453 | * [LuaLogging](http://keplerproject.org/lualogging/) - 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. 454 | * [Lsyslog](https://gitorious.org/lsyslog/lsyslog) - lsyslog is a Lua module that wraps the syslog(3) C API. It has been tested with Lua 5.2 on Linux. 455 | * [Lua-log](https://github.com/moteus/lua-log) - Asynchronous logging library for Lua 5.1/5.2 456 | 457 | 458 | 459 | ## Testing 460 | 461 | *Libraries for testing codebases and generating test data.* 462 | 463 | * [Busted](https://github.com/Olivine-Labs/busted) - Elegant Lua unit testing. 464 | 465 | 466 | ## Code Analysis and Linter 467 | 468 | *Libraries and tools for analysing, parsing and manipulation codebases.* 469 | 470 | * [Lualint](https://github.com/philips/lualint) - lualint performs luac-based static analysis of global variable usage in Lua source code. 471 | 472 | 473 | ## Debugging Tools 474 | 475 | *Libraries for debugging code.* 476 | 477 | * [RemDebug](http://keplerproject.org/remdebug/) - 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. 478 | * [LuaProfiler](http://keplerproject.org/luaprofiler/) - LuaProfiler is a time profiler designed to help finding bottlenecks on your Lua program. 479 | 480 | 481 | ## Science and Data Analysis 482 | 483 | *Libraries for scientific computing and data analyzing.* 484 | 485 | * [SciLua](http://www.scilua.org/) - 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, ...). 486 | 487 | 488 | ## Data Visualization 489 | 490 | *Libraries for visualizing data.* 491 | 492 | 493 | ## Computer Vision 494 | 495 | *Libraries for computer vision.* 496 | 497 | 498 | ## Machine Learning 499 | 500 | *Libraries for Machine Learning.* 501 | 502 | 503 | ## MapReduce 504 | 505 | *Framworks and libraries for MapReduce.* 506 | 507 | 508 | ## Functional Programming 509 | 510 | *Functional programming in lua* 511 | 512 | * [Lua Fun](https://github.com/rtsisyk/luafun) - Lua Fun is a high-performance functional programming library designed for LuaJIT tracing just-in-time compiler. 513 | 514 | 515 | ## Third-party APIs 516 | 517 | *Libraries for accessing third party services APIs.* 518 | 519 | * [LPeg](http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html) - LPeg is a new pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs). 520 | 521 | ## DevOps Tools 522 | 523 | *Software and libraries for DevOps.* 524 | 525 | 526 | ## Job Scheduler 527 | 528 | *Libraries for scheduling jobs.* 529 | 530 | 531 | ## Foreign Function Interface 532 | 533 | *Libraries for providing foreign function interface.* 534 | 535 | * [Alien](http://mascarenhas.github.com/alien) - A C FFI for Lua 536 | * [FFI Library](http://luajit.org/ext_ffi.html) - The FFI library allows calling external C functions and using C data structures from pure Lua code. 537 | * [LuaFFI](https://github.com/jmckaskill/luaffi) - Standalone FFI library for calling C functions from lua. Compatible with the LuaJIT FFI interface. 538 | * [NLua](https://github.com/NLua/NLua) - NLua is the bind between Lua world and the .NET world. 539 | 540 | 541 | ## High Performance 542 | 543 | *Libraries for making Lua faster.* 544 | 545 | * [LuaJIT](http://luajit.org/luajit.html) - 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. 546 | * [Terra](http://terralang.org/) - Terra is a new low-level system programming language that is designed to interoperate seamlessly with the Lua programming language. 547 | * [LLVM-Lua](https://code.google.com/p/llvm-lua/) - JIT/Static compiler for Lua using LLVM on the backend. 548 | 549 | ## Microsoft Windows 550 | 551 | *Lua programming on Microsoft Windows.* 552 | 553 | * [lua-pdh](https://github.com/moteus/lua-pdh) - Lua binding to Microsoft Performance Data Helper (PDH) library. 554 | 555 | 556 | ## Hardware 557 | 558 | *Libraries for programming with hardware.* 559 | 560 | 561 | ## Miscellaneous 562 | 563 | *Useful libraries or tools that don't fit in the categories above.* 564 | 565 | * [Coxpcall](http://keplerproject.github.io/coxpcall/) - Coxpcall encapsulates the protected calls with a coroutine based loop, so errors can be dealed without the usual pcall/xpcall issues with coroutines. 566 | * [Penlight](https://github.com/stevedonovan/Penlight) - 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. 567 | 568 | 569 | ## Algorithms and Design Patterns 570 | 571 | *Collections of algorithms and design patterns.* 572 | 573 | 574 | ## Editor Plugins 575 | 576 | *Plugins for various editors.* 577 | 578 | * Vim 579 | * Emacs 580 | * Sublime Text 581 | 582 | 583 | # Resources 584 | 585 | *Where to discover new Lua libraries.* 586 | 587 | * [LuaSearch](http://math2.org/luasearch/) - Navigate Lua Module Documentation 588 | 589 | ## Websites 590 | 591 | 592 | ## Weekly 593 | 594 | 595 | ## Twitter 596 | 597 | 598 | # Other Awesome Lists 599 | 600 | * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) 601 | * [lists](https://github.com/jnv/lists) 602 | 603 | # Contributing 604 | 605 | Your contributions are always welcome! 606 | 607 | --------------------------------------------------------------------------------