Sobre el proyecto

websocketd ofrece una forma sencilla de exponer programas de línea de comandos existentes a través de WebSockets sin necesidad de bibliotecas de red en el propio programa. Tras iniciarse en un puerto elegido, acepta conexiones WebSocket y ejecuta el ejecutable configurado para cada conexión. Los mensajes del navegador se escriben en la STDIN del proceso con un salto de línea final, mientras que la salida de STDOUT terminada en salto de línea se devuelve al cliente como mensajes WebSocket. Cuando cualquiera de las partes se desconecta, el proceso asociado y su grupo de procesos se cierran. El programa de backend puede escribirse en cualquier lenguaje que admita entrada y salida estándar, incluidos scripts de shell, Python, Ruby, Perl, C, Go, PHP, Java, PowerShell, Lua y R. La información de la solicitud, como el host remoto, la ruta, los parámetros de consulta y las cookies, se expone a los scripts mediante variables de entorno CGI. Las funciones adicionales incluyen un servidor de archivos estáticos, compatibilidad con CGI clásico, escucha en un socket de dominio Unix con permisos configurables, reenvío opcional de STDERR como JSON etiquetado y una consola de desarrollador WebSocket integrada para conectarse, enviar tramas e inspeccionar respuestas. La herramienta se distribuye como un único ejecutable independiente para Linux, macOS y Windows, con instalación mediante Homebrew disponible en macOS. El repositorio también enlaza con ejemplos y proyectos de muestra que incluyen estadísticas del sistema en tiempo real, REPL basados en navegador, acceso a bases de datos, listado de archivos y entrada de gamepad.