#ktor
I’m not going to use ktor as a network client anymore, here’s why
Низкая скорость записи в файлы и Socket - причина отказа автора стать от Ktor в качестве клиента. Java выполняет аналогичные операции на порядок быстрее.
Также демонстрируется своё решение на Coroutine, которое также смогло ускорить работу с этими операциями и работает с Coroutines
I’m not going to use ktor as a network client anymore, here’s why
Низкая скорость записи в файлы и Socket - причина отказа автора стать от Ktor в качестве клиента. Java выполняет аналогичные операции на порядок быстрее.
Также демонстрируется своё решение на Coroutine, которое также смогло ускорить работу с этими операциями и работает с Coroutines
#ktor
Вышел Ktor 1.6.0
Релиз вышел скромным
👉 Прогресс на клиенте
👉 Поддержка Bearer authentication на клиенте
👉 Прочие улучшения
Вышел Ktor 1.6.0
Релиз вышел скромным
👉 Прогресс на клиенте
👉 Поддержка Bearer authentication на клиенте
👉 Прочие улучшения
Руководство по анализу сетевому трафику из Ktor на Android с помощью Chuncker - утилита для анализу запроcов на устройстве.
#ktor #android
#ktor #android
👍16👎4
Опубликовали план развития Ktor на 2024:
👉 Плагин OpenTelemetry
👉 Поддержка gRPC на сервере и клиенте
👉 Миграция на kotlinx-io в Ktor 3.0
👉 Поддержка управления транзакциями в БД
👉 Упрощенный DI в Ktor Server
👉 Улучшение документации
👉 Сторонние плагины Ktor будут приниматься и предлагаться при создании нового Ktor проекта через Web
👉 CLI Tool для Ktor
#ktor
👉 Плагин OpenTelemetry
👉 Поддержка gRPC на сервере и клиенте
👉 Миграция на kotlinx-io в Ktor 3.0
👉 Поддержка управления транзакциями в БД
👉 Упрощенный DI в Ktor Server
👉 Улучшение документации
👉 Сторонние плагины Ktor будут приниматься и предлагаться при создании нового Ktor проекта через Web
👉 CLI Tool для Ktor
#ktor
👍39❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Запустили Ktor Plugin Registry - сайт с плагинами для Ktor. Доступен во время создания нового проекта через сайт
Если хотите что-то туда опубликовать - читайте руководство
#ktor
Если хотите что-то туда опубликовать - читайте руководство
#ktor
🔥27👍7
Интересное сравнение как много Java потоков используют разные реализации сетевых клиентов и оберток над ними.
На Android, JVM и Native вы можете использовать реализацию Ktor CIO - полностью асинхронная и от и до на корутинах, правда поддерживает HTTP/1.x
#производительность #ktor
На Android, JVM и Native вы можете использовать реализацию Ktor CIO - полностью асинхронная и от и до на корутинах, правда поддерживает HTTP/1.x
#производительность #ktor
👍25❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Выпустили Ktor plugin registry - подборка различных плагинов для Ktor. Используется он как часть Web генератора Ktor проекта или через плагин IDEA
#ktor
#ktor
🔥27👍3
Вышла вторая beta Ktor 3.0
👉 Поддержка Kotlin 2.0
👉 I/O теперь работает на основе kotlinx.io, а не собственной реализации
👉 Поддержка обработки HTTP ошибок в SSE
👉 Клиент Ktor для WASM
#ktor #wasm
👉 Поддержка Kotlin 2.0
👉 I/O теперь работает на основе kotlinx.io, а не собственной реализации
👉 Поддержка обработки HTTP ошибок в SSE
👉 Клиент Ktor для WASM
#ktor #wasm
🔥47👍1
Inspektify - KMP библиотека для Android и iOS с возможность отслеживания сетевых операций в реальном времени на основе Ktor
#ktor #network
#ktor #network
🔥56👍9❤1
Вышел Ktor 3.0:
👉 Миграция на kotlinx-io с собственного решения, что привело к увеличению производительности
👉 Поддержка server-sent events (SSE)
👉 Поддержка работы со статисческими ресурсами из ZIP архива
👉 Поддержка CSRF (Cross-Site Request Forgery)
👉 Появилась клиентская библиотека для WASM
🔗 Руководство по миграции на новую мажорную версию
#ktor #wasm
👉 Миграция на kotlinx-io с собственного решения, что привело к увеличению производительности
👉 Поддержка server-sent events (SSE)
👉 Поддержка работы со статисческими ресурсами из ZIP архива
👉 Поддержка CSRF (Cross-Site Request Forgery)
👉 Появилась клиентская библиотека для WASM
io.ktor:ktor-client-core:$ktor_version
🔗 Руководство по миграции на новую мажорную версию
#ktor #wasm
👍42🔥11
This media is not supported in your browser
VIEW IN TELEGRAM
Что нового:
👉 Обновленный дизайн
👉 Упростили настройку проекта
👉 Превью проекта, который будет сгенерирован
#kotlin #ktor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍7
🚀 Ktor 3.1.0 уже здесь!
JetBrains выпустила новый минорный релиз, который приносит множество полезных обновлений для Android-разработчиков.
👉 Новый CLI-конфигуратор – генерация проектов стала проще.
👉 Поддержка SSE – улучшенная сериализация и heartbeat-события.
👉 Multipart в HttpClient – удобная работа с загрузкой файлов.
👉 Экспериментальная поддержка WASM – новые горизонты для Ktor.
👉 Начало интеграции gRPC – первый шаг к мощной серверной коммуникации.
👉 Движок на основе Curl больше не требует установки сторонних зависимостей, поддерживает ARM и WebSocket
#kotlin #ktor #wasm #grpc
JetBrains выпустила новый минорный релиз, который приносит множество полезных обновлений для Android-разработчиков.
👉 Новый CLI-конфигуратор – генерация проектов стала проще.
👉 Поддержка SSE – улучшенная сериализация и heartbeat-события.
👉 Multipart в HttpClient – удобная работа с загрузкой файлов.
👉 Экспериментальная поддержка WASM – новые горизонты для Ktor.
👉 Начало интеграции gRPC – первый шаг к мощной серверной коммуникации.
👉 Движок на основе Curl больше не требует установки сторонних зависимостей, поддерживает ARM и WebSocket
#kotlin #ktor #wasm #grpc
🔥32👍9🎉3❤1
(все видео курса в комментариях к видео)
#kotlin #ktor #server
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Что нового в свежей версии:
👉 типизированная конфигурация
@Serializable
data class DatabaseConfig(
val jdbcUrl: String,
val username: String,
val password: String,
)
fun Application.module() {
property<DatabaseConfig>("database")
}
👉 Cобственный DI
fun Application.database(@Property("database") config: DatabaseConfig) {
dependencies {
provide("optional-name") { HikariDataSource(...) }
provide {
Database.connect(resolve<HikariDataSource>("optional-name"))
} cleanup { database: Database ->
TransactionManager.closeAndUnregister(database)
}
}
}
// suspend DI
suspend fun Application.module() {
val database: Database = dependencies.resolve()
...
}
👉 CIO клиент с поддержкой домен сокетов
val server = embeddedServer(CIO, configure = {
unixConnector("/tmp/test-unix-socket-client.sock")
}) {
routing {
get("/") {
call.respondText("Hello, Unix socket world!")
}
}
}
👉 Более тесная интеграция с HTMX (библиотека JavaScript, которая позволяет создавать динамические веб-интерфейсы без написания JavaScript-кода)
fun Application.routing() {
hx.get("/status") { /* Return HTML content */ }
get("/status") {
call.respondHtml {
head { script { src = "https://unpkg.com/htmx.org@1.9.12" } }
body {
div {
attributes.hx {
get = "/status"
trigger = "load"
}
}
}
}
}
}
👉 Ktor Version Catalog
// settings.gradle.kts
dependencyResolutionManagement {
versionCatalogs {
create("ktorLibs") {
from("io.ktor:ktor-version-catalog:3.2.0")
}
}
}
#ktor #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Подключаете зависимости и делается инициализацию
val client = HttpClient(engine) {
// body
install(LensHttpLogger){
level = LogLevel.ALL
}
}
#kotlin #kmp #ktor
Please open Telegram to view this post
VIEW IN TELEGRAM
❤43👍16🔥7