Skip to content

3.0.0-beta-1

Compare
Choose a tag to compare
@Stexxe Stexxe released this 27 Nov 14:17
· 133 commits to main since this release
a2e934d

Published 23 November 2023

Bugfixes

  • OkHttp: SSE client throws confusing "Unexpected error" on non 200 status (KTOR-6390)
  • Logging plugin blocks response body streaming when level is BODY (KTOR-6482)
  • HttpResponseValidator consumes HTTP response body (KTOR-4225)
  • CIO: Unable to perform WebSocket upgrade when Content-Type header is sent in the request (KTOR-6366)
  • ContentNegotiation: Adding charset to content type of JacksonConverter breaks request matching (KTOR-6420)
  • DOS via OOM due to unbound request body size (KTOR-2682)
  • AcceptAllCookiesStorage ignores cookie's max-age (KTOR-2023)
  • Inconsistent behavior for different engines when exception is thrown in the writer of WriteChannelContent (KTOR-3266)
  • Server doesn't send a response when a status code is passed to call.respond and the custom serializer throws an exception (KTOR-6150)
  • contentLength() returns null on Android (KTOR-1540)

Improvements

  • Kotlin/JS: Allow passing custom Agent (KTOR-5861)
  • Update Kotlin to 1.9.0 (KTOR-6123)
  • Update Kotlin to 1.9.20 (KTOR-6447)
  • Deprecate Locations with Level.ERROR (KTOR-6029)
  • HSTS plugin hard codes port 443 (KTOR-4168)
  • API to use java.nio.Path as resources (KTOR-4275)
  • Ability to serve static resources from a .zip file (KTOR-6385)
  • Make DefaultHeaders plugin Kotlin native compatible (KTOR-6356)
  • Disable compression for SSE requests (KTOR-6327)
  • Drop http timeout for sse requests (KTOR-6312)
  • Add deprecations for old IO API (KTOR-6036)
  • Drop old deprecations (KTOR-6262)
  • Drop actual modifier for Memory class in jvm for compatibility with K2 (KTOR-6006)
  • Remove @Suppress("NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS") in preparation for Kotlin 2.0 (KTOR-5824)
  • Migrate client plugins to new API (KTOR-6303)
  • Jetty Server no idle timeout configuration possible (KTOR-6288)
  • AttributeKey equality comparison breaks type safety (KTOR-6122)
  • Darwin: Support accessing NSURLSessionDelegate (KTOR-5688)
  • Remove writing multipart data to temp file (KTOR-5881)
  • Netty: Allow listening only for HTTP/1.1 protocol SSL connections (KTOR-6098)
  • Persistent Cookie Storage: Make Cookie.matches and Cookie.fillDefaults methods public (KTOR-6119)
  • Decompressed response/request should unset Content-Encoding header (KTOR-6080)
  • renderSetCookieHeader shouldn't ignore maxAge = 0 (KTOR-6007)
  • Webjars plugin should include caching headers and ETag by default (KTOR-6073)
  • SessionsConfig.cookie problem with reified type argument (KTOR-5905)
  • Make LDAP Auth return generic Principal instead of UserIdPrincipal (KTOR-793)
  • Logger name should be prefixed with io.ktor (KTOR-938)

Features

  • Add Server-sent events (SSE) plugin for client and support for OkHttp engine (KTOR-505)
  • Client support for SSE plugin (CIO, Apache, Java) (KTOR-5963)
  • SSE plugin support in Js, Android, Curl, Darwin, WinHttp client engine (KTOR-6217)
  • Add Server-sent events (SSE) plugin for server (KTOR-6172)
  • Support UTF-8 BOM character (KTOR-5812)
  • Support Compression of Request Body with ContentEncoding Client Plugin (KTOR-4502)