跳转至

ada: LuaJIT FFI 绑定到 Ada — 符合 WHATWG 标准的快速 URL 解析器

安装

如果您尚未设置 RPM 仓库订阅,请 注册。然后您可以继续以下步骤。

CentOS/RHEL 7 或 Amazon Linux 2

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-ada

CentOS/RHEL 8+、Fedora Linux、Amazon Linux 2023

dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-ada

要在 NGINX 中使用此 Lua 库,请确保已安装 nginx-module-lua

本文档描述了 lua-resty-ada v1.1.0,于 2024 年 9 月 03 日发布。


lua-resty-ada 实现了 LuaJIT FFI 绑定到 Ada — 符合 WHATWG 标准的快速 URL 解析器

概述

local ada = require("resty.ada")

local url = assert(ada.parse("https://www.7‑Eleven.com:1234/Home/../Privacy/Montréal"))

print(tostring(url))
-- 打印: https://www.xn--7eleven-506c.com:1234/Privacy/Montr%C3%A9al

print(tostring(url:clear_port())) -- 还有许多其他方法
-- 打印: https://www.xn--7eleven-506c.com/Privacy/Montr%C3%A9al

url:free()
-- 明确释放内存,而不等待垃圾回收器

-- 还有一个静态 API

print(ada.get_href("https://www.7‑Eleven.com:1234/Home/../Privacy/Montréal"))
-- 打印: https://www.xn--7eleven-506c.com:1234/Privacy/Montr%C3%A9al

print(ada.clear_port("https://www.7‑Eleven.com:1234/Home/../Privacy/Montréal"))
-- 打印: https://www.xn--7eleven-506c.com/Privacy/Montr%C3%A9al

API

可以在 bungle.github.io/lua-resty-ada 查看 LDoc 生成的 API 文档。

GitHub

您可以在 nginx-module-ada 的 GitHub 仓库 中找到此模块的其他配置提示和文档。