Turn any command-line program that uses STDIN/STDOUT into a WebSocket server with a single executable.
websocketd is a lightweight command-line utility that converts any program using standard input/output into a WebSocket server. It solves the problem of building real-time web applications by eliminating the need for custom networking code, allowing developers to focus on application logic instead of protocol implementation.
Developers and system administrators who need to expose existing command-line tools or scripts as real-time web services, particularly those working with monitoring, dashboards, or interactive web applications.
Developers choose websocketd for its extreme simplicity, language-agnostic approach, and zero-dependency design, enabling rapid prototyping and production deployment of WebSocket services without rewriting existing tools.
Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works with any programming language that reads from STDIN and writes to STDOUT, including Python, Ruby, Bash, Go, and more, as demonstrated in the extensive examples repository.
Available as a single executable for Linux, macOS, and Windows with no external dependencies, package managers, or complex installers, making deployment straightforward for both development and production.
Includes a WebSocket developer console for testing scripts before building JavaScript frontends, and provides CGI environment variables for accessing HTTP request details, easing integration.
Follows the Unix philosophy of composable tools, allowing existing CLI programs to be exposed as WebSocket servers without modifications, as highlighted in the project's philosophy.
Forks a new process for each WebSocket connection, which can become resource-intensive and hinder performance in high-concurrency scenarios, limiting scalability for production use.
Requires messages to be newline-delimited over stdin/stdout, making it unsuitable for binary data or protocols that don't use newlines without additional encoding and parsing steps.
Missing built-in support for WebSocket subprotocols, authentication, or load balancing, which are often needed for complex real-time applications, as acknowledged by its minimal design.