LuaDirectory > LuaAddons > 库
和
绑定
这是一个用 Lua 实现的库列表,或者用另一种语言(例如 C)实现但具有 Lua 接口的库列表。对于较旧的库和绑定,请参见 LuaAddonsArchive。
模块也可以在 LuaForge 上找到。Lua ModuleReview 旨在整理其中的一些。
注意作者:此页面是 LuaAddons 的一部分——请在更改此列表之前阅读那里的说明。请不要用开放式版本(例如“5.x”)标记条目,因为一旦发布了新的 Lua 版本,它很可能就会不正确。
要在这个页面上列出某样东西,它必须能够被“require”到一个典型的 Lua 应用程序中。以下是不列出内容的示例
- 使用 Lua 进行脚本编写或配置的 XYZ 服务器或应用程序
- 用于 C++ 应用程序的 XYZ 引擎或框架,它可以在 Lua 中进行脚本编写(但不能扩展现有的 Lua 应用程序)
GUI 工具包和图形
音频
网络
通用/低级
- [LuaSocket] (5.0/5.1) - 用于 Lua 中套接字编程的库。
- [LuaSCTP] (5.1/5.2/5.3) - 通过 Lua 发送和接收 SCTP 数据。
- [Nixio] - 用于 Lua 的系统、网络和 I/O 库。
- [Emilua] - 用于 Lua 的另一个系统、网络和 I/O 库。
- [LuaZMQ] - 用于 [ZeroMQ] 发布/订阅、请求/响应、推送/拉取消息传递库的 Lua 绑定。
- [lzmq] (5.1/5.2/5.3) - 用于 [ZeroMQ] 3.x 库的 Lua 绑定。
- [LuaHandlers] - 提供一组基于异步回调的处理程序,用于处理原始 TCP/UDP 套接字、ZeroMQ 套接字或 HTTP 请求。
- [LuaSys] (5.1/5.2) - 另一个用于 Lua 的系统库。(还包含:1) 套接字;2) 事件通知机制;3) win32 东西:注册表、服务;4) 串行通信;5) 线程)。
- [DSAS/DSASC] (5.1) - Dyna
Set 应用程序服务器和客户端,一个简单的 Lua 服务器/客户端网络 API。依赖于 [YAMI]。
- [LuaBER] (5.0) - 简单基本编码规则 ([BER]) 的抽象语法符号一 ([ASN.1]/CCITT X.680, [OSI] 第 6 层) 实现。
- [luaspread] (5.1) - 用于 Spread 组通信系统的 Lua 接口。
- [luadjbdns] (5.1) - 用于 djbdns 和 skadns DNS 客户端库的 Lua 接口。
- [LuaCURL] (5.0/5.1) - 用于 [libcurl] 文件传输库的 Lua 接口。
- [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) - 用于 MPI(消息传递接口)的 Lua 绑定。
- [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 请求(在英特尔赛扬上每秒 40,000 个简单表单请求)。
- [ljndpi] (luajit) - 使用 LuaJIT FFI 的 nDPI 深度数据包检测库绑定。
- [lua-lluv] - libuv 的低级绑定。
特定/应用程序级别
- Web 框架
- CGI/Web 服务器绑定
- Web 服务器
- [Mako 服务器] - Lua 应用程序服务器包括对客户端/服务器 HTTP/HTTPS、(安全) 套接字、客户端/服务器 WebSockets?、MQTT 客户端、WebDAV 服务器和 Lua 服务器页面 (LSP) 的支持,用于创建 Web 应用程序。
- [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 类、Lua 页面,以及用 C 编写的解析器,作为将 HTTP 服务器嵌入应用程序的示例。
- [Turbolua] (5.1) - Web 服务器,允许用 Lua 编写网站。速度快,使用 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 扩展实现;允许 Firefox 扩展使用 Lua 代码而不是 Java
Script 开发。
- [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 通知传输协议 (GNTP) 的实现。
文本处理
- 模式匹配 / 模板 / 预处理
- 标记语言
- 模板
- 数据序列化语言
- JSON
- YAML
- [yaml] (5.1) - Lua 的 LibYAML 绑定。
- [Syck] (5.1) - Scripters' YAML Cobble-yourself-a-parser Kit。它针对高级解释语言进行了优化,通过直接写入语言的符号表来获得速度。
- Cyan
- [Cyan] - 使用 Cyan 编码将表转换为字符串,反之亦然
- 另请参见 LuaXml。
- 二进制到文本编码
- 分析
- Unicode
- 另请参见 StringRecipes。
- [Allen] (5.x) - 用于密集字符串处理的 Lua 库。
- [LuaNLP] (5.x) - 用于 Lua 的自然语言处理库。[*L]
表格处理
数据库访问
- 参见 DatabaseAccess.
人工智能
- 参见 ArtificialIntelligence.
数学
压缩
密码学
二进制结构/位运算
持久化 / 序列化
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) - Lua 与 Linux inotify 子系统的接口。
- [linotify] (5.0/5.1) - Lua 与 inotify 的另一个接口。
- [Flu] (5.1) - Lua 与 [FUSE] 的绑定。
- LuaApr 提供对 Apache Portable Runtime (APR) 库支持的大多数文件系统操作的便携式访问。
- [v4l-lua] (5.1) - Lua 与 V4L2 相机的绑定。
- [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
- [Lush] (5.3) - 用于编写 shell 脚本风格程序的 Lua 模块。功能包括:字符串扩展和子进程管理。
- [NTLua] (5.1) - 用于创建 Windows NT 管理和登录脚本的 Lua 模块和控制台应用程序。
- LuaExpect 列出了著名的 [Expect] 工具的 Lua 实现。
日志记录
- [LuaLogging] (5.1) - 一个简单的 API,用于在 Lua 中使用日志记录功能。[*L*]
- [lua-log] (5.1/5.2/5.3) - 用于 Lua 的异步日志记录库。
- [log4l] (5.1/5.2/5.3) - LuaLogging? 的更新分支,包含多个错误修复。[*L*]
国际化 (i18n)
文档
- [doctest] (5.1) - 一个模块,致力于通过示例集成文档和测试。来自 python-doctest 的想法。[*L*]
测试
事件/排队/线程/并行
调用接口
沙箱
硬件
其他
待删除
以下内容建议从本页删除,因为它们不是库或绑定,而是 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)
最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2024 年 1 月 9 日下午 2:15 GMT (差异)