Happy eyeballs (v1.13.0) - 31 Mar 2024
waitfordata:
overlay to delay connection initiation until first data is attempted to be written to it- Dockerfile updates
lengthprefixed:
overlay - alternative to base64 mode- Fix for #23 - "happy eyeballs" for ws:// and wss:// URLs.
Maintainance release (v1.12.0) - 17 Sep 2023
- Option to stop sending or replying to WebSocket pings after specified amount of sent or received pings (for testing idling disconnection behaviour of counterparts).
--exec-exit-on-disconnect
- Print
Location:
header value in error message when facing a redirect instead of a WebSocket connection. - Other minor fixes
--preamble
(-p
) options to prepend static text to Websocat sessions. For use to authenticate and subscribe to something over WebSocket. Note that specifying passwords on command line may be insecure. Also command line handling around-p
is finicky. There is also--preamble-reverse
(-P
) option to prepend similar chunk in the reverse direction.--compress-{zlib,deflate,gzip}
and respective--uncompress-...
options to modify binary WebSocket messages going to/from a WebSocket. Note that it is not related to permessage-deflate, which does similar thing, but on lower level.exit_on_specific_byte:
overlay to trigger exit when specific byte is encountered. For interactive tty usage.--client-pkcs12-der
to specify client identity certificate for connecting towss://
orssl:
that requires mutual authentication.openssl-probe
is now active by default on Linux, to support for overriding CA lists using environment variables.- Incoming WebSocket frames and message are now limited by default, to prevent memory stuffing denial of service. But the default limit is big (100 megabytes). Use
--max-ws-frame-length
and--max-ws-message-length
options to override. Cargo.lock
is now oriented for building with modern Rust compiler. There isCargo.lock.legacy
with dependencies manually locked to versions that support Rust 1.46.0.
Some fixes, some features. (v1.10.0) - 17 May 2022
- Add
--close-status-code
and--close-reason
- Fix
--queue-len
option that took no effect - Fix racing to connect to multiple resolved addresses in
tcp:
specifier (i.e. "happy eyeballs") - now it skips errors if there is a working connection. This does not fixws://localhost
unfortunately. crypto:
overlay and associated optionsprometheus:
overlay and associated optionsrandom:
specifier
Supposedly without yanked crates (v1.9.0) - 30 Oct 2021
ssl
Cargo feature is now enabled by defaultvendored_openssl
Cargo feature is now not enabled by default--stdout-announce-listening-ports
option to print message when server port is ready to accept clients.--no-close
option now also affects Websocket server mode, not just clienttimestamp:
overlay to mangle message, prepending current timestamp as text--print-ping-rtts
option- Updated deps for #138 (not checked whether all yanks are resolved although).
Fix some bugs (v1.8.0) - 15 Apr 2021
--accept-from-fd
option for better systemd intergrationexec:
/cmd:
/sh-c:
specifiers now don't terminate process prematurely--foreachmsg-wait-read
for betterforeachmsg:
overlay behaviour. Nowforeachmsg:exec:./myscript
is more meaningul.--basic-auth
option to insert basic authentication header more easily- Websocket close message is now logged in debug mode
Default threaded stdio, log:
filter (v1.7.0) - 22 Feb 2021
- Websocat now does not set terminal to nonblocking mode if isatty by default. This should help with #76.
- New overlay
log:
that prints bytes as they travel though Websocat, for debugging.
A heartbeat release (v1.6.0) - 08 Jul 2020
- UDP multicast options
foreachmsg:
overlay - run specifier (i.e. connect somewhere or execute a program) on each WebSocket message instead of on each WebSocket connection.- Various minor options like
--max-messages
or zero-length message handling. - Low-level Websocket features:
--just-generate-key
and--just-generate-accept
options which help generating HTTP headers for WebSockets.ws-lowlevel-server:
andws-lowlevel-client:
overlays to use expose WebSocket's data encoder/decoder without HTTP part. - Basic
http://
client with arbitrary method, uri and so on. - Delay for
autoreconnect:
overlay - More pre-built release assets
- Base64 mode for binary WebSocket messages
- Prefixes for text and binary WebSocket messages, allowing to discriminate incoming binary and text WebSocket messages and intermix outgoing binary and text WebSocket messages.
- Sort-of-unfinished
http-post-sse:
specifier allowing to use HTTP server-sent events (in one direction) and POST request bodies (in the other direction) instead of (or in addition to) a WebSocket and to bridge them together. This mode is not tested properly although.
Client basic auth, header-to-env (v1.5.0) - 18 Aug 2019
- Using client URI's like
websocat ws://user:password@host/
now adds basic authentication HTTP header to request - New command-line option:
--header-to-env
- Minor dependencies update
- Built with newer Rust on newer Debian
- New options:
--server-protocol
,--ping-timeout
,--ping-interval
,--server-header
- Fixed replying to WebSocket pings
- Fixed replying to requests with
Sec-WebSocket-Protocol
.
tokio, conncap, pkcs12-passwd, typos (v1.3.0) - 06 Mar 2019
-k (--insecure), native-tls (v1.2.0) - 01 Nov 2018
More features (v1.1.0) - 30 Aug 2018
- Static files aside from the websocket for easy prototyping
- SOCKS5 proxy client
- wss:// listener
- Setting environment variables for
exec:
- Sending SIGHUP signal to child process on client disconnect
--jsonrpc
mode
Preview of 1.1 (v1.1-pre) - 13 Jul 2018
- --set-environment option and --static-file
The release. Finally. (v1.0.0) - 04 Jul 2018
Refactor and more features (v1.0.0-beta) - 20 Jun 2018
Async alpha (v1.0.0-alpha) - 10 May 2018
Async preview (v0.5.1-alpha) - 14 Mar 2018
Forked rust-websocket (v0.4.0) - 18 Jan 2017
More features (v0.3.0) - 22 Dec 2016
- Unix sockets
- Executing programs and command lines
- Unidirectional mode
- Text mode (don't rely on it)