// the find
joewalnes/websocketd
Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.
websocketd wraps any stdin/stdout program and exposes it as a WebSocket server. One binary, no libraries, works with any language. It's the unix philosophy applied to WebSockets — if your program can read lines and print lines, it can be a live server.
Single static binary with no dependencies — deploy it anywhere without a package manager. CGI environment variables are passed to the subprocess, so you get query params, cookies, and remote host without writing any networking code. The test suite is genuinely thorough: unit tests, integration tests with named issue regression files (issue342, issue413, issue456), and a dedicated benchmark suite covering connection storms, backpressure, and latency. Active maintenance as of April 2026 despite being a 10+ year old tool.
Forks a new process per connection — fine for a dashboard showing CPU stats, a serious problem if you're expecting hundreds of concurrent clients. No built-in auth layer; you have to handle that in your script or put a reverse proxy in front, which the docs mention but don't guide you through. Binary protocol support is limited; the STDIN/STDOUT contract is line-delimited text, so anything that needs binary framing (e.g. protobuf over WebSocket) is awkward. The static file server and CGI features bundled in are convenient for demos but mean you're running an HTTP server from a process-forking tool in production, which is probably not what you want.