ada: LuaJIT FFI bindings para Ada — parser de URL rápido e compatível com WHATWG
Instalação
Se você ainda não configurou a assinatura do repositório RPM, inscreva-se. Em seguida, você pode prosseguir com os seguintes passos.
CentOS/RHEL 7 ou 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
Para usar esta biblioteca Lua com NGINX, certifique-se de que o nginx-module-lua está instalado.
Este documento descreve o lua-resty-ada v1.1.0 lançado em 03 de setembro de 2024.
lua-resty-ada implementa um binding FFI do LuaJIT para Ada — parser de URL rápido e compatível com WHATWG.
Sinopse
local ada = require("resty.ada")
local url = assert(ada.parse("https://www.7‑Eleven.com:1234/Home/../Privacy/Montréal"))
print(tostring(url))
-- imprime: https://www.xn--7eleven-506c.com:1234/Privacy/Montr%C3%A9al
print(tostring(url:clear_port())) -- há muitos outros métodos
-- imprime: https://www.xn--7eleven-506c.com/Privacy/Montr%C3%A9al
url:free()
-- libera explicitamente a memória sem esperar pelo coletor de lixo
-- Também há uma API estática
print(ada.get_href("https://www.7‑Eleven.com:1234/Home/../Privacy/Montréal"))
-- imprime: 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"))
-- imprime: https://www.xn--7eleven-506c.com/Privacy/Montr%C3%A9al
API
A documentação da API gerada pelo LDoc pode ser visualizada em bungle.github.io/lua-resty-ada.
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-ada.