github ktorio/ktor 2.3.0

latest releases: 3.0.1, 3.0.0, 3.0.0-rc-2...
19 months ago

Published 19 April 2023

Features

  • Support loading multiple configuration files (KTOR-5658)
  • Static files filters or something similar to mod_rewrite (KTOR-818)
  • Built-in support for HEAD requests for static files (KTOR-4052)
  • Ability to set Content-Type of static resource (KTOR-2312)
  • Support regex patterns in routing (KTOR-5110)
  • Support Flow in ktor-serialization (KTOR-3788)
  • Upgrade Client Apache Engine Version to use Apache 5 (KTOR-4547)
  • Support for CURLOPT_CAINFO and CURLOPT_CAPATH in ktor-client-curl (KTOR-5614)
  • Allow passing multiple acceptable content types to accept route selector (KTOR-419)
  • Support 100 Continue (KTOR-829)

Improvements

  • The '425 Too Early' status code is missing in the HttpStatusCode enum (KTOR-4673)
  • Feature request: SO_REUSEADDR option for embedded server (KTOR-5529)
  • Add opportunity to pass type info into WebSockets serializing methods (KTOR-5740)
  • Ktor JS websocket client unconfigurable logging (KTOR-5456)
  • Update JTE to 2.3.0 (KTOR-5698)
  • Update Kotlin to 1.8.10 (KTOR-5544)
  • Migrate to the new Kotlin JS IR backend (KTOR-5543)
  • Prefer Node instead of browser behavior (KTOR-5650)
  • Update reported dependencies (KTOR-5662)
  • AutoHead should dispose response body (KTOR-5684)
  • Add append(String, List<String>) overload to FormBuilder (KTOR-5493)
  • Support serving static files from resources in GraalVM native image (KTOR-5580)
  • Comparable HttpStatusCode (KTOR-5629)
  • Support preCompressed with resources (KTOR-2677)
  • Add shutdown configuration for engine in stop method (KTOR-5560)
  • Logging: Add filter/sanitization of sensitive headers (KTOR-5523)
  • Add resource route builders accepting typed body as second parameter (KTOR-5589)
  • CallLogging: add config to avoid logging static file request (KTOR-5474)
  • Update Tomcat to 10 (KTOR-5266)
  • Update Jetty to version 11 (KTOR-5267)
  • Update Parameters and Headers DSL to be consistent with stdlib (KTOR-627)
  • Consider quoting Boolean during construction of multipart requests (KTOR-5405)
  • Simplify Static Content Plugin (KTOR-5265)

Bugfixes

  • Websockets: connection should be failed immediately when no continuation frame goes after a fragmented text frame (KTOR-5018)
  • Websockets: Connection should be failed immediately, since all data frames after the initial data frame must have opcode 0 (KTOR-5014)
  • Websockets: Connection should fail immediately (1002/Protocol Error) when control frame has a payload with more than 125 octets (KTOR-5006)
  • Java engine: Websockets client sends two PONG frames for each PING frame from a server (KTOR-5653)
  • Websockets: Erroneous trace log about expired websocket pings (KTOR-5672)
  • DarwinClientEngine: a request deadlocks on macOS since 2.2.2 (KTOR-5502)
  • Requests don't match in nested Regex Routing (KTOR-5750)
  • IllegalArgumentException in Regex Routing (KTOR-5748)
  • Unneeded escaping in Regex Routing isn't processed (KTOR-5746)
  • Native: Read from a closed socket doesn't throw an exception (KTOR-5093)
  • Reading response of HEAD request breaks when Content-Length > 0 (KTOR-5699)
  • "Serializer for class 'Any' is not found" error when responding with Any type since Ktor 2.2.4 (KTOR-5687)
  • BearerAuthProvider: Token is being refreshed multiple times when queued call finishes with 401 after refresh token succeeds (KTOR-5681)
  • CIO: nmap crashes server with "SocketException: Invalid argument" error (KTOR-5636)
  • DigestAuthProvider: realm sent from the server doesn't participate in the computation of response (KTOR-4514)
  • OAuth2: "JsonObject is not a JsonPrimitive" error when server replies with nested JSON object on a token request (KTOR-5669)
  • CallLogging: logs caused by an exception are suppressed when mdc provider is configured (KTOR-5665)
  • Metrics: ClassCastException when the DropwizardMetrics plugin is installed after the MicrometerMetrics plugin (KTOR-5595)
  • ByteBufferChannel throws exception when HttpCache, ContentEncoding and onDownload are used (KTOR-5532)
  • runBlocking in TestApplicationEngine loses coroutineContext (KTOR-5525)
  • Incorrect handling of private cache directive in HttpCachePlugin (KTOR-5570)
  • The default implementation of challengeFunction is empty, causing no session users to access protected resources (KTOR-5467)
  • Wrong ContentType for .mjs files (KTOR-5533)
  • Non-standard Content-Type headers for static files (KTOR-5311)
  • CIO: Client fails to parse response without Content-Length, Connection headers and chunked transfer encoding (KTOR-5327)
  • Conflict between ContentNegotiation and Mustache plugins (KTOR-5337)

Don't miss a new ktor release

NewReleases is sending notifications on new releases.