websocketd - a small command-line tool that will wrap an existing command-line interface program, and allow it to be accessed via a WebSocket. #747
Labels
CLI-UX
Command Line Interface user experience and best practices
code-generation
code generation models and tools like copilot and aider
Git-Repo
Source code repository like gitlab or gh
New-Label
Choose this option if the existing labels are insufficient to describe the content accurately
websocketd/README.md at master · joewalnes/websocketd
DESCRIPTION:
websocketd
websocketd
is a small command-line tool that will wrap an existing command-line interface program, and allow it to be accessed via a WebSocket.WebSocket-capable applications can now be built very easily. As long as you can write an executable program that reads
STDIN
and writes toSTDOUT
, you can build a WebSocket server. Do it in Python, Ruby, Perl, Bash, .NET, C, Go, PHP, Java, Clojure, Scala, Groovy, Expect, Awk, VBScript, Haskell, Lua, R, whatever! No networking libraries necessary.-@joewalnes
Details
Upon startup,
websocketd
will start a WebSocket server on a specified port, and listen for connections.Upon a connection, it will fork the appropriate process, and disconnect the process when the WebSocket connection closes (and vice-versa).
Any message sent from the WebSocket client will be piped to the process's
STDIN
stream, followed by a\n
newline.Any text printed by the process to
STDOUT
shall be sent as a WebSocket message whenever a\n
newline is encountered.Download
If you're on a Mac, you can install
websocketd
using Homebrew. Just runbrew install websocketd
. For other operating systems, or if you don't want to use Homebrew, check out the link below.Download for Linux, OS X and Windows
Quickstart
To get started, we'll create a WebSocket endpoint that will accept connections, then send back messages, counting to 10 with 1 second pause between each one, before disconnecting.
To show how simple it is, let's do it in Bash!
count.sh:
Before turning it into a WebSocket server, let's test it from the command line. The beauty of
websocketd
is that servers work equally well in the command line, or in shell scripts, as they do in the server - with no modifications required.Now let's turn it into a WebSocket server:
Finally, let's create a web-page to test it.
count.html:
Open this page in your web-browser. It will even work if you open it directly
from disk using a
file://
URL.More Features
websocketd --help
.User Manual
More documentation in the user manual
Example Projects
Got more examples? Open a pull request.
My Other Projects
And follow @joewalnes!
URL: websocketd/README.md
Suggested labels
{'label-name': 'WebSocket-Server', 'label-description': 'Tools and applications for creating WebSocket servers easily without the need for networking libraries.', 'gh-repo': 'CLI-UX,code-generation,Git-Repo', 'confidence': 52.21}
The text was updated successfully, but these errors were encountered: