LuaDirectory > LuaAddons > 库和绑定
这是一个用 Lua 实现的库的列表,或者用另一种语言(例如 C)实现但带有 Lua 接口的库。有关旧的库和绑定,请参阅 LuaAddonsArchive。模块也可以在 LuaForge 上找到。Lua ModuleReview 旨在整理其中一些。
致作者:此页面是 LuaAddons 的一部分 — 在对此列表进行更改之前,请阅读那里的说明。请不要在条目中标记一个开放式版本(例如“5.x”),因为在新 Lua 版本发布时它很可能不正确。
为了让某项内容出现在此页面上,它必须能够“require”到典型的 Lua 应用程序中。不应列出的示例
- 使用 Lua 进行脚本编写或配置的 XYZ 服务器或应用程序
- 可用于 Lua 脚本编写的 C++ 应用程序的 XYZ 引擎或框架(但不能扩展现有 Lua 应用程序)
GUI 工具包和图形
音频
网络
通用/底层
- [LuaSocket] (5.0/5.1) - Lua 中的套接字编程库。
- [LuaSCTP] (5.1/5.2/5.3) - 通过 SCTP 从 Lua 发送和接收数据。
- [Nixio] - Lua 的系统、网络和 I/O 库。
- [Emilua] - Lua 的另一个系统、网络和 I/O 库。
- [LuaZMQ] - Lua 绑定到 [ZeroMQ] 的发布/订阅、请求/响应、推/拉消息传递库。
- [lzmq] (5.1/5.2/5.3) - Lua 绑定到 [ZeroMQ] 3.x 库。
- [LuaHandlers] - 提供一组基于异步回调的处理程序,用于处理原始 TCP/UDP 套接字、ZeroMQ 套接字或 HTTP 请求。
- [LuaSys] (5.1/5.2) - 另一个 Lua 系统库。(还包含:1)套接字;2)事件通知机制;3)win32 组件:注册表、服务;4)串行通信;5)线程)。
- [DSAS/DSASC] (5.1) - Dyna
Set Application Server and Client,Lua 的简单服务器/客户端网络 API。依赖于 [YAMI]。 - [LuaBER] (5.0) - 简单的基本编码规则([BER]),用于抽象语法标记一([ASN.1]/CCITT X.680,[OSI] 第 6 层)实现。
- [luaspread] (5.1) - Lua 对 Spread Group Communication System 的接口。
- [luadjbdns] (5.1) - Lua 对 djbdns 和 skadns DNS 客户端库的接口。
- [LuaCURL] (5.0/5.1) - Lua 对 [libcurl] 文件传输库的接口。
- [LuaSNMP] (5.1/5.2/5.3) - Lua 中的简单网络管理(SNMP)编程库。基于 net-snmp 库。
- [webnet77] (5.1) - 用于 IP 到国家查找的库。[*L]
- [swirl] (5.1) - 实现 [BEEP],一个用于创建应用层协议的框架。
- [LuaVortex] (5.1) - 实现 [BEEP],一个用于创建应用层协议的框架。
- LuaApr 绑定了 Apache Portable Runtime (APR) 库提供的套接字接口。
- 队列/线程
- HTML
- XML / XML-RPC / SOAP
- JSON-RPC
- [JSONRPC4Lua] (5.0/5.1) - Lua 的 JSON-RPC-over-http 客户端(或 CGILua 环境中的服务器)。[*L]
- (另请参阅下面的“文本处理”中的JSON)
- [tango] (5.1) - 一个简单的 RPC 库,支持自定义序列化。依赖于 Copas 和 LuaSocket?。
- [ratchet] (5.1/5.2) - 一个多套接字控制机制,类似于 Python 的 gevent,支持 ZeroMQ、SSL、DNS、SMTP、HTTP。
- [Luvit] (5.1) - Lua + node.js 的 libUV + JIT:用于网络应用程序的事件驱动非阻塞 I/O。
- [Lua HDF5] (5.1/5.2) - HDF5 库的低级和高级 Lua 接口。与 h5py 对比。
- [Lua MPI] (5.1/5.2) - Lua 绑定到 MPI(Message Passing Interface)。
- [cqueues] (5.1/5.2/5.3) - Linux、*BSD、OS X 和 Solaris 上 O(1) 套接字、信号和文件通知的综合抽象。还包括缓冲套接字 I/O、SSL/TLS I/O、文件描述符传递、POSIX 线程包装器、支持递归和存根解析的 DNS 库,以及 OpenSSL 证书和密钥管理 API 的完整绑定。没有回调,因此与其他 C 或 Lua 事件循环完全互操作,或者可以用作独立的事件循环。
- [lua-http] (5.1/5.2/5.3/luajit) - Lua 的 HTTP 库。支持 HTTP 1.0、1.1 和 2.0;客户端和服务器;可选完全异步。
- [lredis] (5.1/5.2/5.3/luajit) - Redis 客户端;可选完全异步。
- [lua-websockets] (5.1/5.2) - Lua 的 Websockets (V13)。
- [h2o] (5.1/luajit) - 使用 Lua 快速轻量级地处理 HTTP/1.* 和 HTTP/2 请求(在 Intel Celeron 上每秒 40,000 个请求的简单形式)。
- [ljndpi] (luajit) - 使用 LuaJIT FFI 绑定到 nDPI 深度包检测库。
- [lua-lluv] - libuv 的底层绑定。
特定/应用层
- Web 框架
- CGI / Web 服务器绑定
- Web 服务器
- [Mako Server] - Lua App Server 包含对客户端/服务器 HTTP/HTTPS、(安全)套接字、客户端/服务器 WebSockets?、MQTT 客户端、WebDAV 服务器以及用于创建 Web 应用程序的 Lua Server Pages (LSP) 的支持。
- [Xavante] (5.1) - 一个 Lua Web 服务器(HTTP/1.1),使用 Copas 处理请求,并使用 CGILua 作为原生模板引擎。
- [lua-httpd] (5.0) - 一个简单的网络绑定和一个使用它实现的示例 Web 服务器。
- [Ladle] (5.1) - 一个用 Lua 编程语言编写的实验性 Web 服务器,可通过 XML 配置。[*L]
- [LuaExec] (5.1, 5.2, 5.3?) - 小型面向对象的服务器,支持 Copas、基本 HTTP/1.1 类、带有 C 编写的解析器的 Lua 页面,作为将 HTTP 服务器嵌入应用程序的示例。
- [Turbolua] (5.1) - 允许用 Lua 编写网站的 Web 服务器。快速,使用 Luajit。
- CMS / Wiki
- [Sputnik] (5.1) - 一个可扩展的 wiki 框架。依赖于 Kepler 和 [Saci]。[*L]
- [Nanoki] (5.1) - 一个功能齐全的 wiki 和 HTTP/1.1 引擎。[*L]
- [LOona] (5.1) - 小型、快速且可扩展的 CMS,具有类似 wiki 的功能。
- [Ophal] (5.1) - 内容管理框架(用于创建 CMS 的框架)。
- Web 浏览器
- [Moonshine] (5.1) - Mozilla Firefox 的嵌入式 Lua 环境。实现为一个 XPI 扩展;允许使用 Lua 代码而不是 Java
Script 开发 Firefox 扩展。 - [Luakit] (5.1) - 一个高度可配置的微型浏览器框架,基于 WebKit? 和 GTK+,可通过 Lua 进行扩展。
- 电子邮件
- [LuaPOP3] (5.0) - Lua 的 POP3 客户端库。
- [Tethys] (5.1) - 一个简单但可扩展的 SMTP 服务器。旨在避免大多数 SMTP 服务器的配置噩梦。[*L]
- IMAP:[5] 用 Lua 实现的微型 IMAP 服务器(初步)[*L]
- [Lua-POP3] (5.1/5.2/5.3) - Lua 的 POP3 客户端库。
- 聊天/IM/VoIP
- [Verse] (5.1) - Lua 的 Jabber/XMPP 库。
- [Prosody] (5.1) - 一个完全用 Lua(使用常见的库/模块)编写的轻量级 XMPP 服务器。[*L]
- [luamodo] (5.1) - 一个面向对象的 IRC 机器人框架。
- [FreeSWITCH] (5.1) - 一个开源通信框架,用于创建从软电话到软交换机的语音和聊天驱动产品。支持 SIP、H.323、IAX2、XMPP 等。包括会议、交互式语音应答、文本到语音/自动语音识别、PSTN 互连等。与 C/C++、Perl、Python、Lua、Java
Script、Java 和 Mono/.NET 接口。 - [ivrWorx] - VoIP 应用程序原型工具(SIP、MRCP、RTSP 等)。
- [lua-gntp] - Growl Notify Transport Protocol (GNTP) 的实现。
文本处理
- 模式匹配/模板/预处理器
- 标记语言
- 模板
- 数据序列化语言
- JSON
- YAML
- [yaml] (5.1) - LibYAML 到 Lua 的绑定。
- [Syck] (5.1) - Scripters' YAML Cobble-yourself-a-parser Kit。它针对高层解释语言进行了优化,通过直接写入语言的符号表来提高速度。
- Cyan
- [Cyan] - 使用 Cyan 编码将表转换为字符串,反之亦然。
- 另请参阅 LuaXml。
- 二进制到文本编码
- [lascii85] (5.0/5.1/5.2/5.3) - Lua 的 ASCII85[6] 库。
- base64:请参阅 BaseSixtyFour 底部的库。
- [Ascii85] - Ascii85[6] 编码的纯 Lua 实现。
- [luazen] (5.1+) - 一个小型独立的库,包含 base64 和 base58 编码函数(base58 使用 Bitcoin 字母表)。它还包括低级加密函数(MD5、SHA1、RC4)和压缩函数(LZF)。无依赖。
- 分析
- Unicode
- 另请参阅 StringRecipes。
- [Allen] (5.x) - 用于密集字符串处理的 Lua 库。
- [LuaNLP] (5.x) - Lua 的自然语言处理库。[*L]
表处理
数据库访问
- 请参阅 DatabaseAccess。
AI
- 请参阅 ArtificialIntelligence。
- [Jumper] (5.1) - 用于 2D 网格游戏的寻路库,使用 Jump Point Search 算法。
数学
- 高精度/任意精度
- [lmathx] (5.1/5.2/5.3) - 基于 C99 的标准数学库的扩展。
- [lcomplex] (5.1/5.2/5.3) - 基于 C99 的复数数学运算库。
- [linterval] (5.1/5.2) - 基于 [PROFIL/BIAS] 的区间算术库;实现了该类型的区间类型、向量和矩阵。包括隐式曲线绘图仪。
- [lgpc] (5.0/5.1/5.2/5.3) - 基于 [GPС](通用多边形剪裁库)的布尔多边形运算库。
- [Numeric Lua] (5.1) - Lua 的数字包,支持复数、多维矩阵、随机数生成和特殊函数。大多数例程是 Netlib 库的包装器。
- LuaMatrix [7] (5.1) - 纯 Lua 中的矩阵运算。[*L] 还包括复数库。
- [complex] - 纯 Lua 编写的复数库。
- [gslshell] - 绑定到 GNU Scientific Library (GSL) 的库和 Lua Shell 接口,包括矩阵、向量和各种数学例程。
- [Lunum] - Lua 的快速数字数组,完全用 C 实现。数组的行为类似于 numpy 数组,并支持所有数字数据类型,包括 bool 和 complex。数组切片正在开发中。作为 Lua 模块(共享库)或简单 C API 在应用程序中静态嵌入。在分布式内存计算集群的物理研究中得到积极使用。
- [SOR](5.x) - 解线性方程组的库。
- [SciLua] (LuaJIT 2.0) - 纯 LuaJIT 库,用于通用科学计算。涵盖向量和矩阵代数、随机(和伪随机)数生成器、函数最小化、分布、特殊数学函数等。
- [Rclient] (LuaJIT 2.0) - 纯 LuaJIT 库,可在 LuaJIT 和 R 之间交换数据结构,并直接从 LuaJIT 执行任意 R 程序。
- [GALua] (5.2) - 为 Lua 编程语言添加了多向量数据类型。熟悉几何代数的人可能会对这个模块感兴趣。
- [Lua Numerical Algorithms] - 纯 LuaJIT 库,提供矩阵运算(主要通过 LAPACKE 和 FFI)、函数最小化、积分、FFT、复数等。
- [luapower/affine2d] - 2D 仿射变换。
- [luapower/eq] - 二次和三次方程求解器。
- [Torch] - 科学计算库,广泛支持机器学习算法(需要 LuaJIT 和 LuaRocks)。
- [vectorial] - 纯 Lua 5.3 库,用于基本向量处理。目前支持 2D 和 3D 向量,未来会支持 n 维向量。
- [lua-linear] (5.1/5.2/5.3/5.4) - 为 Lua 编程语言提供全面的线性代数和统计支持,包括使用 BLAS 和 LAPACK。
压缩
加密
二进制结构/位运算符
持久化/序列化
POSIX / 文件系统 / Linux
- FileSystemOperations - 文件系统操作库
- [lalarm] (5.0/5.1/5.2/5.3) - 基于信号和SIGALRM的Lua报警库。
- [lposix] (5.0/5.1) - Lua的POSIX库。
- [luaposix] (5.1/5.2) - 另一个Lua的POSIX库。
- [luainotify] (5.1) - Linux inotify子系统的Lua接口。
- [linotify] (5.0/5.1) - inotify的另一个Lua接口。
- [Flu] (5.1) - [FUSE]的Lua绑定。
- LuaApr提供对Apache Portable Runtime (APR)库支持的大多数文件系统操作的便携式访问。
- [v4l-lua] (5.1) - V4L2摄像头的Lua绑定
- [lunix] (5.1/5.2/5.3) - 对常见的Unix接口(包括POSIX和扩展)的绑定,并在原生不可用时提供仿真。例如,BSD的getifaddrs可以在所有支持的平台上工作,即使它们在其libc中没有原生支持。POSIX的clock_gettime和sigtimedwait在所有平台上都得到支持,尽管其中一些平台对其中一个或另一个的原生实现有所欠缺。在Linux/glibc、OS X、Solaris、AIX、FreeBSD、NetBSD和OpenBSD上开发和维护。
Shell
Logging
Internationalization (i18n)
Documentation
- [doctest] (5.1) - 一个旨在通过示例集成文档和测试的模块。灵感来自python-doctest。 [*L]
Testing
Events / Queueing / Threading / Parallelism
Calling interfaces
Sandboxing
Hardware
其他
待删除
以下项目建议从此页面删除,因为它们不是库或绑定,而是Lua的使用。
- BlitzLua (5.1) - 一个用BlitzMAX编写的Lua运行时环境,可以访问许多BlitzMAX/MaxGUI模块(包括2D和3D图形、声音和网络)。(注意:当前链接指向此维基(在此列表中通常是个坏主意),但一旦该包拥有自己的网站,情况就会改变)
- [Crank Storyboard] - 针对嵌入式平台上的图形系统(SDL、帧缓冲、Direct FB、Win32 DGI、QNX TDK、Khronos OpenVG/OpenGL等)的引擎和开发环境。使用Lua进行逻辑和粘合。 [8]。商业。
脚注:[*L]纯Lua实现(无C)
RecentChanges · preferences
编辑 · 历史
最后编辑于2024年1月9日,格林威治时间上午8:15 (差异)