{"id":14956663,"url":"https://github.com/ferretdb/ferretdb","last_synced_at":"2026-01-12T07:49:37.792Z","repository":{"id":36951570,"uuid":"422821402","full_name":"FerretDB/FerretDB","owner":"FerretDB","description":"A truly Open Source MongoDB alternative","archived":false,"fork":false,"pushed_at":"2025-05-06T12:24:52.000Z","size":13710,"stargazers_count":10090,"open_issues_count":379,"forks_count":439,"subscribers_count":87,"default_branch":"main","last_synced_at":"2025-05-06T14:58:29.642Z","etag":null,"topics":["database","document","ferretdb","go","golang","mongo","mongo-db","mongodb","mongodb-database","postgres","postgresql"],"latest_commit_sha":null,"homepage":"https://www.ferretdb.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FerretDB.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-30T08:06:36.000Z","updated_at":"2025-05-06T12:24:56.000Z","dependencies_parsed_at":"2023-12-18T05:41:51.330Z","dependency_job_id":"e7749cf3-b91d-4b19-9d82-554a42bb1183","html_url":"https://github.com/FerretDB/FerretDB","commit_stats":{"total_commits":1227,"total_committers":59,"mean_commits":"20.796610169491526","dds":"0.48818255908720454","last_synced_commit":"ca200f5b0ea7244166b2744af04746f8782837f1"},"previous_names":["mangodb-io/mangodb"],"tags_count":71,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FerretDB%2FFerretDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FerretDB%2FFerretDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FerretDB%2FFerretDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FerretDB%2FFerretDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FerretDB","download_url":"https://codeload.github.com/FerretDB/FerretDB/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253969231,"owners_count":21992262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","document","ferretdb","go","golang","mongo","mongo-db","mongodb","mongodb-database","postgres","postgresql"],"created_at":"2024-09-24T13:13:18.929Z","updated_at":"2026-01-12T07:49:37.749Z","avatar_url":"https://github.com/FerretDB.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FerretDB\n\n\u003c!-- textlint-disable one-sentence-per-line --\u003e\n\n\u003e [!TIP]\n\u003e Looking for FerretDB v1?\n\u003e It is [there](https://github.com/FerretDB/FerretDB/tree/main-v1).\n\n\u003c!-- textlint-enable one-sentence-per-line --\u003e\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/FerretDB/FerretDB/v2/ferretdb.svg)](https://pkg.go.dev/github.com/FerretDB/FerretDB/v2/ferretdb)\n\n[![Go](https://github.com/FerretDB/FerretDB/actions/workflows/go.yml/badge.svg?branch=main)](https://github.com/FerretDB/FerretDB/actions/workflows/go.yml)\n[![codecov](https://codecov.io/gh/FerretDB/FerretDB/branch/main/graph/badge.svg?token=JZ56XFT3DM)](https://codecov.io/gh/FerretDB/FerretDB)\n\n[![Security](https://github.com/FerretDB/FerretDB/actions/workflows/security.yml/badge.svg?branch=main)](https://github.com/FerretDB/FerretDB/actions/workflows/security.yml)\n[![Packages](https://github.com/FerretDB/FerretDB/actions/workflows/packages.yml/badge.svg?branch=main)](https://github.com/FerretDB/FerretDB/actions/workflows/packages.yml)\n[![Docs](https://github.com/FerretDB/FerretDB/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/FerretDB/FerretDB/actions/workflows/docs.yml)\n\nFerretDB is an open-source alternative to MongoDB.\nIt is a proxy that converts MongoDB 5.0+ wire protocol queries to SQL\nand uses PostgreSQL with [DocumentDB extension](https://github.com/microsoft/documentdb) as a database engine.\n\n```mermaid\nflowchart LR\n  A[\"Any application\u003cbr\u003eAny MongoDB driver\"]\n  F{{FerretDB}}\n  P[(PostgreSQL\u003cbr\u003eDocumentDB extension)]\n\n  A -- \"MongoDB protocol\u003cbr\u003eBSON\" --\u003e F\n  F -- \"PostgreSQL protocol\u003cbr\u003eSQL\" --\u003e P\n```\n\n## Why do we need FerretDB?\n\nMongoDB was originally an eye-opening technology for many of us developers,\nempowering us to build applications faster than using relational databases.\nIn its early days, its ease-to-use and well-documented drivers made MongoDB one of the simplest database solutions available.\nHowever, as time passed, MongoDB abandoned its open-source roots;\nchanging the license to [SSPL](https://www.ferretdb.com/sspl) - making it unusable for many open-source and early-stage commercial projects.\n\nMost MongoDB users do not require any advanced features offered by MongoDB;\nhowever, they need an easy-to-use open-source document database solution.\nRecognizing this, FerretDB is here to fill that gap.\n\n## Scope and current state\n\nFerretDB is compatible with MongoDB drivers and popular MongoDB tools.\nIt functions as a drop-in replacement for MongoDB 5.0+ in many cases.\nFeatures are constantly being added to further increase compatibility and performance.\n\nWe welcome all contributors.\nSee our [public roadmap](https://github.com/orgs/FerretDB/projects/2/views/1),\na list of [known differences with MongoDB](https://docs.ferretdb.io/diff/),\nand [contributing guidelines](CONTRIBUTING.md).\n\n## Quickstart\n\nRun this command to start FerretDB with PostgreSQL:\n\n```sh\ndocker run -d --rm --name ferretdb -p 27017:27017 --platform linux/amd64 \\\n  ghcr.io/ferretdb/ferretdb-eval:2\n```\n\nThis command will start a container with FerretDB, pre-packaged PostgreSQL with DocumentDB extension, and MongoDB Shell for quick testing and experiments.\nHowever, it is unsuitable for production use cases because it keeps all data inside and loses it on shutdown.\nSee our [installation guides](https://docs.ferretdb.io/installation/) for instructions\nthat don't have those problems.\n\nWith that container running, you can:\n\n- Connect to it with any MongoDB client application using MongoDB URI `mongodb://username:password@127.0.0.1:27017/`.\n- Connect to it using MongoDB Shell by just running `mongosh`.\n  If you don't have it installed locally, you can run `docker exec -it ferretdb mongosh`.\n- For PostgreSQL, connect to it by running `docker exec -it ferretdb psql -U username postgres`.\n\nYou can stop the container with `docker stop ferretdb`.\n\nWe also provide binaries and packages for various Linux distributions.\nas well as [Go library package](https://pkg.go.dev/github.com/FerretDB/FerretDB/v2/ferretdb)\nthat embeds FerretDB into your application.\nSee [our documentation](https://docs.ferretdb.io/installation/) for more details.\n\n## Building and packaging\n\n\u003c!-- textlint-disable one-sentence-per-line --\u003e\n\n\u003e [!NOTE]\n\u003e We advise users not to build FerretDB themselves.\n\u003e Instead, use binaries, Docker images, or packages provided by us.\n\n\u003c!-- textlint-enable one-sentence-per-line --\u003e\n\nFerretDB could be built as any other Go program,\nbut a few generated files and build tags could affect it.\nSee [there](https://pkg.go.dev/github.com/FerretDB/FerretDB/v2/build/version) for more details.\n\n## Managed FerretDB at cloud providers\n\n- [FerretDB Cloud](https://cloud.ferretdb.com/)\n- [Civo](https://www.civo.com/marketplace/FerretDB)\n- [Tembo](https://tembo.io/docs/tembo-stacks/mongo-alternative)\n- [Elestio](https://elest.io/open-source/ferretdb)\n- [Cozystack](https://cozystack.io/docs/components/#managed-ferretdb)\n\n## Community\n\n- Website: https://www.ferretdb.com/.\n- Blog: https://blog.ferretdb.io/.\n- Documentation: https://docs.ferretdb.io/.\n- X (Twitter): [@ferret_db](https://x.com/ferret_db).\n- Mastodon: [@ferretdb@techhub.social](https://techhub.social/@ferretdb).\n- [Slack chat](https://slack.ferretdb.io/) for quick questions.\n- [GitHub Discussions](https://github.com/FerretDB/FerretDB/discussions) for longer topics.\n- [GitHub Issues](https://github.com/FerretDB/FerretDB/issues) for bugs and missing features.\n- [Open Office Hours meeting](https://calendar.google.com/calendar/event?action=TEMPLATE\u0026tmeid=NGhrZTA5dXZ0MzQzN2gyaGVtZmx2aWxmN2pfMjAyNDA0MDhUMTcwMDAwWiBjX24zN3RxdW9yZWlsOWIwMm0wNzQwMDA3MjQ0QGc\u0026tmsrc=c_n37tquoreil9b02m0740007244%40group.calendar.google.com\u0026scp=ALL)\n  every Monday at 17:00 UTC at [Google Meet](https://meet.google.com/mcb-arhw-qbq).\n\nIf you want to contact FerretDB Inc., please use [this form](https://www.ferretdb.com/contact/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferretdb%2Fferretdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferretdb%2Fferretdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferretdb%2Fferretdb/lists"}