Download Latest Version v1.21.0 (2025-11-04) source code.tar.gz (227.9 kB)
Email in envelope

Get an email when there's a new version of Sente

Home / v1.21.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-11-04 4.0 kB
v1.21.0 (2025-11-04) source code.tar.gz 2025-11-04 227.9 kB
v1.21.0 (2025-11-04) source code.zip 2025-11-04 251.4 kB
Totals: 3 Items   483.3 kB 0

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. A big thanks to all contributors and testers on this release! 🙏

- Peter Taoussanis

Quick highlights:

  • Support for binary serialization, and a new high-speed MessagePack implementation (benchmarks)
  • Support for binary compression, and a new gzip implementation
  • Smaller dependency [4864926] [6a7a609]
  • Improved reliability under load [173652d] [49000db] [71e7bb0]
  • Pluggable un+structured 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 🙏

Since v1.21.0-RC3 (2025-10-11)

No changes (same as RC3).

Since v1.20.0 (2024-12-31)

Changes

  • ➤ [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] Drop Clojure v1.10 testing [648ac31d]
  • [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]

Fixes

  • [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]
  • [fix] [#475] [#476] Fix bad WebSocket close call args [2120b136]

New

  • [new] [#470] Add new binary MessagePack packer [757ebd2]
  • [new] Add MessagePack packer to example project [e88a17f]
  • [new] [#477] Add gzip-wrapping packer [956268c8]
  • [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] [#474] Add UUID support to Msgpack packer (@jrgvf) [2fdd8f82]
  • [new] [#476] Make it easier to test server restarts [f292180b]
  • [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]
  • [doc] Add packer info to wiki [08dc349c]
Source: README.md, updated 2025-11-04