Repolode
LockGit

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. 1

    Clone o repositório

    git clone git@github.com:LockGit/gochat.git
  2. 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. 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