SNET – сетевой интерфейс для Lua поверх UDP
Сетевой модуль для Lua, выросший из мультиплеера SL:MP: UDP с подтверждением доставки и приоритетами пакетов.
SNET – сетевой модуль для Lua, который работает поверх UDP через LuaSocket. Гайд по нему я опубликовал на BLAST.HK 24 сентября 2020 года. Библиотека выросла из сетевой части мультиплеера SL:MP.

Что он добавляет к UDP
UDP быстрый, но ничего не гарантирует: пакеты теряются и приходят не по порядку. Игре нужна низкая задержка, но и терять ключевые события нельзя. Поэтому в SNET есть подтверждение доставки для важных пакетов и приоритеты: что-то можно отправить «как получится», а что-то должно дойти обязательно. Ограничения на число клиентов в самой библиотеке нет.
Где работает
- LuaJIT на Windows и Linux – для серверов;
- MoonLoader – для клиентских скриптов в GTA: San Andreas.
Протокол одинаковый на клиенте и на сервере, так что сетевой мод можно написать целиком на Lua, будь то чат, синхронизация или свой мультиплеер.
Порты
Сообщество сделало порт на Node.js (node-snet), был ещё экспериментальный порт на Go.
Частые вопросы
Как SNET связан с SL:MP?
SNET вырос из сетевой части мультиплеера SL:MP – в описании проекта SL:MP прямо назван прародителем SNET.
Есть ли порты SNET на другие языки?
Да, сообщество сделало порт на Node.js (node-snet), также существовал экспериментальный порт на Go.