MongoDB is the most easy to use, well supported database, enabling developers to build applications faster than using relational databases.
However, MongoDB abandoned its Open-Source roots, changing the license to SSPL making it unusable for many Open Source and Commercial Projects. We are bringing the same experience to Postgres.
See and try FerretDB in action!
FerretDB is not another NoSQL database. Leverage the power of the MongoDB ecosystem. Use all tools, drivers, and UIs like you would with MongoDB. Use the same query language. Run it all on PostgreSQL or Tigris.
The core of our solution is a stateless proxy, which converts MongoDB protocol queries to SQL, and uses PostgreSQL as a database engine. This will be compatible with MongoDB drivers, and should work as a drop-in replacement to MongoDB in many cases.
Our vision is to enable the open source community and developers to reap the benefits of easy to use document databases, while staying away from vendor lock-in, and fauxpen licenses.
We are open source advocates at heart, and we release FerretDB with an open source license recognized by the Open Source Initiative. We are Maintainer level supporters of the OSI.
Did FerretDB fork PostgreSQL?
No, we did not modify Postgres in any way. It runs in a separate process and FerretDB connects to it as a client.
Did FerretDB fork MongoDB?
No, forking MongoDB would be an enormous undertaking, and the fork would still have the same licensing issues, and it would be difficult to maintain. Instead, we built FerretDB as a proxy, which operates between the MongoDB drivers and a database backend, such as Postgres.
Are there dedicated tools for managing FerretDB?
FerretDB is designed to be transparent, eg. it mimics the behavior of MongoDB in every possible way. This means that the document database can be managed by tools which were designed for MongoDB, such as MongoDB Compass, Studio 3T, MingoUI, or the like. The underlying Postgres database can also be managed by tools built for Postgres.
Is FerretDB 100% compatible with MongoDB?
It is not necessary, nor it is feasible to implement every single MongoDB feature out there. Our aim is to cover the core feature set of MongoDB, and then continue adding features which could enhance the experience or increase application compatibility. Non-OSS alernatives of MongoDB are similar in this sense, eg. none of these products are able to provide the full feature set of MongoDB. We are aiming to please 85% of MongoDB users, not all of them.
Are there performance implications?
Inevitably, implementing a document database on a relational database will mean that there will be differences in performance compared to a native document database. Your specific workload should be tested with FerretDB before making the decision to migrate. Also, in the current state of FerretDB, we worked on increasing compatibility and not performance, so there are opportunities for optimization.
There is along-standing connection between open source data products and animals. Think Slonik, the Postgres elephant. The MySQL dolphin. Hadoop, the yellow elephant. The MariaDB seal. CockroachDB!
“To ferret out” means to find something after careful searching. Also, ferrets are fun!