Servidor de mensagens instantâneas open source em Go para integrar a apps próprios, com SDK, REST API e webhooks.
LockGit/gochat
Backend leve de mensagens instantâneas, escrito em Go puro, com suporte a mensagens privadas e transmissões para salas via WebSocket e TCP.
- Estrelas
- 2,937
- Forks
- 475
- Issues abertas
- 30
- Último commit
- há 2 meses
O que é?
gochat é um sistema de mensagens instantâneas implementado em Go puro. Ele oferece suporte a mensagens privadas entre duas pessoas e a transmissões em salas de chat, com as camadas se comunicando via RPC para permitir o escalonamento horizontal de cada uma.
Os clientes podem se conectar via WebSocket ou TCP, e as mensagens são trocadas entre os dois tipos de conexão. Os serviços descobrem uns aos outros por meio do etcd, o Redis funciona como fila de mensagens e camada de armazenamento, e o sqlite3 com GORM é usado para os dados de usuários na configuração de demonstração. Esse banco pode ser substituído por outro banco de dados relacional, e a fila pode ser trocada por uma solução mais robusta, como Kafka ou RabbitMQ.
O projeto é dividido nos módulos api, connect, logic, task e site, cada um iniciado separadamente com um único binário. Uma configuração Docker e um script de execução iniciam as dependências e uma sala de chat de demonstração; também há um front-end separado em TypeScript e React.
Recursos principais
- 01Mensagens privadas e transmissões para salas
- 02Conexões de clientes via WebSocket e TCP, com entrega entre protocolos
- 03Descoberta de serviços via etcd e comunicação RPC entre as camadas
- 04Fila de mensagens baseada em Redis, que pode ser substituída por Kafka ou RabbitMQ
- 05Configuração das dependências e da demonstração com um único comando Docker
Casos de uso
- Aprender como um servidor de chat com escalonamento horizontal é estruturado em Go
- Prototipar um recurso interno de chat ou mensagens
- Criar um backend de mensagens instantâneas personalizado sobre a lógica de negócios existente
Início rápido
- 1
Clone o repositório
git clone git@github.com:LockGit/gochat.git - 2
Inicie a demonstração com Docker usando o script incluído (endereço local)
cd gochat && sh run.sh dev 127.0.0.1 - 3
Abra http://127.0.0.1:8080 em um navegador para entrar na sala de bate-papo
Antes de usar
- Sem usar Docker, são necessários etcd e Redis, além da inicialização manual de vários módulos.
- As mensagens não são armazenadas em um banco de dados; apenas são retransmitidas pela fila.
- O README informa que a demonstração de exemplo não habilita o canal TCP.
Em coleções
Tópicos
Perguntas frequentes
- O que é gochat?
- Backend leve de mensagens instantâneas, escrito em Go puro, com suporte a mensagens privadas e transmissões para salas via WebSocket e TCP. gochat é um sistema de mensagens instantâneas implementado em Go puro. Ele oferece suporte a mensagens privadas entre duas pessoas e a transmissões em salas de chat, com as camadas se comunicando via RPC para permitir o escalonamento horizontal de cada uma.
- gochat é gratuito? Qual é a licença?
- gochat é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- gochat ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de gochat foi em 1 de set. de 2026.
- Para que posso usar gochat?
- Aprender como um servidor de chat com escalonamento horizontal é estruturado em Go Prototipar um recurso interno de chat ou mensagens Criar um backend de mensagens instantâneas personalizado sobre a lógica de negócios existente
- Como instalar gochat?
- Clone o repositório: git clone git@github.com:LockGit/gochat.git Inicie a demonstração com Docker usando o script incluído (endereço local): cd gochat && sh run.sh dev 127.0.0.1 Abra http://127.0.0.1:8080 em um navegador para entrar na sala de bate-papo
- Onde consigo gochat?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/LockGit/gochat
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Servidor de mensagens instantâneas auto-hospedável em Go, com clientes nativos para Android, iOS e web, além de APIs JSON/websocket e gRPC.
Backend em Go para o OCTO, um ambiente de trabalho aberto onde pessoas e agentes de IA colaboram, com APIs REST e WebSocket e mensagens em tempo real baseadas no WuKongIM.
Chat de equipe auto-hospedado no Cloudflare Workers, com mensagens em tempo real, integração bidirecional com o Telegram e mensagens e arquivos criptografados no servidor.
Os serviços e as bibliotecas de backend em Rust que dão suporte à plataforma de chat Stoat, incluindo a REST API, o servidor de eventos WebSocket e o servidor de arquivos.
Servidor de chat baseado em uWebSockets.js que oferece uma alternativa ao XMPP, com backend em Node.js, MongoDB e Redis.