Kdrant 2.0, a coroutine-first Kotlin client for the Qdrant vector database.
Two things in this release. There's an opt-in gRPC engine behind the same QdrantClient as the REST one, so switching wire is Kdrant(host) → KdrantGrpc(host) and nothing else changes. And kdrant-core is now multiplatform: JVM plus eight Kotlin/Native targets, and that migration changed no public API at all. The engines stay JVM-only for now (Ktor CIO and grpc-java are), so a KMP consumer shares its models, filter DSL and query building and brings its own transport.
The part I'd point at: adding the second engine changed zero lines of kdrant-core, and both engines run the same ~30 behavioural tests against a real Qdrant. That suite caught a real bug on its first run. The gRPC engine was sending with_payload = false where the caller had said nothing, Qdrant defaults it to true on scroll, and payloads were coming back empty without anything failing.
implementation("io.github.nacode-studios
kdrant transport rest2.0.0")
github.com/NaCode-Studios/Kdrant