A la fin 2021, un projet nommé MangoDB voyait le jour avec comme ambition d’être une alternative « véritablement » open source à MongoDB. Un an et demi après, le nom a changé pour devenir FerretDB et une version 1.0 vient d’être lancée avec « toutes les fonctionnalités essentielles capables d’exécuter des charges de travail de bases de données documentaires ».
Revenir aux racines open source
Proposé sous licence Apache 2.0, FerretDB est un proxy open source qui traduit les requêtes du protocole filaire MongoDB 6.0+ en SQL, en utilisant PostgreSQL comme moteur de base de données. Cette technologie vise à ramener les tâches de base de données MongoDB à leurs « racines open source », a déclaré l’éditeur. A noter que Tigris est également pris en charge en tant que back-end, et des travaux sont en cours pour prendre en charge SAP HANA et SQLite. Les instructions pour démarrer avec FerretDB sont disponibles sur GitHub.
FerretDB est compatible avec les pilotes et les outils MongoDB. Des images Docker sont proposées pour le développement et la production, ainsi que des paquets RPM et DEB. Une image Docker tout-en-un est fournie, contenant tout ce qui est nécessaire pour évaluer FerretDB avec PostgreSQL. Avec la version généralement disponible, FerretDB supporte maintenant la commande createIndexes pour spécifier les champs d'un index et le type d'index à utiliser. Une commande dropIndex permet aux utilisateurs de supprimer un index d'une collection. Les fonctionnalités du pipeline d'agrégation ont été étendues pour inclure des étapes supplémentaires, telles que $unwind, $limit et $skip. A noter que FerretDB peut être testé auprès de deux fournisseurs cloud dont Scaleway.
Des améliorations déjà prévues
La feuille de route de FerretDB pour la fin de ce trimestre inclut la prise en charge des commandes de curseur de base ainsi que des index avancés et la possibilité d'exécuter des requêtes SQL brutes. Pour le troisième trimestre, il est prévu d'améliorer la prise en charge du pipeline d'agrégation, les commandes de gestion des utilisateurs et les opérateurs de projection des requêtes. L'amélioration des performances des requêtes est également un objectif.
Pour mémoire, la création de FerretDB (ex MangoDB) est intervenue en réaction à la décision de MongoDB de changer de licence en adoptant la SSPL (Server Side Public License). Un billet de blog de l’Open Source Initiative affirme que cette licence prive les utilisateurs de leurs droits. L’éditeur souligne par ailleurs que la SSPL est inutilisable pour de nombreux projets open source et commerciaux en phase de démarrage. De son côté, MongoDB affirme que la licence SSPL garantit que les utilisateurs du logiciel en tant que service rendent à la communauté ce qu'elle leur a donné.