Перейти к содержанию

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

Чтобы использовать эту библиотеку Lua с NGINX, убедитесь, что nginx-module-lua установлен.

Этот документ описывает lua-resty-ada v1.1.0, выпущенную 3 сентября 2024 года.


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

Документацию по API, сгенерированную LDoc, можно просмотреть на bungle.github.io/lua-resty-ada.

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-ada.