ojhub-opengo - открытая реализация бекенда Object Hub на Go, которая уже вытеснила nodejs бекенд и работает в продакшне.
Object hub - платформа для Object Show Community, с упором на собственный вики движок и СМИ. Мы намеренно отказались от популярных веб стандартов в пользу производительности сайта - в теории Интерфейс клиента Object hub работает в стабильные 60 фпс даже на слабых Chromebook'ах (потому что весь движок был написан на Athlon 64 X2)!
nodejs 150 мегабайт озу idle, openGo 13 мегабайт idle, как говорится - думайте.
Поправка от середины сентября - openGo стал Standalone, но его idle все ещё 25 мегабайт
openGo был сделан за 8 дней на основе чудом найденного прототипа на почти мёртвом HDD.
За эти 8 дней я навайбкодил 50% Object hub API и выкатил его в продакшн.
Так как php/node бекенды этого сайта работают на FreeBSD мы намеренно отказались от излишей инфраструктуры с целью тотальной портируемости этой реализации бекенда.
Движок Object hub исторически создавался ещё когда мне (MIOBOMB) было 15 лет и я почти не понимал английский, причины по которым комментарии в коде и документации все ещё пишутся на русском:
- Исторический пласт (всё везде итак на русском)
- Я все ещё не силён в английском
- Сохранение относительно единого стиля везде
- Go 1.26
- Mariadb 11.8, но можно любую другую современную версию
- redis 8.8.0, но можно аболютно любой другой драйвер (см. InitRedis функцию) или вообще не использовать RamDB
- Минимальное потребление ресурсов
- Высокая портируемость
- 100% совместимость с legacy-php
- 100% совместимость с поддерживаемыми версиями object hub
- Нормальная и задокументированная инфраструктура
- MaxMind GeoLite2
- Продакшн? да
- Loader 1.10? Уже 1.30
- Полезные ссылки? ну, сори я ещё не силён в организации репозиториев
- Сколько api готово? 92 / 97 эндпоинтов
- Что будет портировано следующим? вики файлы
- Что будет исправлено дальше? добавлю redis там где поленился потому что "ай нагрузка всё равно никакая"
- Что я сделаю когда настроение будет? install.sh скрипт, с поддержкой freebsd, debian linux, termux