LuaDirectory > LuaAddons > LibrariesAndBindings
This is a list of libraries implemented in Lua or implemented in another language (e.g. C) but having a Lua interface. For older libraries and bindings, see the LuaAddonsArchive.
Modules can also be found on LuaForge. Lua ModuleReview intends to arrange some of them.
Note to authors: This page is part of LuaAddons — please read the instructions there before making changes to this list. Please don't mark an entry with an open-ended version (e.g. "5.x"), as it will likely be incorrect the moment a new Lua version is released.
For something to be listed on this page, it must be possible to "require" it into a typical Lua application. Examples of what not to list:
- XYZ server or app that uses Lua for scripting or config
- XYZ engine or framework for C++ apps which is scriptable in Lua (but cannot extend existing Lua apps)
GUI toolkits and graphics
- GraphicalUserInterfaceToolkits - toolkits for creating GUI widgets or controls.
- OpenGL/3D
- [luaglut] (5.0/5.1) - OpenGL and GLUT bindings.
- [LuaGL] (5.0) - (Yet Another) OpenGL binding. Also provides some GLUT functions.
- [GLua] (5.1) - a library with classes and functions useful for scripting OpenGL applications, particularly prototyping GLSL shaders.
- [G&RT] (5.1) - a Geometry and Rendering Toolkit, provides a Lua binding for Pixar's Render
Man Interface[1].
- [IrrLua] (5.0/5.1) - a Lua binding for [Irrlicht], the free (zlib-licensed) cross-platform 3D engine.
- [Lugre] (5.1) - a Lua binding for [OGRE], the free (LGPL-licensed) cross-platform 3D engine. Uses OpenAL and [FMOD] for sound.
- GTK+
- The [OProj] (5.1) project binds Lua to a range of GTK+ and related APIs, including GTK and Cairo. Makes it easy to write GUIs and to generate 2D images in Lua. (See also the [ldraw] project under Image Manipulation.)
- SDL (Simple Direct
Media Layer)
- LuaModuleLuaSdl (4.0, 5.0) - bindings of SDL to Lua 4.0; patches for 5.0. See also [SDL].
- [LuaSDL] (5.1) - a tolua++ binding for SDL, SDL_image, SDL_mixer, SDL_net and SDL_ttf.
- [lAGE] (5.1) - a tiny game engine for 2D adventure games, in the style of old Lucas
Arts adventures. Uses Lua as the script language and SDL for the multimedia part.
- See also [20] (via FFI)
- Image Manipulation
- Desktop Publishing
- [lpdf] (5.0/5.1) - a library for generating PDF files based on PDFlib [2].
- [LuaHPDF] (5.1) - a Lua binding to the Haru Free PDF Library [3].
- PDF can also be generated by [CD] and [LuaCairo].
- Plots/Graphs
- [ldislin] (5.1) - A Lua wrapper for the [DISLIN] plotting and widgets library from MPS.
- [LuaGRAPH] (5.0/5.1) - A library to create, manipulate, layout and render graphs. Based on the [GRAPHVIZ] library from AT&T.
- [PLplot] (5.0/5.1) - PLplot is a cross-platform software package for creating scientific plots. Lua bindings were added 02/2009.
- Other
- [LuaBarcode] (5.0) - a barcode library for Lua (I2of5 barcodes).
- [Colors] (5.1) - Color manipulation in HSV color space. [*L]
- See also LuaGraphics.
Audio
Networking
Generic / Low-level
- [LuaSocket] (5.0/5.1) - a library for socket programming in Lua.
- [LuaSys] (5.1) - yet another system library for Lua. (Also contains: 1) sockets; 2) event notification mechanism; 3) win32 stuff: registry, event, service; 4) serial communication).
- [DSAS/DSASC] (5.1) - Dyna
Set Application Server and Client, a simple server/client networking API for Lua. Relies on [YAMI].
- [LuaBER] (5.0) - simple Basic Encoding Rules ([BER]) of Abstract Syntax Notation One ([ASN.1]/CCITT X.680, [OSI] Layer 6) implementation.
- [luaspread] (5.1) - a Lua interface to the Spread Group Communication System.
- [luadjbdns] (5.1) - a Lua interface to the djbdns and skadns DNS client libraries.
- [LuaCURL] (5.0/5.1) - a Lua interface to the [libcurl] file transfer library.
- [LuaSNMP] (5.0/5.1) - A library for Simple Network Management (SNMP) programming in Lua. Based on the net-snmp library.
- [webnet77] (5.1) - a library for IP to country lookup. [*L]
- Queueing / Threading
- HTML
- [HTK] (5.0/5.1) - a library of Lua constructors for HTML elements. [*L]
- [Lua HTML Tidy] (5.0) - a Lua to HTML Tidy binding.
- [XSSFilter] (5.1) - A module to filter HTML to safeguard against cross-site scripting (XSS) attacks. [*L]
- XML / XML-RPC / SOAP
Specific / Application level
- Web frameworks
- CGI / Web Server Bindings
- [WSAPI] (5.1) - an API layer that abstracts the web server from Lua web applications.
- [mod_lua] (5.0) - an Apache 2 module to enable web based applications much like PHP.
- [mod_wombat] (5.1) - another Apache 2 module for Lua-scripting web pages. See also ModWombat.
- [cgi.lua] (5.0) - the bare minimum necessary to do CGI, or maybe a little less. Versions for Lua 4.0 and 5.0. [*L]
- [CGILua] (5.0/5.1) - a tool for creating dynamic HTML pages and manipulating input data from forms using an Apache 2 module, Fast-CGI or traditional CGI. [*L]
- [luaisapi] (5.1) - IIS [ISAPI] library for Lua.
- [reCaptcha] (5.1) - a Lua interface to [reCAPTCHA].
- See also CgiUtils.
- Web Servers
- [Xavante] (5.1) - a Lua Web server (HTTP/1.1) that handles requests with Copas and uses CGILua as the native template engine.
- [lua-httpd] (5.0) - a simple networking binding and sample webserver implemented using it.
- [Ladle] (5.1) - an experimental web server written in the Lua programming language and is configurable via XML. [*L]
- Wiki
- [Sputnik] [6] (5.1) - an extensible wiki framework. Depends on Kepler and [Saci]. [*L]
- [Nanoki] (5.1) - a full-featured wiki and HTTP/1.1 engine. [*L]
- Web browsers
- [Moonshine] (5.1) - an embedded Lua environment for Mozilla Firefox. Implemented as an XPI extension; allows Firefox extensions to be developed using Lua code rather than Java
Script.
- E-mail
- [LuaPOP3] (5.0) - a POP3 client library for Lua.
- [Tethys] (5.1) - an simple yet extensible SMTP server. Designed to avoid the configuration nightmare that are most SMTP servers. [*L]
- Chat / IM / VoIP
- [Verse] (5.1) - a Jabber/XMPP library for Lua.
- [Prosody] (5.1) - a lightweight XMPP server written entirely in Lua (using common libraries/modules where necessary). [*L]
- [luamodo] (5.1) - an object oriented IRC bot framework.
- [FreeSWITCH] (5.1) - an open source communications framework for creation of voice and chat driven products scaling from a soft-phone up to a soft-switch. Supports SIP, H.323, IAX2, XMPP, and more. Includes conferencing, interactive voice response, text to speech/automatic speech recognition, PSTN interconnection, etc. Interfaces with C/C++, Perl, Python, Lua, Java
Script, Java and Mono/.NET.
Text processing
- Pattern Matching / Templates / Preprocessing
- [Gel] (5.0) Gel: [Gema] and Lua in a colloidal solution. Pattern matching over multiple lines, context sensitive matching and many other powerful mechanisms to transform text files.
- [MixLua] (5.1) - an onload preprocessor for Lua files and allow mixing of Lua code with other data.
- [lrexlib] (5.1) - a POSIX and Perl (PCRE) regular expression library for Lua.
- [LPeg] (5.1) - a New Pattern-Matching Library for Lua. See also LpegRecipes.
- [ltokens] (5.0/5.1) - a library for lexical analysis of Lua code, based on the Lua lexer.
- See also LuaGrammar.
- Markup languages
- [Markdown.lua] (5.1) - an implementation of the Markdown text markup language in pure Lua. [*L]
- [lua-discount] (5.1) - an binding to Discount, a fast and conformant C implementation of the Markdown text markup language.
- Binary-to-text encoding
- Analysis
- [Diff for Lua] (5.1) - a diff library, also providing an implementation of Least Common Subsequence. [*L]
- See also StringRecipes.
Database access
- DBMS-generic
- [LuaSQL] (5.0/5.1) - ODBC, Oracle, MySQL, SQLite, JDBC and PostgreSQL.
- [LuaDBI] (5.1) - DB2, Oracle, MySQL, PostgreSQL, SQLite. Based on Perl's DBI, provides prepared statements, placeholders and bind parameters.
- [LuaLDAP] (5.0/5.1) - LDAP client: OpenLDAP [8] or ADSI [9].
- DBMS-specific
AI
- [LuaCLIPS] (5.1) - the [CLIPS] expert system tool in a Lua accessible Win DLL.
- [Abelhas] (5.1) - a particle swarm optimization [17] engine written in pure Lua. [*L]
- [Routes] (5.1) - an implementation (TSP.lua) of the traveling salesman problem (TSP) solver using the ant colony optimization (ACO) algorithm [18]. [*L]
Math
- High-precision / Arbitrary precision
- [lqd] (5.1) - a high-precision (double-double & quad-double) mathematical library for Lua based on [qd].
- [lbc] (5.0/5.1) - a big-number library for Lua.
- [lmapm] (5.0/5.1) - an arbitrary precision library that contains transcendental functions.
- [ldecNumber] (5.1) - wrapper for IBM [decNumber]. Implements General Decimal Arithmetic standard IEEE 754r. Full control over rounding modes and working precision.
- [LGMP] (5.1) - use [GMP] the GNU multiple precision arithmetic library from Lua.
- [lmathx] (5.1) - an extension of the standard math library based on C99.
- [lcomplex] (5.1)- a library for mathematical operations with complex numbers based on C99.
- [linterval] (5.1) - an interval arithmetic library based on [PROFIL/BIAS]; implements interval type, vectors and matrices of this type. Includes an implicit curve plotter.
- [lgpc] (5.0/5.1) - a library for Boolean operations on polygons based on [GPС] the General Polygon Clipper library.
- [Numeric Lua] (5.1) - a numeric package for Lua with support for complex numbers, multidimensional matrices, random number generation, and special functions. Most of the routines are wrappers for the Netlib libraries.
- LuaMatrix [19] (5.1) - matrix operations in pure Lua. [*L]
Binary Structure / Bitwise Op
- bitwise-operators: see BitwiseOperators.
- structure packing:
- [lpack] (5.0/5.1) - a library for packing and unpacking binary data, written in C.
- [struct] (5.0) - another library for packing and unpacking binary data, written in C.
- [Lunary] (5.1) - another library for packing and unpackgin binary data, written in C. ([differences from other libraries])
- [vstruct] (5.1) - a library for packing and unpacking binary data, written entirely in Lua [*L]
- [LuaMem] (5.0) - struct, array, call cfunction, file map.
Compression
- [lzlib/lgzip] (5.1) - a Lua interface to work with gzip files, based on liolib.c - uses zlib library.
- [LuaZip] (5.0/5.1) - a lightweight Lua extension library used to read files stored inside zip files.
- [lua-bz2] (5.1) - binding to the libbzip2.
- ModuleCompressDeflateLua (5.1) - implementation of DEFLATE (gzip/zlib) in pure Lua (decompress only). [*L]
- [LibCompress] (5.1) - LZW and Huffman compression/decompression in pure Lua. Can automatically choose the most efficient algorithm for specific data. [*L]
Cryptography
- [lmd5] (5.0/5.1) - an MD5/SHA1 digest library for Lua.
- [md5] - a cryptographic library for Lua based on the MD5 message-digest algorithm.
- [lua-crypt] (5.0) - An one-function library that provides the POSIX crypt() function for Lua
- [LuaMHash] (5.0) - [mhash] library binding.
- [LuaCrypto] (5.0/5.1) - a Lua frontend to the crypto part of [OpenSSL] library. Provides digests (MD5, SHA-1, HMAC, etc) and crypto-grade random number generators.
- [LuaSec] (5.1) - a Lua frontend to the SSL part of OpenSSL library. Provides secure TLS/SSL communication; depends on Lua
Socket for TCP connection.
Persistence
- [Pluto] (5.0/5.1) - heavy-duty persistence for Lua.
- [lper] (5.0/5.1) - a tool for making persistent Lua states using Linux Persistent Memory library (LPSM).
- See also TableSerialization.
POSIX / Filesystem / Linux
- [lua-fs] (5.0) - A filesystem primitive extension library for Lua.
- [LuaFileSystem] (5.1) - a library developed to complement the set of functions related to file systems.
- [lalarm] (5.0/5.1) - an alarm library for Lua based on signal and SIGALRM.
- [lposix] (5.0/5.1) - a POSIX library for Lua.
- [luainotify] (5.1) - a Lua interface to the Linux inotify subsystem.
Shell
- [Luashell] (5.1) - facilitates writing shell scripts in Lua.
- [NTLua] (5.1) - a Lua module and console application to create Windows NT administration and logon scripts.
Logging
- [LuaLogging] (5.1) - A simple API to use logging features in Lua. [*L]
Internationalization (i18n)
Documentation
- [doctest] (5.1) - a module that strives to integrate documentation and testing by example. Idea from python-doctest. [*L]
Testing
Events / Queueing / Threading / Parallelism
Calling interfaces
Miscellaneous
- [stdlib] (5.1) - a collection of Lua modules for general programming. (Follow the CVS link to browse the source files. Project summary shows "0 commits" because the repository was imported from SourceForge.) See also StandardLibraries. [*L]
- [LUSTI] (5.0) - Lua binding for Universal Search Tree Interface (more for learning Lua with C).
- [VEnv] (5.0) - Provides a way to execute a Lua function in a separate environment, protecting the original one. [*L]
- [Compat-5.1] (5.0) - simulates the Lua 5.1 package model under Lua 5.0 so you can use 5.1 packages. [*L]
- [LuaSVN] (5.1) - A library that allows to use some Subversion (SVN) facilities inside Lua programs.
To delete
The following are proposed to be removed from this page because they are not libraries or bindings but uses of Lua.
- BlitzLua (5.1) - a Lua runtime environment written in BlitzMAX with access to many BlitzMAX/MaxGUI modules (including 2D and 3D graphics, sound and networking). (note: the link currently points into this wiki (which is usually a bad idea in this list) but this will change as soon as the package has its own web site)
Footnotes: [*L] pure Lua implementation (no C)
FindPage · RecentChanges · preferences
edit · history
Last edited July 3, 2009 11:43 pm GMT (diff)