Skip to content

Releases: http-kit/http-kit

v2.8.0 (2024-04-30)

30 Apr 11:30
Compare
Choose a tag to compare

Dep/s: http-kit is on Clojars.
Versioning: http-kit uses Break Versioning.

This is a major feature and maintenance release. As always, please test carefully and report any unexpected problems, thank you! 🙏

Highlights include:

  • Performance improvements, incl. auto JVM 21+ virtual threads when available.
  • Support for the latest Ring async and WebSocket APIs.
  • A comprehensive new benchmark suite for http-kit server and client.
  • >15 fixes and numerous other improvements

See linked commits below for details.

A huge thanks to the 10 contributors who helped create this release!

- Peter Taoussanis

Changes since v2.7.0 (2023-06-30)

  • 6db3f0f [mod] Bump minimum Java version: 7->8
  • If using AOT/uberjar, please ensure that you build with the lowest Java version that you'd like to support.

Fixes since v2.7.0 (2023-06-30)

  • 2474302 [fix] [client] [#535] [#536] Fix handling of some bad ssl certificates (@jeffdik)
  • b9f84d5 [fix] [client] [#523] Basic support for trailer section in chunked encoding responses
  • b45725f [fix] [server] [#543] Migrate away from SimpleDateFormat to java.time, fixes native-image issue (@borkdude)
  • 45a4b53 [fix] [server] [#537] Respond with Connection: Close when appropriate
  • 126d5df [fix] [client] [#528] Possible fix for broken insecure? client option
  • 9be19c0 [fix] [client] [#528] Re-enable insecure SSL client tests disabled for #513
  • de3596a [fix] [server] [#539] [#540] Prevent race condition in TimerService (@weavejester)
  • 99de95b [fix] [server] [#552] [#553] Bad arg order causing broken loggers config (@frwdrik)
  • 2dcfa29 [fix] [server] [#546] Fix Jetty server SNI check in client tests (@weavejester)
  • ed6833e [fix] [client] [#560] Attempted fix to allow SSL with IP host
  • 48cb7fe [fix] [server] [#559] Add missing Content-Type header to last-resort error responses
  • bfba515 [fix] [client] Ignore nil clients, even when they're delay-wrapped
  • 8738140 [fix] [server] [#551] Unintentional code duplication (@slipset)
  • 491e19c [fix] [tests] Flaky timing in CI
  • e2ca731 [fix] Resolve Lein composite profile warning

New since v2.7.0 (2023-06-30)

  • c91a752 [new] [server] [#546] Add support for Ring WebSocket API (@weavejester)
  • 6652df8 [new] [server] [#394] [#538] Add support for Ring async handler arities (@weavejester)
  • 47129af [new] [server] Refactor worker threading, use virtual threads by default on JVM 21+
  • e38169b [new] [client] Refactor worker threading, use virtual threads by default on JVM 21+
  • 741eed8 [new] [tests] Add new benchmark suite
  • 2a74dbf [new] [tests] Add first benchmark results
  • af5550f [new] [client] [#554] Support non-ASCII characters on multipart filenames (@davartens)
  • 41940f3 [new] [client] [server] Add public worker constructors
  • f267426 [new] [client] [server] utils/new-worker improvements
  • 890de2d [new] [client] [#561] [#562] Add :nested-param-style option to client requests (@wevre)

Other improvements since v2.7.0 (2023-06-30)

  • 5379f62 [new] [server] [#546] Also test without support for Ring WebSocket API
  • 4813a17 [nop] [#530] [#531] Update dep: http.async.client (@NoahTheDuke)
  • 9877bca [nop] [client] Don't submit tasks to closed pool
  • 92fc3fe [wiki] Add client page from legacy website (@harold)
  • 9b131e2 [wiki] Clean-up, update client docs
  • Updated dependencies

Everything since v2.8.0-RC1 (2024-02-06)

v2.8.0-RC1 (2024-02-26)

26 Feb 12:05
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars, this project uses Break Versioning.

This is a major feature and maintenance pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏

Highlights include:

  • Support for the latest Ring async and WebSocket APIs
  • Performance improvements, incl. auto use of JVM 21+ virtual threads when available
  • Numerous minor features, fixes, and other improvements

Please see linked commits below for details.

A huge thanks to all contributors!

Changes since v2.7.x

  • 6db3f0f [mod] Bump minimum Java version: 7->8
  • If using AOT/uberjar, please ensure that you build with the lowest Java version that you'd like to support.

Fixes since v2.7.x

  • 2474302 [fix] [client] [#535] [#536] Fix handling of some bad ssl certificates (@jeffdik)
  • b9f84d5 [fix] [client] [#523] Basic support for trailer section in chunked encoding responses
  • b45725f [fix] [server] [#543] Migrate away from SimpleDateFormat to java.time, fixes native-image issue (@borkdude)
  • 45a4b53 [fix] [server] [#537] Respond with Connection: Close when appropriate
  • 126d5df [fix] [client] [#528] Possible fix for broken insecure? client option
  • 9be19c0 [fix] [client] [#528] Re-enable insecure SSL client tests disabled for #513
  • de3596a [fix] [server] [#539] [#540] Prevent race condition in TimerService (@weavejester)
  • 99de95b [fix] [server] [#552] [#553] Bad arg order causing broken loggers config (@frwdrik)
  • 2dcfa29 [fix] [server] [#546] Fix Jetty server SNI check in client tests (@weavejester)
  • ed6833e [fix] [client] [#560] Attempted fix to allow SSL with IP host
  • 48cb7fe [fix] [server] [#559] Add missing Content-Type header to last-resort error responses
  • bfba515 [fix] [client] Ignore nil clients, even when they're delay-wrapped
  • 8738140 [fix] [server] [#551] Unintentional code duplication (@slipset)
  • 491e19c [fix] [tests] Flaky timing in CI
  • e2ca731 [fix] Resolve Lein composite profile warning

New since v2.7.x

  • c91a752 [new] [server] [#546] Add support for Ring WebSocket API (@weavejester)
  • 6652df8 [new] [server] [#394] [#538] Add support for Ring async handler arities (@weavejester)
  • 47129af [new] [server] Refactor worker threading, use virtual threads by default on JVM 21+
  • e38169b [new] [client] Refactor worker threading, use virtual threads by default on JVM 21+
  • 741eed8 [new] [tests] Add new benchmark suite
  • 2a74dbf [new] [tests] Add first benchmark results
  • af5550f [new] [client] [#554] Support non-ASCII characters on multipart filenames (@davartens)
  • 41940f3 [new] [client] [server] Add public worker constructors
  • f267426 [new] [client] [server] utils/new-worker improvements

Other improvements since v2.7.x

  • 5379f62 [new] [server] [#546] Also test without support for Ring WebSocket API
  • 4813a17 [nop] [#530] [#531] Update dep: http.async.client (@NoahTheDuke)
  • 9877bca [nop] [client] Don't submit tasks to closed pool
  • 92fc3fe [wiki] Add client page from legacy website (@harold)
  • 9b131e2 [wiki] Clean-up, update client docs
  • Updated dependencies

v2.8.0-beta3 (2023-10-11)

11 Oct 12:52
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars, this project uses Break Versioning.

Hotfix: identical to v2.8.0-beta2 but removes an unintended dependency on Cider. Thanks to @borkdude for the report!

v2.8.0-beta2 (2023-10-11)

11 Oct 09:07
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars, this project uses Break Versioning.

This is an early maintenance and feature pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏

Fixes since v2.8.0-beta1

New since v2.8.0-beta1

  • 741eed8 [new] [tests] Add new benchmark suite
  • 2a74dbf [new] [tests] Add first benchmark results
  • 6652df8 [new] [server] [#394] [#538] Add support for Ring async handler arities (@weavejester)
  • 41940f3 [new] [client] [server] Add public worker constructors
  • f267426 [new] utils/new-worker improvements

Other improvements since v2.8.0-beta1

  • 7d49819 [nop] Bump Jetty dependency, fix broken tests
  • 9877bca [nop] [client] Don't submit tasks to closed pool
  • 92fc3fe [wiki] Add client page from legacy website (@harold)
  • 9b131e2 [wiki] Clean-up, update client docs

v2.8.0-beta1 (2023-09-27)

27 Sep 17:15
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars, this project uses Break Versioning.

This is an early maintenance and feature pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏

The main improvement in this release is to make it easier to automatically get good performance from http-kit client + server. Virtual threads are now used by default for both client and server on Java 21+, otherwise the default worker pools are now automatically sized based on available processor count.

As before, you may still want to customize your request queue and/or worker threading - but the changes here make it much easier to get started with reasonable defaults.

As always, feedback welcome! Cheers :-)

- Peter Taoussanis

Changes since v2.7.x

  • 6db3f0f [mod] Bump minimum Java version: 7->8

Fixes since v2.7.x

  • b9f84d5 [fix] [client] [#523] Basic support for trailer section in chunked encoding responses
  • 126d5df [fix] [client] [#528] Possible fix for broken insecure? client option
  • 9be19c0 [fix] [client] [#528] Re-enable insecure SSL client tests disabled for #513

New since v2.7.x

  • 47129af [new] [server] Refactor worker threading, use virtual threads by default on JVM 21+
  • e38169b [new] [client] Refactor worker threading, use virtual threads by default on JVM 21+

Other improvements since v2.7.x

2.7.0 (2023-06-30)

30 Jun 17:06
Compare
Choose a tag to compare

📦 Available on Clojars

Please test carefully and report any issues!

Identical to 2.7.0-RC1 except for:

Changes since 2.6.0 ⚠️

  • [BREAK] [#528] [Client] Support for :insecure? flag is currently broken
  • 6158351 [mod] [Client] [#501] [#502] Join multiple headers with "\n" rather than "," (@g23)

2.7.0-RC1 (2023-05-30)

30 May 10:21
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars

Identical to 2.7.0-beta3.

This is a major pre-release that includes many significant fixes and new features.
Please test carefully and report any issues!

A big thanks to the many contributors 🙏

Changes since 2.6.0 ⚠️

  • [BREAK] [#528] [Client] Support for :insecure? flag is currently broken
  • 6158351 [mod] [Client] [#501] [#502] Join multiple headers with "\n" rather than "," (@g23)

New since 2.6.0

Fixes since 2.6.0

Other improvements since 2.6.0

v2.7.0-beta3 (2023-05-03)

03 May 16:10
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars

Identical to 2.7.0-beta2 except for:

v2.7.0-beta2 (2023-04-24)

24 Apr 17:01
Compare
Choose a tag to compare
Pre-release

📦 Available on Clojars

This is a major pre-release that includes many significant fixes and new features.
Please test carefully and report any issues!

A big thanks to the many contributors 🙏

Changes since 2.6.0 ⚠️

  • [BREAK] [#528] [Client] Support for :insecure? flag is currently broken
  • 6158351 [mod] [Client] [#501] [#502] Join multiple headers with "\n" rather than "," (@g23)

New since 2.6.0

Fixes since 2.6.0

Other improvements since 2.6.0

v2.6.0 (2022-06-13)

13 Jun 11:04
Compare
Choose a tag to compare
[http-kit "2.6.0"]

Non-breaking maintenance release with some fixes and minor features
See here recommended steps when updating any Clojure/Script dependencies.

Identical to v2.6.0-RC1.

Changes since 2.5.3

  • [#476] [Server] Optimization: change buildRequestMap to create a PersistentHashMap directly (@bsless)

New since 2.5.3

Fixes since 2.5.3

  • [#469 #489] [Client] Properly unrecycle req when kept-alive conn wasn't able to be reused (@xwang1498)
  • [#475 #477] [Graal] Add --initialize-at-run-time to config to stop GRAAL builds failing (@askonomm)
  • [#482 #483] [Client] Fix java version parsing for JDK 17 (@pmonks)
  • [#401 #481] [Client] mark Request as connected when reusing keepalive (@xwang1498)

Everything since 2.6.0-alpha1

  • [#469 #489] [Fix] [Client] Properly unrecycle req when kept-alive conn wasn't able to be reused (@xwang1498)