Repolode
lxzan

lxzan/gws

Biblioteca minimalista e orientada a eventos de WebSocket para Go, com permessage-deflate e suporte a TCP, KCP e sockets Unix.

Estrelas
1,808
Forks
122
Issues abertas
0
Último commit
mês passado

O que é?

GWS (Go WebSocket) é uma biblioteca de WebSocket para Go baseada em uma interface de eventos enxuta, com callbacks OnOpen, OnMessage, OnClose, OnPing e OnPong. Cada conexão executa sua própria goroutine para conduzir o loop de eventos, mantendo o código da aplicação focado na lógica de negócio e ocultando os detalhes do protocolo.

Além da API básica, oferece um Broadcaster que comprime um frame uma única vez para distribuí-lo a várias conexões, context takeover para permessage-deflate com tamanhos de janela configuráveis e um hook de Dialer para conexões por meio de proxies SOCKS5 ou HTTP. Também pode operar sobre KCP e sockets de domínio Unix, além de oferecer gravações assíncronas não bloqueantes, gravações de segmentos de arquivos e as opções ReadLoop, ReadMessage ou NextReader para ler mensagens.

O projeto busca atender às especificações RFC 6455 e RFC 7692 e informa que passou na suíte de testes Autobahn. É voltado a servidores que mantêm muitas conexões abertas por longos períodos, como gateways, serviços de chat, jogos e serviços de push.

Recursos principais

  • 01API orientada a eventos baseada nos callbacks OnOpen, OnMessage, OnClose, OnPing e OnPong.
  • 02Broadcaster que comprime uma mensagem uma única vez para distribuí-la a várias conexões.
  • 03permessage-deflate com context takeover e tamanhos configuráveis para a janela deslizante.
  • 04Conexões por meio de proxies SOCKS5 ou HTTP usando um Dialer personalizado.
  • 05Opera sobre TCP, KCP e sockets de domínio Unix.
  • 06Gravações assíncronas não bloqueantes e gravação segmentada de arquivos.

Casos de uso

  • Criar backends de chat em tempo real ou mensagens instantâneas em Go.
  • Executar gateways de API ou hubs que mantêm muitas conexões abertas por longos períodos.
  • Enviar atualizações em tempo real ou mensagens pub/sub para clientes de navegador ou aplicativos.
  • Criar clientes WebSocket que se conectam por meio de um proxy SOCKS5.

Início rápido

  1. 1

    Instale a biblioteca com Go

    go get -v github.com/lxzan/gws@latest
  2. 2

    Crie um main.go com o código do Quick Start e execute o servidor na porta 6666

Antes de usar

  • Requer Go 1.18 ou posterior.

Tópicos

Perguntas frequentes

O que é gws?
Biblioteca minimalista e orientada a eventos de WebSocket para Go, com permessage-deflate e suporte a TCP, KCP e sockets Unix. GWS (Go WebSocket) é uma biblioteca de WebSocket para Go baseada em uma interface de eventos enxuta, com callbacks OnOpen, OnMessage, OnClose, OnPing e OnPong. Cada conexão executa sua própria goroutine para conduzir o loop de eventos, mantendo o código da aplicação focado na lógica de negócio e ocultando os detalhes do protocolo.
gws é gratuito? Qual é a licença?
gws é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
gws ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de gws foi em 11 de set. de 2026.
Para que posso usar gws?
Criar backends de chat em tempo real ou mensagens instantâneas em Go. Executar gateways de API ou hubs que mantêm muitas conexões abertas por longos períodos. Enviar atualizações em tempo real ou mensagens pub/sub para clientes de navegador ou aplicativos. Criar clientes WebSocket que se conectam por meio de um proxy SOCKS5.
Como instalar gws?
Instale a biblioteca com Go: go get -v github.com/lxzan/gws@latest Crie um main.go com o código do Quick Start e execute o servidor na porta 6666
Onde consigo gws?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lxzan/gws

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados