awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
F

FerretDB/FerretDB

0
View on GitHub↗
10,976 stars·479 forks·Go·Apache-2.0·15 views

FerretDB

FerretDB is an open-source database emulator and protocol translator that mimics a MongoDB environment to support existing drivers and client tools on a relational backend. It functions as a stateless database proxy that converts binary wire protocol messages into SQL statements, allowing a relational engine to handle document-oriented requests.

The project serves as a migration tool for moving applications from MongoDB to PostgreSQL without rewriting queries or changing client drivers. It achieves this by using PostgreSQL as a document store, storing and querying BSON documents through a translation layer.

The system provides capabilities for document-to-relational mapping and can be integrated as a Go library to embed proxy functionality directly into other applications.

Features

  • Protocol Translation Proxies - Converting binary MongoDB wire protocol messages into SQL queries to allow relational engines to handle document oriented requests.
  • NoSQL to SQL Migrations - Facilitates the migration of applications from MongoDB to PostgreSQL without requiring query rewrites.
  • NoSQL to SQL Translators - Translates MongoDB 5.0 API requests into compatible SQL statements for relational backends.
  • Database Protocol Proxies - Functions as a stateless proxy that translates binary wire protocol messages into SQL statements.
  • Text-to-SQL Translators - Converts wire protocol queries into SQL statements to run document-based logic on a relational database.
  • BSON-to-Relational Mappings - Maps BSON document structures to SQL tables and columns to maintain compatibility between NoSQL and SQL models.
  • Database Connectivity Interfaces - Implements the network communication protocol used by database clients to allow standard tools to connect.
  • Database Query Translators - Translates document-based query requests from the wire protocol into executable SQL statements.
  • Database Wire Protocol Emulation - Converts binary database wire protocol messages into SQL statements for relational engine execution.
  • Database Wire Protocol Emulations - Implements a standard database wire protocol to work with existing client applications without requiring code changes.
  • Database Wire Protocol Implementations - Accepts connections from compatible client applications by implementing the standard MongoDB wire protocol.
  • Database Emulators - Mimics a MongoDB database server to support compatible drivers while using a relational backend.
  • PostgreSQL Document Storage - Uses PostgreSQL as a document store to store and query BSON documents through a translation layer.
  • JSON Document Storage - Uses PostgreSQL as the primary store for JSON documents accessed via the MongoDB protocol.
  • JSON Document Stores - Uses PostgreSQL as a backend to store and manage nested JSON documents.
  • Hybrid Relational-JSON Storage - Uses PostgreSQL as a primary data store to manage and query JSON documents within relational columns.
  • Server Emulation - Running a proxy that mimics a MongoDB server to support compatible client tools and application drivers.
  • MongoDB to PostgreSQL Migrations - Provides a translation layer to migrate applications from MongoDB to PostgreSQL without rewriting queries or changing drivers.
  • MongoDB and PostgreSQL Backends - Enables the migration of data and applications from MongoDB to PostgreSQL without changing client drivers.
  • Relational Storage Backends - Utilizes a relational database as the persistence layer for document-based data.
  • Query Translators - Converts structured wire protocol requests into native SQL query syntax for a relational backend.
  • Native Query Translation - Translates MongoDB wire protocol queries into SQL statements for a relational storage engine.
  • SQL Converters - Converts wire protocol requests into relational queries to store and retrieve data using a SQL backend.
  • SQL Server Protocol Emulations - Implements a wire protocol emulation layer that allows MongoDB clients to interact with a non-MongoDB backend.
  • NoSQL Protocol Emulations - Mimics a MongoDB server to support existing drivers and client tools while routing data to PostgreSQL.
  • NoSQL Table Emulation - Emulates NoSQL database operations and query languages on a relational backend.
  • Database Server Emulation - Mimics a MongoDB environment to support existing drivers and client tools on a relational backend.
  • Document-to-Relational Mappings - Implements the mapping of BSON documents to SQL tables to maintain compatibility between NoSQL and SQL models.
  • Protocol Translation - Translates binary MongoDB wire protocol messages into SQL statements for relational backends.
  • Document Management Engines - Provides a standardized API to handle document-oriented data workflows using PostgreSQL.
  • Database Query Proxying - Enables the integration of a reusable software package for translating database protocols internally.
  • Embedded Proxies - Provides the ability to integrate the translation proxy directly into applications as a Go library.
  • Go Library Integrations - Integrates proxy functionality directly into other applications as a reusable Go library.
  • Stateless Protocol Proxies - Functions as a stateless database proxy that converts binary wire protocol messages into SQL statements.
  • Stateless Proxies - Implements a stateless translation layer that can be scaled horizontally to handle database requests.
  • Library Embedding - Allows the database proxy functionality to be integrated directly into other Go applications as a library.
  • Stateless Architectures - Processes database queries independently to allow the translation layer to scale horizontally without session state.
  • Database Tools - MongoDB-compatible database.
  • Databases and Storage - Open-source MongoDB alternative.

Star history

Star history chart for ferretdb/ferretdbStar history chart for ferretdb/ferretdb

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with FerretDB

These projects share indexed features with FerretDB. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • ravendb/ravendbravendb avatar

    ravendb/ravendb

    3,961View on GitHub↗

    RavenDB is a multi-model NoSQL document database designed for high-performance, ACID-compliant data storage. It persists structured information as schema-flexible JSON documents and utilizes a unit-of-work session pattern to track entity changes and batch modifications into atomic transactions. The platform is built on a distributed architecture that supports horizontal scaling through sharding and ensures high availability via multi-node, master-to-master cluster replication. The database distinguishes itself through a self-optimizing query engine that automatically creates and maintains ind

    C#csharpdatabasedocument-database
    View on GitHub↗3,961
  • postgrest/postgrestPostgREST avatar

    PostgREST/postgrest

    27,232View on GitHub↗

    PostgREST is a standalone server process that automatically transforms a relational database schema into a fully functional RESTful API. By querying system catalogs at startup, it maps tables, views, and stored procedures into standardized web endpoints, allowing developers to build backend services by focusing exclusively on database design. The service functions as a declarative engine that translates HTTP requests and query parameters directly into native SQL operations. It maintains stateless request processing and integrates connection pooling to manage high-frequency interactions effici

    Haskellapiautomatic-apidatabase
    View on GitHub↗27,232
  • jmoiron/sqlxjmoiron avatar

    jmoiron/sqlx

    17,651View on GitHub↗

    sqlx is a set of extensions for the Go database/sql package that reduces boilerplate code by automating the mapping of database query results directly into structs and slices. It provides a wrapper around standard database types to eliminate manual row scanning and repetitive error handling. The project distinguishes itself through named parameter binding and query placeholder rebinding, which translate generic markers into driver-specific symbols. It also enables dynamic SQL execution by allowing the application to read and execute SQL statements directly from the filesystem. The library co

    Go
    View on GitHub↗17,651
  • redis/go-redisredis avatar

    redis/go-redis

    22,159View on GitHub↗

    This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive interface for managing remote data stores, enabling developers to execute standard database commands, handle complex data structures, and perform asynchronous operations within Go applications. The library distinguishes itself through its support for advanced Redis capabilities, including connection pooling, pipelining, and transactional integrity. It provides specialized primitives for managing distributed clusters, including automated topology updates and request routing to sha

    Gogogolangredis
    View on GitHub↗22,159
Compare all 30 related projects→

Frequently asked questions

What does ferretdb/ferretdb do?

FerretDB is an open-source database emulator and protocol translator that mimics a MongoDB environment to support existing drivers and client tools on a relational backend. It functions as a stateless database proxy that converts binary wire protocol messages into SQL statements, allowing a relational engine to handle document-oriented requests.

What are the main features of ferretdb/ferretdb?

The main features of ferretdb/ferretdb are: Protocol Translation Proxies, NoSQL to SQL Migrations, NoSQL to SQL Translators, Database Protocol Proxies, Text-to-SQL Translators, BSON-to-Relational Mappings, Database Connectivity Interfaces, Database Query Translators.

Which projects share features with ferretdb/ferretdb?

Projects with overlapping indexed features include: ravendb/ravendb — RavenDB is a multi-model NoSQL document database designed for high-performance, ACID-compliant data storage. It… postgrest/postgrest — PostgREST is a standalone server process that automatically transforms a relational database schema into a fully… jmoiron/sqlx — sqlx is a set of extensions for the Go database/sql package that reduces boilerplate code by automating the mapping of… redis/go-redis — This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive… prql/prql — PRQL is a functional, modular data transformation language that serves as a compiler for relational data pipelines. It… nalgeon/redka — Redka is a SQL-backed key-value store that implements a Redis-compatible interface. It acts as a relational data…