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. MySQL 基于lvm2的备份实战演练 (快照备份)

    前言: lvm2实现热备的原理是基于lvm2的快照功能,lvm2可以实现数据集不大的情况下的热备. 实战过程如下:这里的演示是在一台Mariadb服务器上进行创建快照,将快照中的文件scp到备份服务器 ...

  2. Windows下基于http的git服务器搭建-gitstack

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http: ...

  3. 微信小程序组件 360

    data: { nums: 1, start: '', // change:'' // 上一部记忆数据 mid: '' }, mytouchmove: function (e) { var start ...

  4. Java实现简单的RPC框架(美团面试)

    一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ...

  5. HashMap的扩容机制以及默认大小为何是2次幂

    HashMap的Put方法 回顾HashMap的put(Key k, Value v)过程: (1)对 Key求Hash值,对n-1取模计算出Hash表数组下标 (2)如果没有碰撞,直接放入桶中,即H ...

  6. 详解免费高效实用的.NET操作Excel组件NPOI(转)

    有时间研究一下NPOI http://www.cnblogs.com/pengze0902/p/6150070.html

  7. Vue2.0 - 全局操作 Vue.set

    引:http://www.cnblogs.com/zccblog/p/7192420.html Vue.set 的作用就是在构造器外部操作构造器内部的数据.属性或者方法.比如在vue构造器内部定义了一 ...

  8. hadoop和spark搭建记录

    因玩票需要,使用三台搭建spark(192.168.1.10,192.168.1.11,192.168.1.12),又因spark构建在hadoop之上,那么就需要先搭建hadoop.历经一个两个下午 ...

  9. Eclipse 保存代码时,不自动换行设置

    Eclipse在保存代码时,总是自动换行.尤其是注释,换行后的注释读起来就很混乱.后来发现是在保存文件时设置了自动格式化代码的原因. 关闭自动格式代码设置: windows-->Preferen ...

  10. [二十]SpringBoot 之 (多)文件上传

    (1)新建maven Java project 新建一个名称为spring-boot-fileuploadmaven java项目 (2)在pom.xml加入相应依赖: <project xml ...