Repolode
joewalnes

joewalnes/websocketd

Una pequeña herramienta CLI que convierte cualquier programa STDIN/STDOUT en un servidor WebSocket, como inetd para WebSockets.

Estrellas
17,459
Forks
1,009
Issues abiertos
1
Último commit
hace 2 meses

¿Qué es?

websocketd permite exponer un programa de línea de comandos existente mediante WebSocket, sin escribir código de red. Cuando se conecta un cliente, inicia el programa, reenvía cada mensaje entrante a STDIN seguido de un salto de línea y envía al cliente, como mensaje WebSocket, cada línea que el programa escribe en STDOUT. Cuando se cierra la conexión, se detiene el proceso.

Como la interfaz se basa únicamente en los flujos estándar, el mismo script se ejecuta sin cambios desde una terminal, en una canalización de shell o como endpoint WebSocket. El proyecto se distribuye como un único ejecutable para Linux, macOS y Windows. Además de servir WebSockets, incluye un servidor de archivos estáticos y un servidor CGI, expone variables de entorno CGI que describen la solicitud y ofrece una consola de desarrollo integrada para probar frames en el navegador.

Permite escuchar en un socket de dominio Unix, reenviar STDERR opcionalmente con etiquetas JSON y finalizar todo el grupo de procesos cuando un cliente se desconecta.

Funciones clave

  • 01Convierte cualquier programa que lea STDIN y escriba en STDOUT en un endpoint WebSocket.
  • 02Se distribuye como un único ejecutable para Linux, macOS y Windows, sin dependencias externas.
  • 03Pasa los detalles de las solicitudes HTTP a los scripts mediante variables de entorno CGI.
  • 04Incluye un servidor de archivos estáticos y un servidor CGI clásico.
  • 05Puede escuchar en sockets TCP o de dominio Unix y reenviar STDERR de forma opcional.
  • 06Ofrece una consola de desarrollo integrada para enviar e inspeccionar frames.

Casos de uso

  • Crear un prototipo de interfaz web para un script de shell o una herramienta CLI existentes.
  • Transmitir en directo datos del sistema, como registros o estadísticas de vmstat, a un panel web.
  • Crear rápidamente un REPL en el navegador para un intérprete de línea de comandos.
  • Probar cómo gestiona los mensajes WebSocket un script antes de escribir un cliente JavaScript.

Inicio rápido

  1. 1

    Instalar en macOS con Homebrew

    brew install websocketd
  2. 2

    O descargar el ejecutable independiente para tu sistema operativo desde la página de instalación

  3. 3

    Guardar un script como count.sh y ejecutarlo como servidor WebSocket en el puerto 8080

    websocketd --port=8080 ./count.sh

Antes de usarlo

  • La instalación con Homebrew se resuelve con un solo comando únicamente en macOS; en otros sistemas hay que descargarlo manualmente.

Temas

Preguntas frecuentes

¿Qué es websocketd?
Una pequeña herramienta CLI que convierte cualquier programa STDIN/STDOUT en un servidor WebSocket, como inetd para WebSockets. websocketd permite exponer un programa de línea de comandos existente mediante WebSocket, sin escribir código de red. Cuando se conecta un cliente, inicia el programa, reenvía cada mensaje entrante a STDIN seguido de un salto de línea y envía al cliente, como mensaje WebSocket, cada línea que el programa escribe en STDOUT. Cuando se cierra la conexión, se detiene el proceso.
¿websocketd es gratuito? ¿Qué licencia tiene?
websocketd es open source bajo la licencia BSD-2-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿websocketd sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de websocketd fue el 7 sept 2026.
¿Para qué puedo usar websocketd?
Crear un prototipo de interfaz web para un script de shell o una herramienta CLI existentes. Transmitir en directo datos del sistema, como registros o estadísticas de vmstat, a un panel web. Crear rápidamente un REPL en el navegador para un intérprete de línea de comandos. Probar cómo gestiona los mensajes WebSocket un script antes de escribir un cliente JavaScript.
¿Cómo se instala websocketd?
Instalar en macOS con Homebrew: brew install websocketd O descargar el ejecutable independiente para tu sistema operativo desde la página de instalación Guardar un script como count.sh y ejecutarlo como servidor WebSocket en el puerto 8080: websocketd --port=8080 ./count.sh
¿Dónde consigo websocketd?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/joewalnes/websocketd

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados