Repolode
joewalnes

joewalnes/websocketd

Uma pequena ferramenta CLI que transforma qualquer programa de STDIN/STDOUT em um servidor WebSocket, como o inetd para WebSockets.

Estrelas
17,459
Forks
1,009
Issues abertas
1
Último commit
há 2 meses

O que é?

websocketd permite disponibilizar um programa de linha de comando existente via WebSocket sem escrever código de rede. Quando um cliente se conecta, a ferramenta inicia o programa, encaminha cada mensagem recebida para o STDIN do programa, seguida de uma quebra de linha, e envia de volta ao cliente, como mensagem WebSocket, cada linha que o programa escreve no STDOUT. Quando a conexão é encerrada, o processo é finalizado.

Como a interface usa apenas os fluxos padrão, o mesmo script roda sem alterações no terminal, em um pipeline de shell ou como endpoint WebSocket. O projeto é distribuído como um único executável para Linux, macOS e Windows. Além de servir via WebSocket, inclui um servidor de arquivos estáticos e um servidor CGI, expõe variáveis de ambiente CGI que descrevem a requisição e oferece um console de desenvolvimento integrado para testar frames no navegador.

É compatível com conexões por Unix domain socket, encaminhamento opcional de STDERR com marcação em JSON e encerramento de todo o grupo de processos quando um cliente se desconecta.

Recursos principais

  • 01Transforma qualquer programa que lê do STDIN e escreve no STDOUT em um endpoint WebSocket.
  • 02É distribuído como um único executável para Linux, macOS e Windows, sem dependências externas.
  • 03Passa detalhes das requisições HTTP para os scripts por meio de variáveis de ambiente CGI.
  • 04Inclui um servidor de arquivos estáticos e um servidor CGI clássico.
  • 05Pode escutar em sockets TCP ou Unix domain sockets e encaminhar STDERR opcionalmente.
  • 06Oferece um console de desenvolvimento integrado para enviar e inspecionar frames.

Casos de uso

  • Criar um protótipo de front-end no navegador para um script de shell ou uma ferramenta CLI existente.
  • Transmitir dados do sistema em tempo real, como logs ou estatísticas do vmstat, para um painel web.
  • Criar rapidamente um REPL no navegador em torno de um interpretador de linha de comando.
  • Testar o tratamento de mensagens WebSocket em um script antes de escrever um cliente JavaScript.

Início rápido

  1. 1

    Instale no macOS com o Homebrew

    brew install websocketd
  2. 2

    Ou baixe o executável único para seu sistema operacional na página de instalação

  3. 3

    Salve um script como count.sh e execute-o como servidor WebSocket na porta 8080

    websocketd --port=8080 ./count.sh

Antes de usar

  • A instalação pelo Homebrew é feita com um único comando apenas no macOS; nos outros sistemas, é preciso baixar manualmente.

Tópicos

Perguntas frequentes

O que é websocketd?
Uma pequena ferramenta CLI que transforma qualquer programa de STDIN/STDOUT em um servidor WebSocket, como o inetd para WebSockets. websocketd permite disponibilizar um programa de linha de comando existente via WebSocket sem escrever código de rede. Quando um cliente se conecta, a ferramenta inicia o programa, encaminha cada mensagem recebida para o STDIN do programa, seguida de uma quebra de linha, e envia de volta ao cliente, como mensagem WebSocket, cada linha que o programa escreve no STDOUT. Quando a conexão é encerrada, o processo é finalizado.
websocketd é gratuito? Qual é a licença?
websocketd é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
websocketd ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de websocketd foi em 7 de set. de 2026.
Para que posso usar websocketd?
Criar um protótipo de front-end no navegador para um script de shell ou uma ferramenta CLI existente. Transmitir dados do sistema em tempo real, como logs ou estatísticas do vmstat, para um painel web. Criar rapidamente um REPL no navegador em torno de um interpretador de linha de comando. Testar o tratamento de mensagens WebSocket em um script antes de escrever um cliente JavaScript.
Como instalar websocketd?
Instale no macOS com o Homebrew: brew install websocketd Ou baixe o executável único para seu sistema operacional na página de instalação Salve um script como count.sh e execute-o como servidor WebSocket na porta 8080: websocketd --port=8080 ./count.sh
Onde consigo websocketd?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/joewalnes/websocketd

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

Projetos relacionados