Привет, ЛОР.
Возникла потребность в минималистичной библиотечке, с которой можно удобно разворачивать мини-веб-сервисы «на ходу», беглым поиском найдено не было.
Поэтому был наваян следущий говнокод: httрs://pastebin.com/CRFz3n2a https://pastebin.com/WN0Adqyc
Конечно же, в качестве недоязычка был выбран горячо любимый Lua (5.2+ либо luajit)
Из зависимостей — только cqueues.
apt install luajit lua-cqueues
Я понимаю, что ЛОР это не говнокод.ру и не моя личная армия, но надеюсь на
пример использования:
local server = require 'http-server'
server:router{
{
['/'] = function(req)
return 'it works.'
end
},
{
'GET', ['/hello'] = function(req)
return 'hello, elon musk.'
end
},
{
'POST', ['/post'] = function(req)
return 'oh, you posted ' .. (req.body or '')
end
},
}
server:listen{host='0.0.0.0', port=8000}
server:start()
тестирование производительности (10000 клиентов, loader.io): https://imgur.com/vjxZMBl.png (потребление памяти ~7MB)