kmongo icon indicating copy to clipboard operation
kmongo copied to clipboard

Appreciation post

Open krisgerhard opened this issue 8 months ago • 10 comments

This is probably not the right place for this but it has to be said.

I want to say a huge thank you for the contributors of this repository, especially @zigzago, for creating this wonderful library! You were most probably the reason why we stuck to MongoDB in many of our Kotlin projects. I'm sure we are not the only ones.

PS! I, personally, would like to hear you take on why kmongo didn't become part of official driver as I saw some pull-requests which were later closed. On one side migration to the official driver was fairly simple (with kotlinx.serialization) but as of today kmongo still wins by a huge margin when it comes to readability and developer convenience. As official Kotlin driver has taken a different route, have there been talks to include the vast collection of extension functions from kmongo to official repository?

Best of luck for the future!

krisgerhard avatar Oct 19 '23 10:10 krisgerhard

Thank you for the appreciation ! It was a pleasure to develop kmongo all these years :)

The MongoDb team has decided in the end to start from scratch, as they will maintain the driver. It was easier for them (and cleaner for their users) to understand the entire code base. And I agree with this decision.

I still intend to develop a third party library inspired from kmongo, to add some syntactic sugar to the mongo driver. I haven't found the time yet, but I think I will when I start migrating my own projects :)

zigzago avatar Oct 23 '23 20:10 zigzago

I have the same view. The official driver is just the java driver trying to pretend they know Kotlin. Yours is actually embracing the power of kotlin and using its features and style.

lsafer-meemer avatar Nov 01 '23 16:11 lsafer-meemer

My personal opinion is you should continue support this project and undeprecate it and make it like mongoose defeat the official driver

lsafer-meemer avatar Nov 01 '23 16:11 lsafer-meemer

A few days ago, I tried migrating to the official repository, but it failed. The polymorphic data classes using kotlinx.serialization could not be stored in the database, and the classes of kotlinx-datetime were encoded as strings instead of timestamps by default.

If someone also has similar requirements, migrating may not be a good idea for now.

FishHawk avatar Nov 16 '23 06:11 FishHawk

and the classes of kotlinx-datetime were encoded as strings instead of timestamps by default.

This might be because kotlinx-datetime defaults the serialisation of Instant to the InstantIso8601Serializer which serialises to a string. I'd actually be confused if that would be different when using KMongo by default - is that really the case?

mervyn-mccreight avatar Nov 22 '23 12:11 mervyn-mccreight

and the classes of kotlinx-datetime were encoded as strings instead of timestamps by default.

This might be because kotlinx-datetime defaults the serialisation of Instant to the InstantIso8601Serializer which serialises to a string. I'd actually be confused if that would be different when using KMongo by default - is that really the case?

KMongo serializes kotlinx-datetime correctly by default, at least in my project.

FishHawk avatar Nov 23 '23 07:11 FishHawk

I still intend to develop a third party library inspired from kmongo, to add some syntactic sugar to the mongo driver. I haven't found the time yet, but I think I will when I start migrating my own projects :)

Any progress or ETA on this, and is there anything the community could help you with? The official driver feels so much worse to use, and I could spare some time to help write kmongo-style wrappers around it for the convenience and type safety we were used to.

kageru avatar Mar 12 '24 10:03 kageru

I still intend to develop a third party library inspired from kmongo, to add some syntactic sugar to the mongo driver. I haven't found the time yet, but I think I will when I start migrating my own projects :)

Any progress or ETA on this, and is there anything the community could help you with? The official driver feels so much worse to use, and I could spare some time to help write kmongo-style wrappers around it for the convenience and type safety we were used to.

Same for me.

mervyn-mccreight avatar Mar 12 '24 16:03 mervyn-mccreight