|
Опубликован открытый проект MedusaGo, развивающий реализацию серверной части платформы для создания интернет-магазинов Medusa на языке Go (оригинальная платформа Medusa написана на TypeScript и работает на Node.js). MedusaGo совместим с Medusa v2 на уровне API (базовая версия 2.22.4), поэтому штатная панель управления Medusa, библиотека @medusajs/js-sdk и существующие витрины работают с ним без изменений. Код распространяется под лицензией MIT.
MedusaGo использует ту же схему базы данных для PostgreSQL, что и Medusa, поэтому его можно запустить поверх БД уже работающего магазина на Node.js. Обратный переход тоже возможен. Из зависимостей нужны только Go 1.26+, PostgreSQL и, при желании, Redis. Node.js требуется только для витрины на Next.js и для доработки админ-панели. Компоненты Enterprise Edition (RBAC, SSO) в проект не входят. Совместимость проверена с использованием более 2600 записанных запросов в 96 сценариях, которые отправляются в обе реализации, после чего коды ответов, заголовки, cookie и тела ответов сравниваются побайтово, сравнивается содержимое БД и проверяется поведение модулей и слоя Query.
Структура репозитория повторяет монорепозиторий Medusa: каждому файлу route.ts соответствует route.go. Портированы модули каталога, корзины, заказов, платежей, цен, промоакций, складов, доставки, налогов, авторизации и другие, а также движок workflow (in-memory и на Redis). Сейчас в проекте около 1400 файлов и 177 тыс. строк кода на Go. Исходные JavaScript-пакеты (админ-панель, дизайн-система, js-sdk) синхронизируются с upstream без изменений. Для создания нового проекта предлагается утилита create-medusago-app, аналогичная утилите create-medusa-app. Команды CLI повторяют Medusa.
|