:mega: ktor 1.3.0 has been released! - ktor clien...
# ktor
c
📣 ktor 1.3.0 has been released! • 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-dependant code (#1491) • Fixed unclosed websocket channels if cancelled too early • TCP half-close made optional for CIO client engine and disabled by default. (#1456) • Improved ktor-client-mock engine to be thread safe (#1505) • Fixed client cookies logging (#1506) • Fixed multiple application stop events in test engine (#1498) • Fixed CIO ActorSelectorManager to not spin due to cancelled keys (affects both CIO client and server) • Made default auth validate functions fail to force users to implement them • Introduced test client instance in the test server • Fixed various server and client engines to return
null
for missing headers rather than empty list • Introduced support for json structures in client and server (#1519) • Introduced ktor-server-core binary compatibility tracking • kotlinx.coroutines 1.3.3 See migration guide: https://ktor.io/quickstart/migration/1.3.0.html Known issues: • Netty HTTP/2 push sometimes get broken • Running ios and native client engine on non-main worker is still not supported (there are only few working scenarios so not guaranteed to work)
👍🏼 1
đź‘Ť 3
🎉 30
r
We just no longer need
setMapper
, even on native?
c
There is no need to register types anymore
🎉 2
đź‘Ź 1
r
Found a small typo: migration guide says "Published 14 Jan 202 (
1.3.0
)" 🙂