CLOVIS
07/30/2025, 7:00 AMObjectId
and Timestamp
• Support for kotlin.time.Instant
• Added the operators $switch
, $type
, $isNumber
, `$isArray`…, $bitsAllClear
, `$bitsAnyClear`…
• Added the options `writeConcern`and readPreference
https://opensavvy.gitlab.io/ktmongo/docs • #C078Z1QRHL3joseph_ivie
07/30/2025, 10:33 PMStefan Oltmann
08/01/2025, 4:01 PMCLOVIS
08/01/2025, 4:11 PMDecimal128
, but also the deprecated DbPointer
). ObjectId
, Timestamp
, BsonDocument
, BsonArray
etc are all multiplatform currently.
• The BSON encoder/decoder has the same amount of progress as the data types. Notably, the decoder is 0-copy (it doesn't use more memory than the binary representation of the request, except some lightweight temporary objects) and lazy (it can skip over entire subdocuments if the user doesn't care about their contents). The encoder is streaming and doesn't need an intermediary representation (it's straight from your objects to the final binary representation).
• There is no multiplatform KotlinX.Serialization support for now.
• The DSL (all operators) is not compiled for non-JVM platforms for now, but it's pure Kotlin code except for the yet-unsupported data types mentioned above.
• After that, the main difficult part is the socket protocol to actually send the sockets to the database. This is not started yet but I've got a few ideas of how to make that quite fast.
Of course, this will be entirely coroutine-powered with no blocking I/O.Stefan Oltmann
08/01/2025, 4:12 PMCLOVIS
08/01/2025, 4:12 PMCLOVIS
08/01/2025, 4:13 PM