Libraries And Bindings

 
 

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.
  • LuaGraphics - 2D/3D Lua-codable graphics frameworks.
  • OpenGraphicsLibrary - OpenGL/3D
  • SDL (Simple DirectMedia 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 LucasArts adventures. Uses Lua as the script language and SDL for the multimedia part.
    • See also [9] (via FFI)
  • Image Manipulation
  • Desktop Publishing
    • [lpdf] (5.0/5.1) - a library for generating PDF files based on PDFlib [1].
    • [LuaHPDF] (5.1) - a Lua binding to the Haru Free PDF Library [2]. Last updated in 2007.
    • PDF can also be generated by [CD] and [LuaCairo].
    • [luaFPDF] a pure lua port of PHP FPDF library, it isn't complete but is functional, any comments, suggestions, enhancements are welcome.
  • 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

Audio

  • [proteaAudio] (5.1) - a free cross-platform 2D audio library for C++ and Lua.
  • [Lua-eSpeak] (5.1) - a Lua binding to the [eSpeak] speech synthesis engine.
  • [Csound] [3] (5.1) - a software audio synthesis environment, with interfaces to C/C++, Tcl, Python, Java, Lua and Lisp.
  • [ABCLua] (5.1) - an [ABC] notation music format parsing and creation library, with support for MIDI conversion.

Networking

Generic / Low-level

  • [LuaSocket] (5.0/5.1) - a library for socket programming in Lua.
  • [Nixio] - System, Networking and I/O library for Lua.
  • [LuaZMQ] - Lua bindings to the [ZeroMQ] Publish/Subscribe, Request/Response, Push/Pull message passing library.
  • [lzmq] (5.1/5.2) - Lua binding to the [ZeroMQ] 3.x library.
  • [LuaHandlers] - Provides a set of async. callback based handlers for working with raw TCP/UDP socket, ZeroMQ sockets, or HTTP requests.
  • [LuaSys] (5.1/5.2) - yet another system library for Lua. (Also contains: 1) sockets; 2) event notification mechanism; 3) win32 stuff: registry, service; 4) serial communication; 5) threading).
  • [DSAS/DSASC] (5.1) - DynaSet 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]
  • [swirl] (5.1) - implements [BEEP], a framework for creating application-level protocols.
  • [LuaVortex] (5.1) - implements [BEEP], a framework for creating application-level protocols.
  • LuaApr binds the socket interface provided by the Apache Portable Runtime (APR) library.
  • 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
  • JSON-RPC
    • [JSONRPC4Lua] (5.0/5.1) - JSON-RPC-over-http client (or server in a CGILua environment) for Lua. [*L]
    • (see also JSON under Text processing below)
  • [tango] (5.1) - A simple RPC library with customizable serialization. Depends on Copas and LuaSocket?.
  • [ratchet] (5.1/5.2) - a multi-socket control mechanism, similar to Python's gevent, with support for ZeroMQ, SSL, DNS, SMTP, HTTP.
  • [Luvit] (5.1) - Lua + node.js's libUV + JIT: event-driven non-blocking I/O for network applications.
  • [Lua HDF5] (5.1/5.2) - Low and high-level Lua interface to the HDF5 library. Compare to h5py.
  • [Lua MPI] (5.1/5.2) - Lua bindings for MPI (Message Passing Interface).
  • [cqueues] (5.1/5.2/5.3) - Comprehensive abstraction over O(1) sockets, signals, and file notification on Linux, *BSD, OS X, and Solaris. Also includes buffered socket I/O, SSL/TLS I/O, file descriptor passing, POSIX thread wrapper, DNS library with recursive and stub resolution, and complete bindings to OpenSSL's certificate and key management API. No callbacks, so fully interoperable with other C or Lua event loops, or usable as a standalone event loop.
  • [lua-websockets] (5.1/5.2) - Websockets (V13) for Lua.
  • [h2o] (5.1/luajit) - Handling HTTP/1.* and HTTP/2 requests with Lua fast and lightweight (40,000 req/s simple form on intel celeron).

Specific / Application level

  • Web frameworks

    • [Lapis] (5.1) - A web framework for MoonScript? & OpenResty?.
    • [Web Wispers] (5.1) - distributed service-oriented web development framework.
    • [Ophal] (5.1) - Drupal-like web framework for Lua
    • [Jet] (5.1, 5.2) - Realtime Message Bus for Lua, Node.js and Browser
    • [Kepler] [4] (5.0/5.1) - the portable web development platform. No longer under active development.
    • [Orbit] (5.1) - an [MVC]-oriented web framework. No longer under active development.
    • [Moonstalk] (5.1) - a web hosting backend and web development framework. No longer under active development.
    • [Lua Web Tools] (5.1/5.2) - template based web applications, Apache 2 module. No longer under active development.
    • [Tir] (5.1) - simple Lua web framework built specially for Mongrel2. No longer under active development.
  • CGI / Web Server Bindings
  • 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]
    • [LuaExec] (5.1, 5.2, 5.3?) - small object oriented server supporting Copas, rudimentary HTTP/1.1 class, Lua pages with a parser written in C, included as an example for embedding a HTTP server into an application
    • [Turbolua] (5.1) - Web server that allows websites to be written in Lua. Fast, uses Luajit.
  • CMS / Wiki
    • [Sputnik] (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]
    • [LOona] (5.1) - small, fast and extensible CMS with wiki-like features.
    • [Ophal] (5.1) - Content Management Framework (a framework to create CMSs).
  • 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 JavaScript.
    • [Luakit] (5.1) - a highly configurable, micro-browser framework based on WebKit? and GTK+, extensible by Lua.
  • 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]
    • IMAP: [5] tiny IMAP server implemented in Lua (preliminary) [*L]
    • [Lua-POP3] (5.1/5.2) - a POP3 client library for Lua.
  • 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, JavaScript, Java and Mono/.NET.
    • [ivrWorx] - VoIP application prototyping tool (SIP,MRCP,RTSP,...).

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.
    • [LuaHaml], an implementation of the [Haml] template language
  • Data serialization languages
    • JSON:

      • See JsonModules for a list of many JSON modules and a comparison of them.
      • [Lua CJSON] (5.1/5.2) - Fast JSON parsing/encoding support for Lua.
    • YAML
      • [yaml] (5.1) - a LibYAML binding for Lua.
      • [Syck] (5.1) - Scripters' YAML Cobble-yourself-a-parser Kit. It's optimized for use with high-level interpreted languages, obtaining speed by writing directly to the symbol table of the language.
    • Cyan
      • [Cyan] - Convert tables to strings and vice-versa using Cyan encoding
    • See also LuaXml.
  • 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.
  • [Allen] (5.x) - Lua Library for intensive strings processing.

Tables processing

  • [Moses](5.x) - Library for tables processing.

Database access

See DatabaseAccess.

AI

See ArtificialIntelligence.
  • [Jumper] (5.1) - Pathfinding Library for 2D grid-based games using Jump Point Search algorithm.

Math

  • High-precision / Arbitrary precision

    • [lqd] (5.1/5.2) - a high-precision (double-double & quad-double) mathematical library for Lua based on [qd].
    • [lbc] (5.0/5.1/5.2) - a big-number library for Lua.
    • [lmapm] (5.0/5.1/5.2) - 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/5.2) - use [GMP] the GNU multiple precision arithmetic library from Lua.
  • [lmathx] (5.1/5.2) - an extension of the standard math library based on C99.
  • [lcomplex] (5.1/5.2)- a library for mathematical operations with complex numbers based on C99.
  • [linterval] (5.1/5.2) - 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/5.2) - 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 [7] (5.1) - matrix operations in pure Lua. [*L] includes complex number library too.
  • [complex] - library for complex numbers written in pure Lua
  • [gslshell] - Library and Lua shell interface binding to the GNU Scientific Library (GSL), including matrices, vectors, and various math routines
  • [Lunum] - fast numeric arrays for Lua, implemented entirely in C. Arrays behave just like numpy arrays, and support all numeric data types, including bool and complex. Array slicing is on the way. Works as a Lua module (shared library) or a simple C API to statically embed in applications. Actively used in physics research on distributed memory computing clusters.
  • [SOR](5.x) - Library for solving linear equations.
  • [SciLua] (LuaJIT 2.0) - Pure LuaJIT library for general purpose scientific computing. Covers vector and matrix algebra, random (and quasi random) number generators, function minimization, distributions, special math functions, more.
  • [Rclient] (LuaJIT 2.0) - Pure LuaJIT library, makes it possible to exchange data structures between LuaJIT and R and to execute arbitrary R programs directly from LuaJIT.
  • [GALua] (5.2) - Adds multi-vector data-types to the Lua programming language. Those familiar with geometric algebra may be interested in this module.
  • [Lua Numerical Algorithms] - Pure LuaJIT library that provides matrix operations (mostly via LAPACKE and FFI), function minimization, integration, FFT, complex numbers, and others.
  • [luapower/affine2d] - 2D affine transforms
  • [luapower/eq] - 2nd and 3rd degree equation solver
  • [Torch] - Scientific computing library with broad support for machine learning algorithms (requires LuaJIT and LuaRocks)
  • [vectorial] - Pure Lua 5.3 libraries for basic vector handling. Currently 2D and 3D vectors are supported, n-dimensional vectors will happen eventually.

Compression

Cryptography

Binary Structure / Bitwise Op

Persistence / Serialization

  • [Pluto] (5.0/5.1) - heavy-duty persistence for Lua. See also PlutoLibrary.
  • [Eris] (5.2) - a port/rewrite of Pluto.
  • [lper] (5.0/5.1) - a tool for making persistent Lua states using Linux Persistent Memory library (LPSM).
  • [mplua] (5.1) - a binding to [MessagePack], a binary-based efficient object serialization library. Enables to exchange structured objects between many languages like JSON.
  • See also TableSerialization.

POSIX / Filesystem / Linux

  • FileSystemOperations - libraries for file system operations
  • [lalarm] (5.0/5.1/5.2) - an alarm library for Lua based on signal and SIGALRM.
  • [lposix] (5.0/5.1) - a POSIX library for Lua.
  • [luaposix] (5.1/5.2) - another POSIX library for Lua.
  • [luainotify] (5.1) - a Lua interface to the Linux inotify subsystem.
  • [linotify] (5.0/5.1) - another Lua interface to inotify.
  • [Flu] (5.1) - a Lua binding for [FUSE].
  • LuaApr provides portable access to most file system operations supported by the Apache Portable Runtime (APR) library.
  • [v4l-lua] (5.1) - a Lua bind for V4L2 Cameras
  • [lunix] (5.1/5.2/5.3) - Bindings to common Unix interfaces, both POSIX and extensions, with emulation where not natively available. For example, BSD getifaddrs will work on all supported platforms, even those which lack it in their libc. POSIX clock_gettime and sigtimedwait are supported on all platforms, even though several lack a native implementation of one or the other. Developed and maintained on Linux/glibc, OS X, Solaris, AIX, FreeBSD, NetBSD, and OpenBSD.

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.
  • LuaExpect lists Lua implementations of the famous [Expect] tool

Logging

  • [LuaLogging] (5.1) - A simple API to use logging features in Lua. [*L]
  • [lua-log] (5.1/5.2) - Asynchronous logging library for Lua.

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

Sandboxing

  • [Safe Lua] - a variant of Lua that allows creating advanced sandboxes

Hardware

  • [lualibusb] - a libusb binding for general USB devices.
  • [luausb] - a libusb1 binding for general USB devices.
  • [luahidapi] - a hidapi binding for USB HID devices.

Miscellaneous

  • [stdlib] (5.1/5.2) - a collection of Lua modules for general programming. 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.
  • [Tamale] (5.1) - Structural, Erlang-style pattern-matching for Lua. Works over data structures, not just strings.
  • [The Lua Class Library] - A class library (provides support for the class keyword)
  • [LuaOS.net] - Lua-based operating systems.
  • [qOOP] (5.1) - A simple, lightweight Lua Library which offers lots of OOP facilities using Lua Programming Language.
  • [Binary Heaps](5.x) - Implementation of binary heaps in pure Lua.
  • [Lua Class System](5.x) - Lighweight OOP framework for Lua.
  • [Basic Class Model](5.x) - A partial implementation of Python's class model for Lua, written in only 150 lines
  • [luapower/oo](5.x) - Object system with virtual properties, overriding hooks and introspection in 200 LOC
  • [luapower/tuple](5.x) - Tuples that can be used as table keys

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)
  • [Crank Storyboard] - Engine and development environment targeting graphics systems on embedded platforms (SDL, frame buffer, Direct FB, Win32 DGI, QNX TDK, Khronos OpenVG/OpenGL, and others). Uses Lua for logic and glue. [8]. Commercial.

Footnotes: [*L] pure Lua implementation (no C)


RecentChanges · preferences
edit · history
Last edited March 27, 2015 5:01 am GMT (diff)

Lua的各种资源1的更多相关文章

  1. Lua的工具资源3

    [LuaSrcDiet] (5.0.2) - 通过删除不必要的空白和注释缩减Lua文件的大小. [LuaProfiler] (5.0) - 一个用来查找Lua应用瓶颈的工具time profiler ...

  2. Lua的各种资源2

    Lua Directory     This page is a top level directory of all Lua content at this wiki, grouped by top ...

  3. Mac 下纯lua(一)

    Lua 介绍 什么是lua - lua是一种跨平台开发脚本语言. Lua 历史 学校 University of Rio de Janeiro 国家 巴西 作者 Roberto Ierusalimsc ...

  4. Redis源码学习:Lua脚本

    Redis源码学习:Lua脚本 1.Sublime Text配置 我是在Win7下,用Sublime Text + Cygwin开发的,配置方法请参考<Sublime Text 3下C/C++开 ...

  5. U3D游戏运行时资源是如何从AB中加载出来的

    以安卓为例 1,游戏启动,自定义版本管理器去安卓的持久化目录下查找我们自定久的版本管理文件 rep.db,若该文件不存在,说明这是游戏第一次启动,于是就把streammingAssets下的LUA文件 ...

  6. Lua语言中文手册 转载自网络

    Programming in LuaCopyright ® 2005, Translation Team, www.luachina.net Programming in LuaProgramming ...

  7. cocos2d-x lua中实现异步加载纹理

    原文地址:  http://www.cnblogs.com/linchaolong/p/4033118.html 前言   问题:最近项目中需要做一个loading个界面,界面中间有一个角色人物走动的 ...

  8. `cocos2dx非完整` 添加xxtea加密模块

    在上一篇文章中,我已经开始着手写自己的模块,也就是fw部分.其中上一篇文章中完成的是lua部分的配置解析部分,涉及一点点平台方面的封装.这一片文章我来说明一下我是如何处理cocos2dx资源加密的.首 ...

  9. 学习tolua#·20多个例子

    初始项目搭建 clone官方库 新建unity工程 依次把官方库里的Assets和Unity5.x/Assets拷贝到项目Assets里 打开unity工程, 开始逐个学习例子,例子目录: 1. he ...

随机推荐

  1. TCP系列50—拥塞控制—13、Eifel探测下的拥塞撤销

    一.概述 我们之前在SACK关闭场景下的拥塞撤销那篇文章中提到过Eifel探测算法(Eifel Detection Algorithm),最早在介绍DSACK和FRTO的时候我们就有提到过Eifel探 ...

  2. 设计模式PHP篇(三)————适配器模式

    简单的适配器模式: interface Adaptor { public function read(); public function write(); } class File implemen ...

  3. ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

    v 一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展, 在安装中遇 ...

  4. json_decode遇到的编码问题

    初入csdn,就最近遇到的简单问题做一个功能解释; json_encode和json_decode只针对utf8字符有效,如果遇到其他编码比如gbk,需要进行转码然后解析: header(" ...

  5. javascript之彻底理解valueOf, toString

    参与运算的都是简单类型(一般就字符串和数字), 复杂类型是不参与运算的. ***当对象(非简单类型)用作键时,会先调用toString()方法把对象转化成字符串 var a = {},     b = ...

  6. 第164天:js方法调用的四种模式

    js方法调用的四种模式 1.方法调用模式 function Persion() { var name1 = "itcast", age1 = 19, show1 = functio ...

  7. 【bzoj5028】小Z的加油店 扩展裴蜀定理+差分+线段树

    题目描述 给出 $n$ 个瓶子和无限的水,每个瓶子有一定的容量.每次你可以将一个瓶子装满水,或将A瓶子内的水倒入B瓶子中直到A倒空或B倒满.$m$ 次操作,每次给 $[l,r]$ 内的瓶子容量增加 $ ...

  8. 谈谈 Java 类加载机制

    概述 类加载器主要分为两类,一类是 JDK 默认提供的,一类是用户自定义的. JDK 默认提供三种类加载器: Bootstrap ClassLoader 启动类加载器:每次执行 java 命令时都会使 ...

  9. oracle 远程登录sqlplus TNS:无监听

    1.将localhost 改成 计算机名 best-PC,或者ip地址 .  我修改成计算机名,因为经常在无线网络和有限网络之间切换 SID_LIST_LISTENER =  (SID_LIST =  ...

  10. 【生成树,堆】【CF1095F】 Make It Connected

    Description 给定 \(n\) 个点,每个点有点权,连结两个点花费的代价为两点的点权和.另外有 \(m\) 条特殊边,参数为 \(x,y,z\).意为如果你选择这条边,就可以花费 \(z\) ...