Сервер мгновенных сообщений с открытым исходным кодом на Go для интеграции в приложения; включает SDK, REST API и вебхуки.
LockGit/gochat
Лёгкий backend для мгновенных сообщений на чистом Go с поддержкой личных и групповых рассылок через WebSocket и TCP.
- Звёзды
- 2,937
- Форки
- 475
- Открытые issues
- 30
- Последний коммит
- 2 месяца назад
Что это?
gochat — система мгновенных сообщений, реализованная на чистом Go. Она поддерживает личную переписку между двумя пользователями и рассылку сообщений в чатах; уровни системы взаимодействуют по RPC, поэтому каждый из них можно масштабировать горизонтально.
Клиенты могут подключаться по WebSocket или TCP, а сообщения передаются между соединениями обоих типов. Сервисы находят друг друга через etcd, Redis используется как очередь сообщений и слой хранения, а для данных пользователей в демонстрационной конфигурации применяются sqlite3 и GORM. Их можно заменить другой реляционной базой данных или более мощной очередью, например Kafka или RabbitMQ.
Проект разделён на модули api, connect, logic, task и site, каждый из которых запускается отдельно одним бинарным файлом. Docker-конфигурация и скрипт запуска поднимают зависимости и демонстрационную чат-комнату; также доступен отдельный frontend на TypeScript и React.
Ключевые возможности
- 01Личные сообщения и рассылка сообщений в чатах
- 02Подключение клиентов по WebSocket и TCP с доставкой сообщений между протоколами
- 03Обнаружение сервисов через etcd и взаимодействие уровней по RPC
- 04Очередь сообщений на базе Redis, которую можно заменить на Kafka или RabbitMQ
- 05Настройка зависимостей и демонстрации через Docker одной командой
Сценарии использования
- Изучение архитектуры горизонтально масштабируемого чат-сервера на Go
- Создание прототипа внутреннего чата или функции обмена сообщениями
- Разработка собственного IM-backend на основе существующей бизнес-логики
Быстрый старт
- 1
Клонируйте репозиторий
git clone git@github.com:LockGit/gochat.git - 2
Запустите демо в Docker с помощью прилагаемого скрипта (локальный адрес)
cd gochat && sh run.sh dev 127.0.0.1 - 3
Откройте http://127.0.0.1:8080 в браузере, чтобы войти в чат
Что важно знать
- При запуске без Docker требуются etcd и Redis, а также ручной запуск нескольких модулей.
- Сообщения не сохраняются в базе данных, а только передаются через очередь.
- В README указано, что в демонстрационном примере TCP-канал не включён.
В подборках
Темы
Частые вопросы
- Что такое gochat?
- Лёгкий backend для мгновенных сообщений на чистом Go с поддержкой личных и групповых рассылок через WebSocket и TCP. gochat — система мгновенных сообщений, реализованная на чистом Go. Она поддерживает личную переписку между двумя пользователями и рассылку сообщений в чатах; уровни системы взаимодействуют по RPC, поэтому каждый из них можно масштабировать горизонтально.
- gochat можно использовать бесплатно? Какая у него лицензия?
- gochat распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- gochat всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в gochat — 1 сент. 2026 г..
- Для чего можно использовать gochat?
- Изучение архитектуры горизонтально масштабируемого чат-сервера на Go Создание прототипа внутреннего чата или функции обмена сообщениями Разработка собственного IM-backend на основе существующей бизнес-логики
- Как установить gochat?
- Клонируйте репозиторий: git clone git@github.com:LockGit/gochat.git Запустите демо в Docker с помощью прилагаемого скрипта (локальный адрес): cd gochat && sh run.sh dev 127.0.0.1 Откройте http://127.0.0.1:8080 в браузере, чтобы войти в чат
- Где скачать gochat?
- Исходный код и инструкции по установке — на GitHub: https://github.com/LockGit/gochat
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Самостоятельно размещаемый сервер мгновенных сообщений на Go с нативными клиентами для Android, iOS и веба, а также API JSON/websocket и gRPC.
Go-бэкенд OCTO — открытого рабочего пространства для совместной работы людей и AI-агентов с REST- и WebSocket API и обменом сообщениями в реальном времени на базе WuKongIM.
Командный чат для самостоятельного размещения на Cloudflare Workers: обмен сообщениями в реальном времени, двусторонний мост с Telegram и серверное шифрование сообщений и файлов.
Rust-сервисы и библиотеки, лежащие в основе чата Stoat: REST API, WebSocket-сервер событий и файловый сервер.
Чат-сервер на uWebSockets.js — альтернатива XMPP с бэкендом на Node.js, MongoDB и Redis.