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. iOS- 再谈ARC里内存问题,ARC里数组、对象内存得不到释放?

    1.前言      本来以为在改成ARC以后,不再需要考虑内存问题了,可是在实践中还是发现有一些内存问题需要注意,今天我不谈block的循环引用的问题,主要说说一些对象.数组不内存得不到释放的情况. ...

  2. springMVC 流程

    springMVC流程控制 SpringMVC流程 web.xml 中配置 org.springframework.web.servlet.DispatcherServlet 这一步其实和spring ...

  3. LAMP环境搭建Wordpress个人博客

    LAMP简要介绍 L:LinuxA:Apache(httpd)M:MySQL , MariadbP:php, perl , python 静态资源:图片,文档,视频,HTML代码,CSS代码,js代码 ...

  4. centos系统下禁用笔记本触控板

    最近把零几年的老爷笔记本拿出来用,使用windows系统实在太卡了,于是折腾安装上Centos系统了,但是在使用的过程中发现鼠标经常失效.使用了多种方法(比如:http://blog.csdn.net ...

  5. xheditor在线编辑器在.netMVC4中的使用

    在线编辑器xheditor,测试感觉不错,特把使用方法记录如下 : 先看看基本使用方法,然后用实例来操作 1.xheditor 地址 http://xheditor.com/ 2.下载最新编辑器源码 ...

  6. ZOJ3084_S-Nim

    题目的意思是这样的,给定你若干堆石子,每次你可以从任一堆取出某些固定数量的石子,每次取完后必须保证没堆石子的数量不为0,谁无法操作了就算fail. 刚刚开始看题目的时候有点也没有思路,甚至连Sg函数也 ...

  7. LeetCode 696. Count Binary Substrings

    Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...

  8. 深入理解JVM一垃圾回收算法

    我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理. 一.stop the world 在介绍 ...

  9. 命令行下django-admin.py参数不起作用的问题解决

    django官方turial中创建本地web站点时,使用如下命令 django-admin.py startproject mysite 说一下我在使用时碰到的几个问题: 1.无法找到django-a ...

  10. c#数据库连接 出现错误提示:keyword not supported:'connection timeour'

    连接字符串错误,如  User Id  被换行了,导致无效字符串 请检查连接字符串是否正确