Перейти к основному содержимому

5.15. Экосистема и фреймворки

Разработчику Архитектору

Экосистема и фреймворки

Основное расширение для Lua-скриптов — .lua. Однако есть и другие форматы, используемые в специфических контекстах:

  • .luac — скомпилированный байт-код Lua. Такие файлы создаются утилитой luac и могут быть загружены напрямую через loadfile() или dofile(). Они позволяют скрыть исходный код (частично) и ускорить запуск (пропускается этап компиляции).
  • .luau — расширение, используемое в Roblox Studio для скриптов на Luau (диалект Lua). Хотя синтаксически совместимо с Lua 5.1, .luau поддерживает дополнительные возможности: аннотации типов, строгую проверку, модернизированную работу с событиями.

Официальный сайт: https://www.lua.org

Здесь находится исходный код Lua, документация, скачиваемые архивы для всех платформ, информация о лицензии. Lua не поставляется с установщиком «из коробки» в большинстве операционных систем, поэтому его нужно устанавливать вручную или через пакетные менеджеры. Lua часто устанавливается как часть другого ПО (например, Neovim, OpenResty), поэтому может быть доступен без явной установки.

Для более простой работы можно использовать онлайн-инструменты, к примеру, простая песочница OneCompiler:

https://onecompiler.com/lua/

Так проще. Не понадобится ничего настраивать и устанавливать. Но не получим доступ к файловой системе, внешним библиотекам или C API. VS Code — один из самых популярных редакторов для работы с Lua благодаря мощным плагинам. Там есть и подсветка синтаксиса, и автодополнение, и навигация по коду. Также есть интеграция с Lua LSP (Language Server Protocol, который предоставляет подсказки, ошибки, переход к определению), имеется поддержка Luau. В settings.json можно указать версию Lua, пути к библиотекам, правила линтинга.

ZeroBrane Studio - специализированная легковесная IDE для Lua, идеально подходящая для обучения и игровой разработки. Там есть отладка, поддержка множества движков (LÖVE, Corona SDK, Gideros, Moai, WoW), встроенный терминал, консоль вывода, простой интерфейс, минимальные требования.

Roblox Studio, официальный редактор для создания игр в Roblox. Сейчас он использует специальный диалект Luau. Здесь имеется встроенный редактор скриптов с подсветкой синтаксиса и базовой проверкой типов, поддержка .luau-файлов, автодополнение, анализ типов, предупреждения, live-reload (изменения применяются мгновенно в тестовой игре). Скрипты здесь делятся между ServerScriptService и StarterPlayerScripts (клиент/сервер). Важно учесть, что это закрытая экосистема. Нельзя запустить обычный Lua-скрипт вне Roblox, но все принципы остаются теми же.

Lua стал основой для множества фреймворков, особенно в области игровой разработки и веб-серверов.

LÖVE (Love2D) - 2D-движок для создания игр на Lua, кроссплатформенный, имеет простой API (love.load(), love.update(dt), love.draw()), используется инди-разработчиками и для обучения.

Defold - профессиональный 2D/3D движок от King (создателей Candy Crush). Онлайн-редактор, сборка под мобильные платформы, WebGL.

Solar2D (ранее Corona SDK) - мобильный фреймворк для 2D-игр и приложений, пишется на Lua, собирается под iOS, Android, Windows.

OpenResty - платформа на основе Nginx и LuaJIT. Позволяет писать бизнес-логику (аутентификация, роутинг, рейт-лимиты) прямо внутри веб-сервера, используется в Alibaba, Cloudflare, Pinterest.

Как у Python есть pip, у Ruby — gem, у Lua есть LuaRocks.

Это менеджер установки библиотек. Он поддерживает установку из Git, локальных файлов, LuaDist. Пакет позволяет установить библиотеку через консоль:

luarocks install luasocket
luarocks install dkjson