Releases: vi/websocat
Nearing sunset
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
andWEBSOCAT_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
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
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
- 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
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 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.
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.
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 fixws://localhost
unfortunately. crypto:
overlay and associated optionsprometheus:
overlay and associated optionsrandom:
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.
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
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).
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
--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
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
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.