This project uses Break Versioning.
Sente v1.21 is a major release with many improvements! It includes breaking changes for some users. Please report any unexpected problems to the Slack channel or GitHub 🙏
- Peter Taoussanis
Quick highlights:
- Adds support for high-speed binary serialization
- Adds support for compression (WebSockets + Ajax) [f8a3fad]
- Smaller dependency [4864926] [6a7a609]
- Improved reliability under load [173652d] [49000db] [71e7bb0]
- Pluggable logging via Trove [4864926]
- Many small fixes and improvements
As always thank you to any contributors! In particular thank you to @rosejn, @edma2, and @pkcsecurity on whose work Sente's new MessagePack implementation is based 🙏
- [mod] Increase default
:ws-ping-timeout-ms
(5->10 secs) [147fbdd] - [new] [#470] Add new binary MessagePack packer [757ebd2]
- [new] Add MessagePack packer to example project [e88a17f]
- [fix] Trace-level Trove logs shouldn't show by default in JS console
- [fix] Improve async packer error handling [3292847]
- [doc] Clarify client-side send-fn args [1feca6f]
- ➤ [mod] [BREAKING] [#472] Switch logging: Timbre -> Trove [4864926]
- ➤ [mod] [BREAKING] Make packers more flexible [f8a3fad]
- ➤ [mod] [BREAKING] Increase default
:ws-ping-timeout-ms
(5->10 secs) [147fbdd] - [mod] [#455] Halve given
ws-kalive-ms
[49000db] - [mod] Make Java WS client optional [6a7a609]
- [mod] [#462] Don't throw by default on Ajax read timeouts [fb30404]
- [mod] Enable WebSocket ping timeout by default [71e7bb0]
- [mod] Change default WebSocket binary type (blob->arraybuffer) [02da98e]
- [mod] Remove experimental, undocumented
cb-chan-as-fn
[71db112] - [mod] Remove long-vestigial legacy pack code [cf2a149]
- [fix] [#471] Switch to custom lightweight timer implementation [173652d]
- [fix] [#466] Fix support for Jetty 12 community adapter (@aiba) [d16bb6c]
- [fix] [#464] [#325] Fix option to use custom WebSocket constructor (@iarenaza) [07a9bd9]
- [new] [#470] Add new binary MessagePack packer [757ebd2]
- [new] Add MessagePack packer to example project [e88a17f]
- [new] [#467] Allow
:csrf-token-fn
to return :sente/skip-CSRF-check
[8aae3d0] - [new] [#467] Make
cb-error?
, cb-success?
available to Clj code [08e8b3e] - [new] [#462] Keep Ring request in Ajax channel [01a41a3]
- [new] Update ref example to add dynamic packer [cd98db7]
- [new] Update ref example logging [85b3e8a]
- [doc] Document limitations on event ordering [532064d]
- [doc] Clarify client-side send-fn args [1feca6f]
This is a major release with many improvements! It includes breaking changes for some users. It's intended for early testing, and may not yet be suitable for production.
Please report any unexpected problems to the Slack channel or GitHub 🙏
- Peter Taoussanis
Quick highlights:
- Adds support for upcoming high-speed binary serialization (WebSockets + Ajax) [f8a3fad]
- Adds support for compression (WebSockets + Ajax) [f8a3fad]
- Smaller dependency [4864926] [6a7a609]
- Improved reliability under load [173652d] [49000db] [71e7bb0]
- Pluggable logging via Trove [4864926]
- Many small fixes and improvements
As always thank you to any contributors! 🙏
See linked commit messages for more info
- ➤ [mod] [BREAKING] [#472] Switch logging: Timbre -> Trove [4864926]
- ➤ [mod] [BREAKING] Make packers more flexible [f8a3fad]
- [mod] [#455] Halve given
ws-kalive-ms
[49000db] - [mod] Make Java WS client optional [6a7a609]
- [mod] [#462] Don't throw by default on Ajax read timeouts [fb30404]
- [mod] Enable WebSocket ping timeout by default [71e7bb0]
- [mod] Change default WebSocket binary type (blob->arraybuffer) [02da98e]
- [mod] Remove experimental, undocumented
cb-chan-as-fn
[71db112] - [mod] Remove long-vestigial legacy pack code [cf2a149]
- [fix] [#471] Switch to custom lightweight timer implementation [173652d]
- [fix] [#466] Fix support for Jetty 12 community adapter (@aiba) [d16bb6c]
- [fix] [#464] [#325] Fix option to use custom WebSocket constructor (@iarenaza) [07a9bd9]
- [new] [#467] Allow
:csrf-token-fn
to return :sente/skip-CSRF-check
[8aae3d0] - [new] [#467] Make
cb-error?
, cb-success?
available to Clj code [08e8b3e] - [new] [#462] Keep Ring request in Ajax channel [01a41a3]
- [new] Update ref example to add dynamic packer [cd98db7]
- [new] Update ref example logging [85b3e8a]
- [doc] Document limitations on event ordering [532064d]
This is a major non-breaking maintenance and feature release. As always, please report any unexpected problems 🙏 - Peter Taoussanis
Happy holidays everyone! 🎄🫶
No breaking changes intended
- [fix] [#458] Fix React Native build: catch invalid call [4e3f16c]
- [new] [#447] [Community adapters] Support both Jetty 11 and 12 (@stefanroex) [79c784d]
- [new] [#447] [Community adapters] Improve error message on Ajax read timeouts [9da662c]
- [doc] [Community adapters] Improve constructor docstrings [1c7a93c]
No breaking changes intended
- [mod] [#440] Decrease log level of noisy ws-ping events (@jwr) [4241e6c]
- [mod] Tune send backoff time [84e8b2a]
- [fix] [#448] [#453] Fix NodeJS build: don't add
beforeunload
event listener (@theasp) [dc6b34e] - [fix] [#458] Fix React Native build: catch invalid call [4e3f16c]
- [fix] [#445] [#444] [Community adapters] Undertow: remove invalid option (@danielsz) [55167f5]
- [new] [#447] [Community adapters] Add Jetty 11/12 adapter (@alexandergunnarson) [8ecb2d9]
- [doc] [Community adapters] Improve constructor docstrings [1c7a93c]
- [doc] [#439] Add guidance on large transfers [513a42d]
This is a major non-breaking maintenance and feature release. As always, please report any unexpected problems 🙏 - Peter Taoussanis
- [mod] [#440] Decrease log level of noisy ws-ping events (@jwr) [4241e6c]
- [mod] Tune send backoff time [84e8b2a]
- [fix] [#448] [#453] Don't add
beforeunload
event listener when running inside NodeJS (@theasp) [dc6b34e] - [fix] [#445] [#444] [Community adapters] Undertow: remove invalid option (@danielsz) [55167f5]
- [new] [#447] [Community adapters] Add Jetty 11 adapter (@alexandergunnarson) [8ecb2d9]
- [doc] [#439] Add guidance on large transfers [513a42d]
- Update several dependencies
📦 Available on Clojars
Identical to v1.19.1
, but includes a hotfix (dbb798a) for [#434] to remove the unnecessary logging of potentially sensitive Ring request info when connecting to a server without a client id.
This should be a safe update for users of v1.19.x
.
📦 Available on Clojars
Identical to v1.19.0
, but synchronizes Encore dependency with my recent library releases (Timbre, Tufte, Sente, Carmine, etc.) to prevent confusion caused by dependency conflicts.
This is a safe update for users of v1.19.0
.
📦 Available on Clojars
This is intended as a non-breaking maintenance release, but it touches a lot of code so please keep an eye out for (and let me know about) any unexpected problems - thank you! 🙏
Tip: the reference example includes a number of tools to help test Sente in your environment.
- 0dc8a12 [fix] [#431] Some disconnected user-ids not removed from
connected-uids
- e330ef2 [new] Allow WebSocket constructors to delay connection
- 6021258 [new] [example] Misc improvements to example project
- d0fd918 [new] Alias client option:
:ws-kalive-ping-timeout-ms
-> :ws-ping-timeout-ms
- GraalVM compatibility is now tested during build
📦 Available on Clojars
This is an important hotfix release, please update if you're using v1.18.0
.
- ad62f1e [fix] Ajax poll not properly timing out
- 1d15fe5 [fix] [#430]
[:chsk/uidport-close]
server event not firing
- 5c0f4ad [new] [example] Add example server-side uidport event handlers
📦 Available on Clojars
Same as v1.18.0-RC1
, except for:
- 7889a0b [fix] [#429] Bump deps, fix possible broken cljs builds
See here for earlier releases.