Ferretdb achieves stable production as Mongodb implementation on PostgreSQL

Ferretdb, a software developed by a group of developers, has released its version 1.0.0 that enables switching from document-oriented MongoDB DBMS to PostgreSQL without having to make changes to the application code. It acts as a proxy server that broadcasts MongoDB calls to postgreSQL SQL queries, thus allowing PostgreSQL to be used as an actual storage. The code of Ferretdb is written in Go and spread under the license Apache 2.0.

Ferretdb caters to users who don’t require the extensive capabilities of MongoDB in their applications, but prefer a fully open software stack. The release of Ferretdb has come at a time when MongoDB is transitioning to a non-free SSPL license, based on AGPLV3 license. The need for FerretDB arises due to the discriminating requirement of SSPL under the license not only of the code itself but also the initial texts of all components providing cloud service.

MongoDB, which supports the storage of documents in a JSON-like format, has a flexible language for forming inquiries, can create indices for various stored attributes and effectively ensures the storage of large binary objects. It also supports replication, fault-tolerant configurations, MAP/REDUCE paradigm, and journaling operations to change and add data to the database.

Ferretdb version 1.0 adds new commands to create and remove indexes to the collection, and a command to withdraw a new portion of the result obtained during the execution of commands that return a cursor such as Find and Aggregate. It also adds support for calculating the sum of values in groups using the aggregate operator $sum, limiting and skipping the number of documents during aggregation, and the count operator $count.

Overall, Ferretdb 1.0 is a stable release that is ready for widespread use. It supports a subset of MongoDB capabilities that are most frequently used in standard applications. Ferretdb allows users to switch from a non-open-source software stack to a fully open-stack without affecting their existing applications.

/Reports, release notes, official announcements.