- 🔬 Минимализм
- 🚀 Асинхронное выполнение сотен или тысяч http запросов в секунду
- 🔒 Поддержка https
- 🙅♂️ Nginx не требуется
- 🐍 Удобная обертка
http_requests.lua, подобна питоновской requests - 📦 Возможность отправки
multipart/form-dataзапросов - 🤖 Идеально для парсеров, телеграм ботов, производительных API библиотек
- Возможность выполнения синхронных запросов
- Легко использовать даже в Garry's Mod
luarocks install lua-requests-async
Дополнительные примеры использования вы можете найти здесь
-- http_async.lua
local http = require("http_async")
http.request({
url = "https://httpbin.org/post?foo=bar",
method = "POST",
body = "body payload",
success = function(code, body, headers)
assert(code == 200)
assert(headers["connection"] == "close")
print(body)
end,
})
require("copas").loop()-- http_requests.lua
local requests = require("http_requests")
requests.get({"https://httpbin.org/get", {key = "val"}}, function(res)
print(res.content)
end)
require("copas").loop()В любом случае в вашем приложении, например в главном файле в конце, должна использоваться одна из следующих конструкций:
-- Выполнит все накопившиеся http запросы и завершит выполнение скрипта
require("copas").loop()
-- Приложение никогда не завершится само по себе
while true do require("copas").step() endПока что документации нет, но каждый файл детально прокомментирован и в них можно найти дополнительные примеры, а также объяснения непонятных моментов. Просто откройте файл и найдите нужную функцию. Можете также воспользоваться примерами
- Добавить на readme список тех, кто использует библиотеку, например git.io/ggram
- Встроить поддержку multipart "из коробки" без необходимости вручную что-то устанавливать
- Добавлять дополнительные методы и возможности из питновского requests
- (?) Сделать базовые функции, которые можно вызвать как в корутинах, так и без них. С коллбеками оставить обертки
- (?) Если реализовать верхнее, то без copas, вероятно, можно было бы обойтись (но есть ли смысл)