Una CLI minimalista en Rust que expone un puerto TCP local a través de un servidor remoto para que los servicios de localhost sean accesibles desde Internet.
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
Instalar en macOS con Homebrew
brew install websocketd - 2
O descargar el ejecutable independiente para tu sistema operativo desde la página de instalación
- 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
Framework de networking multiplataforma, no bloqueante y orientado a eventos, escrito en Swift para crear servidores y clientes de protocolos de alto rendimiento, similar a Netty.
Herramienta para Windows que combina varios adaptadores de red (Ethernet, Wi-Fi, hotspot y tethering USB) para repartir las descargas entre varias conexiones.
Proxy HTTP interactivo con capacidad para interceptar TLS e interfaces de consola, línea de comandos y web para inspeccionar tráfico HTTP/1, HTTP/2 y WebSocket.
Framework web rápido, minimalista y sin imponer criterios para Node.js, pensado para crear aplicaciones web y API HTTP.
Un framework progresivo de Node.js para crear aplicaciones de servidor eficientes y escalables en TypeScript o JavaScript.