Releases: ktorio/ktor
Releases · ktorio/ktor
1.3.0-rc
- ktor client proxy support
- Introduced
HttpStatement
and deprecated potentially dangerous resource-leaking client API - Eliminated kotlinx.io dependency
- Fixed server identity compression handling: keep original content length
- Fixed handling GET requests with body (#1302)
- Fixed curl request with empty body
- Added iOS url session configuration
- Fixed CIO engine no longer sends port in "Host" header (#1295)
- Add INTRINSIC value to TLS signature algorithms
- Introduced ability to send string in request body
- Improved client and server typeOf support with kotlinx.serialization
- Gradle 5.4.1+ with newer metadata (metadata 1.0)
- Improved exceptions handling in client and server on Android
- Added missing TLS parameters and relaxed TLS parsing to ignore unsupported features
- Improved session diagnostics (#1368)
- Fixed
hookRequests
in test engine (#1300) - Deprecate java.time related API and related cleanup (for future kotlin.time support)
- Restricted CIO HTTP headers parser
- Introduced header name and value validation
- Fixed must-revalidate on the request side in ktor client (#1406)
- Fixed OkHttp client resource cleanup on close
- Added watchos/tvos native targets
- Fixed content truncation at native and JS targets
- Fixed server's
If-Range
header parsing to avoid crash at date parsing (#1377) - Fixed server's conditional headers processing
- Reduced required JDK version for
DefaultHeaders
server feature - Fixed client hanging due to exception in response pipeline
- Replaced HttpClientJvmEngine to HttpClientEngineBase that is now common for all platforms (affects only custom client engines)
- Fixed hierarchy of execution and call contexts in clients that allows to properly handle request lifetime using execution context.
- Optimize JS module import time (#1464)
- Upgraded versions of Netty, Jetty and Tomcat implementations
- Added Pebble template engine (#1374)
- Introduced localPort route that is always tied to actual socket port (#1392)
- Fixed cookie expiration date parsing (#1390)
- Server authentication feature's phases are now public (#1160)
- Fixed auth header resending after redirect (#1467)
- TCP half-close made optional for CIO client engine and disabled by default.
- Apache client random timeouts fixed
- Fixed locale-dependat code (#1491)
- Fixed unclosed websocket channels if cancelled too early
- kotlinx.coroutines 1.3.3
1.2.5
Published 27 Sep 2019
- Fixed
ClosedSendChannel
exceptions in client and server - Fixed Android crash on client and server exceptions
- Fixed server identity compression handling: keep original content length
- Fixed partial content without the passed range doesn't have content length
- Fixed curl request with empty body
- Fixed empty client form data (#1297)
- Fixed CIO engine no longer sends port in "Host" header (#1295)
- Fixed potential deadlock in Android engine
- Gradle Metadata 1.0 (Gradle 5.6.2)
- kotlinx.coroutines 1.3.2
- kotlinx.serialization 0.13.0
- Dropwizard 4.1.0
- jackson 2.9.9.3
1.3.0-beta-1
- ktor client proxy support
- Eliminated kotlinx.io dependency
- Fixed server identity compression handling: keep original content length
- Fixed handling GET requests with body (#1302)
- Fixed curl request with empty body
- Added iOS url session configuration
- Fixed CIO engine no longer sends port in "Host" header (#1295)
- Add INTRINSIC value to TLS signature algorithms
- Introduced ability to send string in request body
- Improved client and server typeOf support with kotlinx.serialization
- Gradle 5.4.1+ with newer metadata
- Improved exceptions handling in client and server on Android
- Added missing TLS parameters and relaxed TLS parsing to ignore unsupported features
There are breaking changes, see https://ktor.io/quickstart/migration/1.3.0.html
1.2.4
1.2.3
Published 1 Aug 2019
- JS websocket bugs fixes and improvements
- Eliminated Java9's Base64 implementation (useful for older JDK and Android)
- Fixed bug of adding unexpected trailing slash (#1201) (#1206)
- Improved apache and okhttp client engines performance
- Fixed client response body cancellation
- Added client response streaming on nodejs
- Deprecated old client
BasicAuth
- Introduced a flag to send auth without negotiation
- Added server kotlinx.serialization initial support (
SerializationConverter
) - Client TLS implementation fixes: cancellation and error handling.
- Added web assembly content type.
- Prohibited server double request content
call.receive
.- Introduce
DoubleReceive
feature that makes it work.
- Introduce
- Server CORS support fixed and improved
- Added initial kotlinx.serialization support for server including receiving generic collections.
- Introduced
ktor-bom
for better dependency management. - Improved jetty server engine configuration to enable manual connectors setup.
- Fixed client memory leak (#1223).
- Upgraded Jetty, Netty and utility libraries.
- Kotlin 1.3.41
Breaking changes/Migration steps:
- CORS doesn't allow non-simple request body content types anymore by default
- to allow extra content types such as json, enable
allowNonSimpleContentTypes
- to allow extra content types such as json, enable
- At least Kotlin 1.3.41 IS REQUIRED
1.2.3-rc
1.2.2
Published 20 June 2019
- Upgraded to Kotlin 1.3.40.
- Netty server engine uses native transports when available (#1122).
- Upgraded to Netty 4.1.36 (#1190).
- Added JVM shutdown hooks in server engines (#1111, #1164).
- Introduced challenge builder functions in server auth providers (#366, #921, #1130, #798).
- Segmentation fault is fixed in native clients (#1135).
- Improved gracefull shutdown in ktor client engines Jetty and Apache.
- Removed kotlin-reflect from ktor jvm clients (#1162).
- Client threads daemonized (#1170).
- Relaxed client cookie value restrictions (#1069).
- Fixed empty client requests with okhttp engine (#1175).
- API cleanup, deprecations.
- kotlinx.coroutines 1.2.2, kotlinx.serialization 0.11.1.
1.2.1
Published 27 May 2019
- Fixed module function lookup (regress, #1132)
- Fixed
SessionTransportTransformers
application order (#1147) - Fixed double content length header in requests on older Androids (#1060)
- Fixed receiving a byte channel crash on Android (#1140)
- Fixed websocket sockets lifecyle on Jetty engine
- Downgraded Gradle to reduce gradle metadata version
1.2.0
14 May 2019
- Introduced multiplatform websockets: jvm, js.
- Added client certificates support.
- Fixed updating session in directory storage (#963).
- Added optional contentType to formDsl (#910).
MockEngine
version which favors execution order and returns processed requests (#924).- Fixed
Unit
body serialization. - Allowed using preconfigured OkHttp client instance.
- Defined the client default user agent.
- Improved curl error diagnostics and resource management.
- Fixed LogLevel.NONE with body bytes.
- Added CIO endpoint config builder.
- Fixed status code check in client Auth feature.
- Fixed client close issue.
- Fixed:
GMTDate.toJvmDate()
uses current date instead of given date. (#986) - Moved client auth to common.
- Use
UTF-8
as default charset in BasicAuth. - Introduced client content encoding feature.
- Introduced client call validator feature.
- Old API deprecations and removals.
- Fixed gzip/deflate on JDK11
- Introduced JWT auth header retrieval configuration (#1048)
CallLogging
message format customization (#1047)- Fixed logging error with no call-related MDC (#1033)
- Avoided using constant hash salt in
UserHashedTableAuth
- Added LDAP auth provider proper characters escaping
- Minimized jetty core pool size and made it configurable (#1083)
- Made servlet engine use servlet config instead of context (#1063)
- Introduced accepted content types contributor in ContentNegotiation (#357)
- Introduced
ApplicationEnvironment.rootPath
with servlet engine support (context path) (#738) - Support for
rootPath
in routing by default (#738) - Introduce ability to serve web resources from WAR
- Added micrometer metrics (#1037)
- Added Thymeleaf templating feature (#988)
- Cookie session use
/
path by default (#1043) - Add hot reload experimental support for JDK9+ (VM option required)
HttpStatusCode
equals check is amended- Added client
AcceptCharset
header support KotlinxSerializer
moved to a separate artifact- Client engine API simplified
- Introduced client cache support
- Server authenticator config reworked
- Server digest auth updated to use UTF-8
- Added experimental android client line-wrapping logger
- Fixed webjars parameters handling and several minor fixes
- Introduced JWTVerifier configure block when using JWKProvider
- Added client json feature custom content types support
- Fixed incorrect url encoding for some characters (#1094)
- Fixed hanging jetty server engine
- Introduced CIO client engine request timeout config
- Added client multipart content length support
- Jetty upgraded to 9.4.15.v20190215
- okhttp client upgraded to 3.14.0
- Fixed CIO client CPU utilization issue
- Kotlin 1.3.31
- kotlinx.coroutines 1.2.1