Ongoing work to update Cryomongo to MongoDB 8.0

Hello Crystal community,

I saw that Crymongo received an update 4 months ago, but it is compatible with Mongo up to 4.2.

Since we are already at Mongo 8.3, I would like to know if there is anyone working on a Mongo driver.

I’m considering trying to contribute to Crymongo.

Ok. Temporarily forked bson.cr and cryomongo. Better help the community and unify efforts instead of splitting things.

The ongoing work at bson.cr fork is going well. I’ve been working on it for a day now, and I estimate I’ll finish it by the end of the day.

Sending the improvements to upstream will depends on @elbywan approval, and this is my goal, to return everything to the original repository as soon as the roadmap is concluded.

Later on I will move my efforts to cryomongo.

My understanding is that we cannot update bson.cr and publish it before also updating cryomongo, since they both need to be in sync of what the latest MongoDB expects.

Since I’m not at the level of Julien, I will start first focusing on Linux and local deployments, exclusively for MongoDB 8.0. Then I will probably need help to update the more complex things like integration with MongoDB Atlas and eventual retro-compatibility with previous MongoDB versions.

Since the current driver supports Mongo up to 4.2, one possibility in this update is to skip all intermediary versions before 8.0.

This is because, most probably, no one used cryomongo on newer versions of Mongo 4.2 anyway.

So one simpler strategy could be to document the compatibility of the existing version for Mongo 4.2 and the new version to 8.0.

Update: the complete update on the temporary fork at alumna/bson.cr is concluded. :tada:

It is fully updated and test covered to the latest BSON specification used by MongoDB 8.0.
Lots of optimizations were done, including the long-awaited BSON::Decimal128 implementation in pure Crystal.

Starting now the work at Cryomongo