diff --git a/codeSnippets/gradle.properties b/codeSnippets/gradle.properties index acadb013b..3ba4a395a 100644 --- a/codeSnippets/gradle.properties +++ b/codeSnippets/gradle.properties @@ -8,9 +8,9 @@ kotlin.mpp.applyDefaultHierarchyTemplate=false org.gradle.java.installations.auto-download=false # versions kotlin_version = 2.3.21 -ktor_version = 3.5.0 -kotlinx_coroutines_version = 1.10.2 -kotlinx_serialization_version = 1.9.0 +ktor_version = 3.5.1 +kotlinx_coroutines_version = 1.11.0 +kotlinx_serialization_version = 1.11.0 kotlin_css_version = 1.0.0-pre.721 exposed_version = 1.3.0 h2_version = 2.4.240 diff --git a/codeSnippets/snippets/aws-elastic-beanstalk/build.gradle.kts b/codeSnippets/snippets/aws-elastic-beanstalk/build.gradle.kts index 3cc6b54f3..1e9def13f 100644 --- a/codeSnippets/snippets/aws-elastic-beanstalk/build.gradle.kts +++ b/codeSnippets/snippets/aws-elastic-beanstalk/build.gradle.kts @@ -3,7 +3,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/client-custom-plugin-data-transformation/src/main/kotlin/com/example/plugins/DataTransformation.kt b/codeSnippets/snippets/client-custom-plugin-data-transformation/src/main/kotlin/com/example/plugins/DataTransformation.kt index 115f36479..c04b9646e 100644 --- a/codeSnippets/snippets/client-custom-plugin-data-transformation/src/main/kotlin/com/example/plugins/DataTransformation.kt +++ b/codeSnippets/snippets/client-custom-plugin-data-transformation/src/main/kotlin/com/example/plugins/DataTransformation.kt @@ -17,7 +17,7 @@ val DataTransformationPlugin = createClientPlugin("DataTransformationPlugin") { } transformResponseBody { response, content, requestedType -> if (requestedType.type == User::class) { - val receivedContent = content.readUTF8Line()!!.split(";") + val receivedContent = content.readLine()!!.split(";") User(receivedContent[0], receivedContent[1].toInt()) } else { content diff --git a/codeSnippets/snippets/client-http-send/build.gradle.kts b/codeSnippets/snippets/client-http-send/build.gradle.kts index acc5230ea..110dc52e7 100644 --- a/codeSnippets/snippets/client-http-send/build.gradle.kts +++ b/codeSnippets/snippets/client-http-send/build.gradle.kts @@ -19,7 +19,7 @@ repositories { dependencies { implementation("io.ktor:ktor-client-core:$ktor_version") - implementation("io.ktor:ktor-client-apache:$ktor_version") + implementation("io.ktor:ktor-client-apache5:$ktor_version") implementation("ch.qos.logback:logback-classic:$logback_version") testImplementation("junit:junit:$junit_version") testImplementation("org.hamcrest:hamcrest:$hamcrest_version") diff --git a/codeSnippets/snippets/client-http-send/src/main/kotlin/com/example/Application.kt b/codeSnippets/snippets/client-http-send/src/main/kotlin/com/example/Application.kt index 6a5a90cf2..196961a10 100644 --- a/codeSnippets/snippets/client-http-send/src/main/kotlin/com/example/Application.kt +++ b/codeSnippets/snippets/client-http-send/src/main/kotlin/com/example/Application.kt @@ -1,7 +1,7 @@ package com.example import io.ktor.client.* -import io.ktor.client.engine.apache.* +import io.ktor.client.engine.apache5.* import io.ktor.client.plugins.* import io.ktor.client.request.* import io.ktor.client.statement.* @@ -9,7 +9,7 @@ import kotlinx.coroutines.* fun main() { runBlocking { - val client = HttpClient(Apache) + val client = HttpClient(Apache5) client.plugin(HttpSend).intercept { request -> val originalCall = execute(request) if (originalCall.response.status.value !in 100..399) { diff --git a/codeSnippets/snippets/client-json/build.gradle.kts b/codeSnippets/snippets/client-json/build.gradle.kts index 1bcbc5070..0ade93976 100644 --- a/codeSnippets/snippets/client-json/build.gradle.kts +++ b/codeSnippets/snippets/client-json/build.gradle.kts @@ -17,7 +17,7 @@ repositories { dependencies { implementation("io.ktor:ktor-client-core:$ktor_version") - implementation("io.ktor:ktor-client-apache:$ktor_version") + implementation("io.ktor:ktor-client-apache5:$ktor_version") implementation("io.ktor:ktor-client-content-negotiation:$ktor_version") implementation("io.ktor:ktor-serialization-gson:$ktor_version") implementation("ch.qos.logback:logback-classic:$logback_version") diff --git a/codeSnippets/snippets/client-json/src/main/kotlin/com/example/JsonClient.kt b/codeSnippets/snippets/client-json/src/main/kotlin/com/example/JsonClient.kt index c731cfd1a..763340090 100644 --- a/codeSnippets/snippets/client-json/src/main/kotlin/com/example/JsonClient.kt +++ b/codeSnippets/snippets/client-json/src/main/kotlin/com/example/JsonClient.kt @@ -2,7 +2,7 @@ package com.example import io.ktor.client.* import io.ktor.client.call.* -import io.ktor.client.engine.apache.* +import io.ktor.client.engine.apache5.* import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.request.* import io.ktor.serialization.gson.* @@ -12,7 +12,7 @@ data class Model(val name: String, val items: List) data class Item(val key: String, val value: String) fun main(args: Array) = runBlocking { - val client = HttpClient(Apache) { + val client = HttpClient(Apache5) { install(ContentNegotiation) { gson() } diff --git a/codeSnippets/snippets/custom-plugin-base-api/src/main/kotlin/com/example/plugins/DataTransformation.kt b/codeSnippets/snippets/custom-plugin-base-api/src/main/kotlin/com/example/plugins/DataTransformation.kt index f03cb4435..032d823ca 100644 --- a/codeSnippets/snippets/custom-plugin-base-api/src/main/kotlin/com/example/plugins/DataTransformation.kt +++ b/codeSnippets/snippets/custom-plugin-base-api/src/main/kotlin/com/example/plugins/DataTransformation.kt @@ -13,7 +13,7 @@ class DataTransformation { override fun install(pipeline: ApplicationCallPipeline, configure: Configuration.() -> Unit): DataTransformation { val plugin = DataTransformation() pipeline.receivePipeline.intercept(ApplicationReceivePipeline.Transform) { data -> - val newValue = (data as ByteReadChannel).readUTF8Line()?.toInt()?.plus(1) + val newValue = (data as ByteReadChannel).readLine()?.toInt()?.plus(1) if (newValue != null) { proceedWith(newValue) } diff --git a/codeSnippets/snippets/custom-plugin/src/main/kotlin/com/example/plugins/DataTransformationPlugin.kt b/codeSnippets/snippets/custom-plugin/src/main/kotlin/com/example/plugins/DataTransformationPlugin.kt index aae5257c1..2ee74e311 100644 --- a/codeSnippets/snippets/custom-plugin/src/main/kotlin/com/example/plugins/DataTransformationPlugin.kt +++ b/codeSnippets/snippets/custom-plugin/src/main/kotlin/com/example/plugins/DataTransformationPlugin.kt @@ -7,7 +7,7 @@ val DataTransformationPlugin = createApplicationPlugin(name = "DataTransformatio onCallReceive { call -> transformBody { data -> if (requestedType?.type == Int::class) { - val line = data.readUTF8Line() ?: "1" + val line = data.readLine() ?: "1" line.toInt() + 1 } else { data diff --git a/codeSnippets/snippets/deployment-ktor-plugin/build.gradle.kts b/codeSnippets/snippets/deployment-ktor-plugin/build.gradle.kts index 13882b34e..fa3c5dbdf 100644 --- a/codeSnippets/snippets/deployment-ktor-plugin/build.gradle.kts +++ b/codeSnippets/snippets/deployment-ktor-plugin/build.gradle.kts @@ -4,7 +4,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/engine-main-custom-environment/build.gradle.kts b/codeSnippets/snippets/engine-main-custom-environment/build.gradle.kts index 893051cb9..daa9ce332 100644 --- a/codeSnippets/snippets/engine-main-custom-environment/build.gradle.kts +++ b/codeSnippets/snippets/engine-main-custom-environment/build.gradle.kts @@ -4,7 +4,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/forwarded-header/build.gradle.kts b/codeSnippets/snippets/forwarded-header/build.gradle.kts index a8c53d90f..423ac7689 100644 --- a/codeSnippets/snippets/forwarded-header/build.gradle.kts +++ b/codeSnippets/snippets/forwarded-header/build.gradle.kts @@ -4,7 +4,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/full-stack-task-manager/gradle/libs.versions.toml b/codeSnippets/snippets/full-stack-task-manager/gradle/libs.versions.toml index 35cfdc05f..ee6ca8424 100644 --- a/codeSnippets/snippets/full-stack-task-manager/gradle/libs.versions.toml +++ b/codeSnippets/snippets/full-stack-task-manager/gradle/libs.versions.toml @@ -14,7 +14,7 @@ junit = "4.13.2" kotlin = "2.4.0" kotlin-wrappers = "2026.5.3" kotlinx-coroutines = "1.11.0" -ktor = "3.5.0" +ktor = "3.5.1" logback = "1.5.32" material3 = "1.11.0-alpha07" kotlinx-serialization-json = "1.11.0" diff --git a/codeSnippets/snippets/htmx-integration/build.gradle.kts b/codeSnippets/snippets/htmx-integration/build.gradle.kts index 4ec94e8bc..3586800f7 100644 --- a/codeSnippets/snippets/htmx-integration/build.gradle.kts +++ b/codeSnippets/snippets/htmx-integration/build.gradle.kts @@ -4,7 +4,7 @@ val logback_version: String by project plugins { kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } group = "com.example" diff --git a/codeSnippets/snippets/legacy-interactive-website/build.gradle.kts b/codeSnippets/snippets/legacy-interactive-website/build.gradle.kts index c5b13d94c..d391acde8 100644 --- a/codeSnippets/snippets/legacy-interactive-website/build.gradle.kts +++ b/codeSnippets/snippets/legacy-interactive-website/build.gradle.kts @@ -4,7 +4,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/migrating-express-ktor/gradle.properties b/codeSnippets/snippets/migrating-express-ktor/gradle.properties index 0e8bfcb59..269fda051 100644 --- a/codeSnippets/snippets/migrating-express-ktor/gradle.properties +++ b/codeSnippets/snippets/migrating-express-ktor/gradle.properties @@ -1,4 +1,4 @@ -ktor_version=3.5.0 -kotlin_version=2.2.20 +ktor_version=3.5.1 +kotlin_version=2.3.21 logback_version=1.5.33 kotlin.code.style=official diff --git a/codeSnippets/snippets/openapi-spec-gen-maven/gradle/libs.versions.toml b/codeSnippets/snippets/openapi-spec-gen-maven/gradle/libs.versions.toml index 174fcc784..224a9f8bb 100644 --- a/codeSnippets/snippets/openapi-spec-gen-maven/gradle/libs.versions.toml +++ b/codeSnippets/snippets/openapi-spec-gen-maven/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.3.21" -ktor = "3.5.0" +ktor = "3.5.1" logback = "1.5.33" [libraries] diff --git a/codeSnippets/snippets/openapi-spec-gen-maven/pom.xml b/codeSnippets/snippets/openapi-spec-gen-maven/pom.xml index 29b9650bc..2ba433552 100644 --- a/codeSnippets/snippets/openapi-spec-gen-maven/pom.xml +++ b/codeSnippets/snippets/openapi-spec-gen-maven/pom.xml @@ -10,7 +10,7 @@ official 2.3.21 - 3.5.0 + 3.5.1 1.5.33 2.0.9 UTF-8 diff --git a/codeSnippets/snippets/openapi-spec-gen/build.gradle.kts b/codeSnippets/snippets/openapi-spec-gen/build.gradle.kts index cca01a694..9696d77ad 100644 --- a/codeSnippets/snippets/openapi-spec-gen/build.gradle.kts +++ b/codeSnippets/snippets/openapi-spec-gen/build.gradle.kts @@ -5,7 +5,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/opentelemetry/gradle/libs.versions.toml b/codeSnippets/snippets/opentelemetry/gradle/libs.versions.toml index e8aa78acc..ffe478f53 100644 --- a/codeSnippets/snippets/opentelemetry/gradle/libs.versions.toml +++ b/codeSnippets/snippets/opentelemetry/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.3.21" -ktor = "3.5.0" +ktor = "3.5.1" logback = "1.5.33" opentelemetry = "2.18.1-alpha" opentelemetry_semconv = "1.34.0" diff --git a/codeSnippets/snippets/proguard/build.gradle.kts b/codeSnippets/snippets/proguard/build.gradle.kts index 90c1e72f8..011001a44 100644 --- a/codeSnippets/snippets/proguard/build.gradle.kts +++ b/codeSnippets/snippets/proguard/build.gradle.kts @@ -17,7 +17,7 @@ buildscript { plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/codeSnippets/snippets/server-websockets-sharedflow/build.gradle.kts b/codeSnippets/snippets/server-websockets-sharedflow/build.gradle.kts index 96494065d..0ce908305 100644 --- a/codeSnippets/snippets/server-websockets-sharedflow/build.gradle.kts +++ b/codeSnippets/snippets/server-websockets-sharedflow/build.gradle.kts @@ -5,7 +5,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" kotlin("plugin.serialization").version("2.2.20") } diff --git a/codeSnippets/snippets/session-cookie-client/src/main/kotlin/cookieclient/Application.kt b/codeSnippets/snippets/session-cookie-client/src/main/kotlin/cookieclient/Application.kt index 8349b3863..84fa3d069 100644 --- a/codeSnippets/snippets/session-cookie-client/src/main/kotlin/cookieclient/Application.kt +++ b/codeSnippets/snippets/session-cookie-client/src/main/kotlin/cookieclient/Application.kt @@ -12,8 +12,8 @@ data class UserSession(val id: String, val count: Int) fun Application.main() { install(Sessions) { - val secretEncryptKey = hex("00112233445566778899aabbccddeeff") - val secretSignKey = hex("6819b57a326945c1968f45236589") + val secretEncryptKey = "00112233445566778899aabbccddeeff".hexToByteArray() + val secretSignKey = "6819b57a326945c1968f45236589".hexToByteArray() cookie("user_session") { cookie.path = "/" cookie.maxAgeInSeconds = 10 diff --git a/codeSnippets/snippets/session-cookie-server/src/main/kotlin/com/example/Application.kt b/codeSnippets/snippets/session-cookie-server/src/main/kotlin/com/example/Application.kt index e8fe0415a..b4ad5a367 100644 --- a/codeSnippets/snippets/session-cookie-server/src/main/kotlin/com/example/Application.kt +++ b/codeSnippets/snippets/session-cookie-server/src/main/kotlin/com/example/Application.kt @@ -12,7 +12,7 @@ data class CartSession(val userID: String, val productIDs: MutableList) fun Application.main() { install(Sessions) { - val secretSignKey = hex("6819b57a326945c1968f45236589") + val secretSignKey = "6819b57a326945c1968f45236589".hexToByteArray() cookie("cart_session", SessionStorageMemory()) { cookie.path = "/" transform(SessionTransportTransformerMessageAuthentication(secretSignKey)) diff --git a/codeSnippets/snippets/session-header-server/src/main/kotlin/com/example/Application.kt b/codeSnippets/snippets/session-header-server/src/main/kotlin/com/example/Application.kt index 0d8df4de3..e3318694d 100644 --- a/codeSnippets/snippets/session-header-server/src/main/kotlin/com/example/Application.kt +++ b/codeSnippets/snippets/session-header-server/src/main/kotlin/com/example/Application.kt @@ -13,7 +13,7 @@ data class CartSession(val userID: String, val productIDs: MutableList) fun Application.main() { install(Sessions) { - val secretSignKey = hex("6819b57a326945c1968f45236589") + val secretSignKey = "6819b57a326945c1968f45236589".hexToByteArray() header("cart_session", directorySessionStorage(File("build/.sessions"))) { transform(SessionTransportTransformerMessageAuthentication(secretSignKey)) } diff --git a/codeSnippets/snippets/sockets-client/src/main/kotlin/com/example/Application.kt b/codeSnippets/snippets/sockets-client/src/main/kotlin/com/example/Application.kt index b2e4459bf..8db72b9f8 100644 --- a/codeSnippets/snippets/sockets-client/src/main/kotlin/com/example/Application.kt +++ b/codeSnippets/snippets/sockets-client/src/main/kotlin/com/example/Application.kt @@ -16,7 +16,7 @@ fun main(args: Array) { launch(Dispatchers.IO) { while (true) { - val greeting = receiveChannel.readUTF8Line() + val greeting = receiveChannel.readLine() if (greeting != null) { println(greeting) } else { diff --git a/codeSnippets/snippets/sockets-server/src/main/kotlin/com/example/Application.kt b/codeSnippets/snippets/sockets-server/src/main/kotlin/com/example/Application.kt index bb0fb8476..920140470 100644 --- a/codeSnippets/snippets/sockets-server/src/main/kotlin/com/example/Application.kt +++ b/codeSnippets/snippets/sockets-server/src/main/kotlin/com/example/Application.kt @@ -19,7 +19,7 @@ fun main(args: Array) { sendChannel.writeStringUtf8("Please enter your name\n") try { while (true) { - val name = receiveChannel.readUTF8Line() + val name = receiveChannel.readLine() sendChannel.writeStringUtf8("Hello, $name!\n") } } catch (e: Throwable) { diff --git a/codeSnippets/snippets/tutorial-client-kmp/gradle/libs.versions.toml b/codeSnippets/snippets/tutorial-client-kmp/gradle/libs.versions.toml index 176fc2fb4..366b5b535 100644 --- a/codeSnippets/snippets/tutorial-client-kmp/gradle/libs.versions.toml +++ b/codeSnippets/snippets/tutorial-client-kmp/gradle/libs.versions.toml @@ -12,8 +12,8 @@ androidx-testExt = "1.3.0" composeMultiplatform = "1.9.0" junit = "4.13.2" kotlin = "2.3.21" -ktor = "3.5.0" -kotlinx-coroutines = "1.10.2" +ktor = "3.5.1" +kotlinx-coroutines = "1.11.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } diff --git a/codeSnippets/snippets/tutorial-kotlin-rpc-app/build.gradle.kts b/codeSnippets/snippets/tutorial-kotlin-rpc-app/build.gradle.kts index aecdb33ba..0d2901a4f 100644 --- a/codeSnippets/snippets/tutorial-kotlin-rpc-app/build.gradle.kts +++ b/codeSnippets/snippets/tutorial-kotlin-rpc-app/build.gradle.kts @@ -1,7 +1,7 @@ plugins { kotlin("jvm") version "2.3.0" kotlin("plugin.serialization") version "2.3.0" - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" id("org.jetbrains.kotlinx.rpc.plugin") version "0.10.1" } diff --git a/codeSnippets/snippets/tutorial-server-db-integration/settings.gradle.kts b/codeSnippets/snippets/tutorial-server-db-integration/settings.gradle.kts index 6acf66e4d..c7ff9b97f 100644 --- a/codeSnippets/snippets/tutorial-server-db-integration/settings.gradle.kts +++ b/codeSnippets/snippets/tutorial-server-db-integration/settings.gradle.kts @@ -15,7 +15,7 @@ dependencyResolutionManagement { mavenCentral() } versionCatalogs { - create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.0") + create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.1") } } diff --git a/codeSnippets/snippets/tutorial-server-docker-compose/build.gradle.kts b/codeSnippets/snippets/tutorial-server-docker-compose/build.gradle.kts index 01a2f20d4..9e33646a7 100644 --- a/codeSnippets/snippets/tutorial-server-docker-compose/build.gradle.kts +++ b/codeSnippets/snippets/tutorial-server-docker-compose/build.gradle.kts @@ -8,7 +8,7 @@ val h2_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } diff --git a/codeSnippets/snippets/tutorial-server-get-started-maven/pom.xml b/codeSnippets/snippets/tutorial-server-get-started-maven/pom.xml index 7f9524e55..b2f46fa13 100644 --- a/codeSnippets/snippets/tutorial-server-get-started-maven/pom.xml +++ b/codeSnippets/snippets/tutorial-server-get-started-maven/pom.xml @@ -10,7 +10,7 @@ official 2.3.21 - 3.5.0 + 3.5.1 1.5.33 2.0.9 UTF-8 diff --git a/codeSnippets/snippets/tutorial-server-restful-api/settings.gradle.kts b/codeSnippets/snippets/tutorial-server-restful-api/settings.gradle.kts index 2d16a46cc..c619ce889 100644 --- a/codeSnippets/snippets/tutorial-server-restful-api/settings.gradle.kts +++ b/codeSnippets/snippets/tutorial-server-restful-api/settings.gradle.kts @@ -12,7 +12,7 @@ dependencyResolutionManagement { mavenCentral() } versionCatalogs { - create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.0") + create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.1") } } diff --git a/codeSnippets/snippets/tutorial-server-routing-and-requests/settings.gradle.kts b/codeSnippets/snippets/tutorial-server-routing-and-requests/settings.gradle.kts index 63cf929c3..d1c149097 100644 --- a/codeSnippets/snippets/tutorial-server-routing-and-requests/settings.gradle.kts +++ b/codeSnippets/snippets/tutorial-server-routing-and-requests/settings.gradle.kts @@ -12,7 +12,7 @@ dependencyResolutionManagement { mavenCentral() } versionCatalogs { - create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.0") + create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.1") } } diff --git a/codeSnippets/snippets/tutorial-server-web-application/settings.gradle.kts b/codeSnippets/snippets/tutorial-server-web-application/settings.gradle.kts index 8e974b8db..d2ea251ec 100644 --- a/codeSnippets/snippets/tutorial-server-web-application/settings.gradle.kts +++ b/codeSnippets/snippets/tutorial-server-web-application/settings.gradle.kts @@ -14,7 +14,7 @@ dependencyResolutionManagement { mavenCentral() } versionCatalogs { - create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.0") + create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.1") } } diff --git a/codeSnippets/snippets/tutorial-website-static/build.gradle.kts b/codeSnippets/snippets/tutorial-website-static/build.gradle.kts index 2fbaccc67..674b15aa3 100644 --- a/codeSnippets/snippets/tutorial-website-static/build.gradle.kts +++ b/codeSnippets/snippets/tutorial-website-static/build.gradle.kts @@ -5,7 +5,7 @@ val logback_version: String by project plugins { application kotlin("jvm") - id("io.ktor.plugin") version "3.5.0" + id("io.ktor.plugin") version "3.5.1" } application { diff --git a/help-versions.json b/help-versions.json index 7102ee499..ffb123669 100644 --- a/help-versions.json +++ b/help-versions.json @@ -10,7 +10,7 @@ "isCurrent": false }, { - "version": "3.5.0", + "version": "3.5.1", "url": "/docs/", "isCurrent": true } diff --git a/project.ihp b/project.ihp index fe4a2b329..019e7ac2e 100644 --- a/project.ihp +++ b/project.ihp @@ -14,7 +14,7 @@ diff --git a/topics/releases.md b/topics/releases.md index 6c5fd08a4..aeb58c811 100644 --- a/topics/releases.md +++ b/topics/releases.md @@ -33,6 +33,15 @@ The following table lists details of the latest Ktor releases. +
VersionRelease DateHighlights
3.5.1June 26, 2026 +

+A patch release including OpenAPI plugin improvements, expanded authentication KDoc documentation, and a wide range of +bug fixes covering Kotlin 2.4 compiler compatibility, HTTP and caching behavior, authentication, WebRTC stability, and +platform-specific issues across JVM, Darwin, Android, and Windows. +

+ + +
3.5.0May 15, 2026

A minor release that introduces RFC 7616 Digest authentication support, custom DNS resolver configuration for OkHttp diff --git a/topics/server-custom-plugins.md b/topics/server-custom-plugins.md index 38284d1d4..f50e8cbd3 100644 --- a/topics/server-custom-plugins.md +++ b/topics/server-custom-plugins.md @@ -142,7 +142,7 @@ handle `transformBody` inside `onCallReceive` as follows: used to check the requested data type. 2. `data` is a lambda argument that allows you to receive a request body as [ByteReadChannel](https://api.ktor.io/ktor-io/io.ktor.utils.io/-byte-read-channel/index.html) and convert it to - the required type. In the example above, `ByteReadChannel.readUTF8Line` is used to read a request body. + the required type. In the example above, `ByteReadChannel.readLine()` is used to read a request body. 3. Finally, you need to transform and return data. In our example, `1` is added to the received integer value. You can find the full example diff --git a/v.list b/v.list index 16e67b708..f0ac674b8 100644 --- a/v.list +++ b/v.list @@ -4,9 +4,9 @@ - + - +