Как обслуживать страницы / сценарии lua простым, безболезненным способом? - PullRequest
4 голосов
/ 19 декабря 2011

С некоторых пор я хорошо использую язык программирования Lua для всех видов сценариев, и я хочу остаться с ним (это мой язык Sixt или что-то в этом роде). Но я не могу найти решение для создания очень простых веб-приложений на языке lua, что очень расстраивает.

Я пробовал WSAPI, Orbit, mongrel2 и tir, пытаясь создать простую и понятную систему для обслуживания некоторого очень простого lua CGI, но я потерпел неудачу, она всегда оказывается в системе с тоннами зависимостей, а не переносимой, и вкраплен во многих файлах и dir и subdirs ... Я даже пытался изменить наноки, тот же результат. Конечно, я кое-что узнал, но я в том же положении, в котором находился, когда начинал. Lua, кажется, не дружелюбен в области веб-разработки.

В django, web2py или php я могу создавать простые приложения за три минуты. Но я раздуваю простой скрипт / функциональность с десятками файлов. Или я должен использовать язык, который ненавижу умеренно (php).

Мне нужно что-то, что будет мешать мне, например, web.py, cherrypy или pow для ruby, но в lua.

Я скомпилировал haserl, но не знаю, как его использовать, поскольку в нем отсутствует документация (к сожалению, распространенная проблема в мире lua). mod_lua / apache, может быть хорошо, но я не нашел страницу во всем интернете с некоторыми примерами использования. То же самое для mod_magnet в lighttpd и nginx + lua.

Я начинаю чувствовать разочарование. Я не нуждаюсь в серверах с низкой скоростью на миллионах пользователей, мне нужно обслуживать простой динамический контент lua через сеть. Который я не думаю, что должен требовать ракетного ученого ...

Итак, как бы вы поступили? Есть ли где-нибудь минимальный, простой веб-сервер, поддерживающий стандартные cgi в lua? Что-то наподобие «включай и работай» и позволяющее нам с тобой сконцентрироваться на том, что делает сценарий, вместо того, чтобы делать простые вещи абсурдно сложными злыми путями?

PS: Моя среда - linux.

Ответы [ 4 ]

5 голосов
/ 20 декабря 2011

Вы слышали о Лувит ? Это в основном NodeJS в Lua

Официальная домашняя страница Luvit

Github Repo

Простой скрипт будет выглядеть так:

local HTTP = require("http")

HTTP.create_server("0.0.0.0", 8080, function (req, res)
  local body = "Hello world\n"
  res:write_head(200, {
    ["Content-Type"] = "text/plain",
    ["Content-Length"] = #body
  })
  res:finish(body)
end)

print("Server listening at http://localhost:8080/") 

Здесь - оригинальный пост создателя.

1 голос
/ 11 ноября 2013

Попробуйте Civetweb , это небольшой, мощный и встраиваемый веб-сервер.Он может обслуживать страницы lua и даже имеет встроенную поддержку sqlite, поэтому вы можете создать базу данных для своего веб-приложения.Он также поддерживает cgi, как вы и просили.Двоичные файлы доступны на SourceForge .

1 голос
/ 20 декабря 2011

Я хотел бы указать на библиотеку CGI, которую я написал для Lua, которая решает именно те проблемы, которые вы назвали - зависимости.

LunarCGI, по своей сути, всего 3 файла (требуются только файлы Lunar * .lua), поддерживающих шаблоны HTML (и даже простую загрузку файлов, хотя он не поддерживает двоичные файлы [пока!]).

Дайте ему попытку: https://github.com/beelzebub/lunarcgi

0 голосов
/ 20 декабря 2011

Если написание кода является вашей основной проблемой, Orbit также поставляется с Lua Pages , что похоже на использование php (поэтому вы используете встроенный код в html).

...