vi/websocat

TODO list

vi opened this issue · 1 comments

vi commented

For publishing a crate:

  • Stdin to websocket client
  • Abstractions for boxed peer, peer constructor, peer stream
  • TCP connector and listener
  • Websocket server (no ssl)
  • Generic websocket server and client (custom connectors, not just TCP)
  • Replying to WebSocket pings
  • Intermediate structure between command-line strings and actual peers
  • Normal command line interface with a help message and options
  • --text option
  • exec: specifier
  • sh-c: specifier
  • Unidirectional option
  • UNIX and abstract listener and connector

For considering a non-alpha release:

  • Make it singlethreaded and/or provide explicit --threaded option.
  • Correct handling for EOF / socket shutdown
  • More thorough testing
  • Line mode for websockets
  • More useful logging (connection log), -v and --quiet options
  • Option to execute a program on each message, not on each connection.
  • unix seqpacket
  • More lints
  • Delays between reconnects for autoreconnect:
  • De-hardcode buffer size

Further ideas:

  • Non-websocket content redirector
  • SSL listener and connector
  • SCTP
  • Pure Rust SSL support
  • Environment variables like URL for exec:
  • Special JSON powers?
  • Specifying cookies and other HTTP headers.
  • Propagation of "can't accept writes anymore" status.
vi commented

Pre-built for the impatient: https://github.com/vi/websocat/releases/tag/v0.5.1-alpha

(first 6 boxes are checked)