Skip to content

Releases: vi/websocat

Nearing sunset

12 Nov 14:58
@vi vi
v1.14.0
5c99078
Compare
Choose a tag to compare

Websocat v1's dependencies are getting increasingly obsolete; Websocat v1 may be nearing EOL. There will probably be future releases from v1 branch, but users of Websocat should start thinking about switching to future's Websocat4. First step is to go through #276 and submit reactions to the features you use in Websocat1. You are also welcome to try the v4.0.0-alpha1 release and report if something is wrong (besides missing features).

Changelog:

  • Attempt to priorize ping requests and replies over normal traffic
  • More options to supply password for basic auth: --basic-auth-file and WEBSOCAT_BASIC_AUTH
  • drop_on_backpressure: overlay to ignore content when writing is too slow
  • --ua shortcut for -H User-Agent:
  • SOCKS5 authentication

Prebuilt Linux, FreeBSD and Android executables should contain OpenSSL version 3.4.0.

First prerelease of Websocat4

11 Nov 19:47
@vi vi
v4.0.0-alpha1
bdf9f83
Compare
Choose a tag to compare
Pre-release

First preliminary release of Websocat4 - rewritten Websocat.

  • Not all features are supported. Vote for features to be ported at #276 . This issue may also serve as a migration guide in some cases.
  • Websocat1 is still the recommended version. Personally I still use Websocat1 when I need websockets. There will be a 1.14.0 release soon.
  • Unfortunately, v4 is more bloated than v1 and it is likely to stay that way.
  • DESIGN.md explains why it is not v2.0.
  • doc.md is a reference documentation.
  • Pre-built Linux and Android executables contain OpenSSL v3.4.0.

You are recommended to try this version and see if it suits you needs (and use #276 if something is missing), but stay with the v1 version for a while until stable release.

v1.13.0

31 Mar 20:53
@vi vi
v1.13.0
1ad7a89
Compare
Choose a tag to compare

Changes

  • waitfordata: overlay to delay connection initiation until first data is attempted to be written to it
  • Dockerfile updates
  • lengthprefixed: overlay - binary alternative to base64 mode
  • Fix for #23 - "happy eyeballs" for ws:// and wss:// URLs.

Full Changelog: v1.12.0...v1.13.0

Most files are not tested, except of one manual websocat wss://ws.vi-server.org/mirror smoke-check.

Linux, Android and Freebsd builds embed OpenSSL version 3.2.1.

Maintainance release

17 Sep 15:00
@vi vi
v1.12.0
cb2966c
Compare
Choose a tag to compare
  • 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
  • Some pre-built artifacts should contain OpenSSL version 3.1.2

Note that arm-unknown-linux-musleabi version is flawed. Use previous release if you need a static version.

Still keeping v1 afloat instead of concentrating on v3

24 Sep 20:54
@vi vi
v1.11.0
ca36714
Compare
Choose a tag to compare

Changelog

  • --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 to wss:// or ssl: 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 is Cargo.lock.legacy with dependencies manually locked to versions that support Rust 1.46.0.

Release artifacts

(downloads below the table)

File TLS support Tested by author Notes
websocat.x86_64-unknown-linux-musl built-in OpenSSL 1.1.1q no
websocat.x86_64-apple-darwin uses system crypto no
websocat.x86_64-pc-windows-gnu.exe uses system crypto no Malware scanners detect problems with this file for some reason. Use the next file as an alternative.
websocat_rebuild.x86_64-pc-windows-gnu.exe uses system crypto no rebuilt due #172
websocat.i686-pc-windows-gnu.exe uses system crypto no
websocat.aarch64-linux-android built-in OpenSSL 1.1.1q no
websocat.armv7-linux-androideabi built-in OpenSSL 1.1.1q no
websocat.arm-unknown-linux-musleabi built-in OpenSSL 1.1.1q no
websocat.aarch64-unknown-linux-musl built-in OpenSSL 1.1.1q no
websocat.x86_64-unknown-freebsd built-in OpenSSL 1.1.1q no Contains additional features
websocat_nossl.i686-unknown-linux-musl none no see some previous release notes for the reason of why no ssl
websocat_max.x86_64-unknown-linux-musl built-in OpenSSL 1.1.1q no Contains additional features
websocat_max.aarch64-unknown-linux-musl built-in OpenSSL 1.1.1q no Contains additional features
websocat_mini.x86_64-unknown-linux-gnu depends on libssl.so.1.1 no panic_immeidate_abort, system TLS, upx
websocat.riscv64gc-unknown-linux-musl built-in OpneSSL 1.1.1t no panic_immeidate_abort, a bit newer code
debug.7z unstripped versions of all executables above

The table may be updated in future.

Some fixes, some features.

17 May 21:23
@vi vi
v1.10.0
9ab5e4a
Compare
Choose a tag to compare

Changelog

  • 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 fix ws://localhost unfortunately.
  • crypto: overlay and associated options
  • prometheus: overlay and associated options
  • random: specifier

Release artifacts

(downloads below the table)

File TLS support Tested by author Notes
websocat.x86_64-unknown-linux-musl built-in OpenSSL 1.1.1n using similar build myself
websocat.x86_64-pc-windows-gnu.exe uses system crypto no
websocat.x86_64-apple-darwin uses system crypto no
websocat.i686-pc-windows-gnu.exe uses system crypto no
websocat.aarch64-linux-android built-in OpenSSL 1.1.1n basic test only
websocat.armv7-linux-androideabi built-in OpenSSL 1.1.1n basic test only
websocat.arm-unknown-linux-musleabi built-in OpenSSL 1.1.1n basic test only
websocat.aarch64-unknown-linux-musl built-in OpenSSL 1.1.1n no
websocat.x86_64-unknown-freebsd built-in OpenSSL 1.1.1n basic test only
websocat_nossl.i686-unknown-linux-musl none basic test only see some previous release notes for the reason of why no ssl
debug.7z unstripped versions of all executables above

Early preview of future's Websocat.

19 Mar 21:56
@vi vi
v3.0.0-prealpha0
f3370a3
Compare
Choose a tag to compare
Pre-release

You are recommended to use Websocat 1.9.0, not this release. This release does not necessarily preclude Websocat 1.10.0 in the future.

This release showcases rewritten Websocat using Tokio 1, Hyper 0.14 and Tungstenite instead of legacy dependencies. This opens up a world of QUIC, rfc8441 and other new things to keep Websocat relevant. A lot of features from Websocat1 are not yet implemented, CLI UI compatibility with Websocat1 is also not implemented yet. Help is partially implemented. Book is just started. Release artifacts build script is not dockerised.

It's "3.0" instead of "2.0" because of Websocat2 was supposed to be version based on Tokio 0.2 + Hyper 0.12 (or Hyper-less), split to multiple crates; but that was abandoned.

websocat3.i686-pc-windows-gnu, websocat3.x86_64-apple-darwin and websocat3.x86_64-pc-windows-gnu are built against native-tls, all the rest is built against rustls + webpki-roots.

Supposedly without yanked crates

30 Oct 23:57
@vi vi
v1.9.0
9f301bd
Compare
Choose a tag to compare
  • ssl Cargo feature is now enabled by default
  • vendored_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 client
  • timestamp: 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).

Note that this release contains less pre-built executables than previous releases. You may want to try older versions.

file description tested?
websocat_linux64 Static amd64 with embedded openssl I'm using it myself
websocat_linux32_nossl Static i686 without ssl support (still crashes) tried once connecting to ws://
websocat_android Built in openssl, for Android armv7 Tried connecting to wss:// on Android 6 and Android 11
websocat_linuxarm32 Built in openssl Tried wss:// once, seems working
websocat_win32.exe Built with ssl enabled Tried in wine. ws:// connects, but ssl fails
websocat_win64.exe Built with ssl enabled Tried in wine. ws:// connects, but ssl fails
websocat_mac Should use system ssl, for x86_64 mac Tried in darling. ws:// connects, but ssl fails
websocat_freebsd Uses system openssl 111 Tried connecting to wss:// in VM
debug.7z unstripped executables for symbols

Fix some bugs

15 Apr 17:10
@vi vi
v1.8.0
59502e5
Compare
Choose a tag to compare
  • --accept-from-fd option for better systemd intergration
  • exec:/cmd:/sh-c: specifiers now don't terminate process prematurely
  • --foreachmsg-wait-read for better foreachmsg: overlay behaviour. Now foreachmsg:exec:./myscript is more meaningul.
  • --basic-auth option to insert basic authentication header more easily
  • Websocket close message is now logged in debug mode

Unfortunately, build system for providing prebuilt executables is not reproducible and was only partially automatized; and it is now falling apart - not all artifacts are provided. It may make sense to try previous (including substantially old, e.g. v1.0.0) versions of Websocat's prebuilt executables. Better building situation may arrive with Websocat 3.

OpenSSL is actually static in many versions, even without -static in the name.

Default threaded stdio, `log:` filter

22 Feb 09:53
@vi vi
v1.7.0
6aa2b9c
Compare
Choose a tag to compare

Changelog:

  • 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.

Changed in released files:

  • Added websocat_arm-android-nosignal for running Websocat on old (e.g. 4.4) Android devices.
  • websocat_mipsel-linux-static failed to build. Use nossl version or reach for v1.6.0.
  • websocat_i386-linux-static fails due to alexcrichton/openssl-src-rs#86. Keep on using v1.6.0's version for a while.
  • Now I realize that OpenSSL is statically built-in everywhere, not just in *-static builds. Deb package dependency is probably irrelevant now.