{"id":13466136,"url":"https://github.com/yandex/odyssey","last_synced_at":"2026-04-20T12:15:45.466Z","repository":{"id":37548391,"uuid":"135175513","full_name":"yandex/odyssey","owner":"yandex","description":"Scalable PostgreSQL connection pooler","archived":false,"fork":false,"pushed_at":"2025-05-06T09:34:39.000Z","size":20212,"stargazers_count":3298,"open_issues_count":128,"forks_count":174,"subscribers_count":58,"default_branch":"master","last_synced_at":"2025-05-08T16:01:58.565Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yandex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-28T14:57:51.000Z","updated_at":"2025-05-07T05:13:54.000Z","dependencies_parsed_at":"2023-02-09T04:15:57.269Z","dependency_job_id":"2fe4c595-2fc8-4003-b71e-e63ea569b889","html_url":"https://github.com/yandex/odyssey","commit_stats":{"total_commits":2134,"total_committers":65,"mean_commits":32.83076923076923,"dds":"0.26522961574507964","last_synced_commit":"4fde8dbad4ca7b30e2f50ac0592b511e99e4e8a4"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex%2Fodyssey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex%2Fodyssey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex%2Fodyssey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex%2Fodyssey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yandex","download_url":"https://codeload.github.com/yandex/odyssey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036828,"owners_count":22003654,"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":[],"created_at":"2024-07-31T15:00:39.658Z","updated_at":"2026-04-10T07:58:41.220Z","avatar_url":"https://github.com/yandex.png","language":"C","funding_links":[],"categories":["C","others","Compiled list","Инфраструктура и DevOps"],"sub_categories":["plv8:"],"readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"docs/img/odyssey.png\" width=\"35%\" height=\"35%\" /\u003e\u003cbr\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Odyssey\n\nAI-ready advanced multi-threaded PostgreSQL connection pooler and request router.\n\n#### Project status\n\nOdyssey is production-ready, it is being used in large production setups. We appreciate any kind of feedback and contribution to the project.\n\n\u003ca href=\"https://scan.coverity.com/projects/yandex-odyssey\"\u003e\n  \u003cimg alt=\"Coverity Scan Build Status\"\n       src=\"https://scan.coverity.com/projects/20374/badge.svg\"/\u003e\n\u003c/a\u003e\n\n### Design goals and main features\n\n#### Multi-threaded processing\n\nOdyssey can significantly scale processing performance by\nspecifying a number of additional worker threads. Each worker thread is\nresponsible for authentication and proxying client-to-server and server-to-client\nrequests. All worker threads are sharing global server connection pools.\nMulti-threaded design plays important role in `SSL/TLS` performance.\n\n#### Advanced transactional pooling\n\nOdyssey tracks current transaction state and in case of unexpected client\ndisconnection can emit automatic `Cancel` connection and do `Rollback` of\nabandoned transaction, before putting server connection back to\nthe server pool for reuse. Additionally, last server connection owner client\nis remembered to reduce a need for setting up client options on each\nclient-to-server assignment.\n\n#### Better pooling control\n\nOdyssey allows to define connection pools as a pair of `Database` and `User`.\nEach defined pool can have separate authentication, pooling mode and limits settings.\n\n#### Authentication\n\nOdyssey has full-featured `SSL/TLS` support and common authentication methods\nlike: `md5` and `clear text` both for client and server authentication. \nOdyssey supports PAM \u0026 LDAP authentication, this methods operates similarly to `clear text` auth except that it uses \nPAM/LDAP to validate user name/password pairs. PAM optionally checks the connected remote host name or IP address.\nAdditionally it allows to block each pool user separately.\n\n#### Logging\n\nOdyssey generates universally unique identifiers `uuid` for client and server connections.\nAny log events and client error responses include the id, which then can be used to\nuniquely identify client and track actions. Odyssey can save log events into log file and\nusing system logger.\n\n\n#### Build instructions\n\nCurrently Odyssey runs only on Linux. Supported platforms are x86/x86_64.\n\nTo build you will need in ubuntu distros:\n\n* cmake \u003e= 3.12.4\n* gcc \u003e= 4.6\n* openssl\n\nOptional dependencies:\n\n* libsystemd-dev (for systemd notify support)\n\nAnd for fedora-based distros:\n\n* openssl-devel\n* systemd-devel (optional, for systemd notify)\n\n```sh\ngit clone git://github.com/yandex/odyssey.git\ncd odyssey\nmake local_build\n```\nAdapt odyssey-dev.conf then:\n```sh\nmake local_run\n```\n\nAlternatively:\n```sh\nmake console_run\n```\n\n### Documentation\n\nSee [docs](docs/) dir with more documentation info. You can serve docs locally by `make serve_docs`.\n\nYou can also read about Odyssey on our [website](https://pg-odyssey.tech/).\n### Support\n\nWe have a [Telegram chat](https://t.me/+ecwqGEkVgXg2OTQy) to discuss Odyssey usage and development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyandex%2Fodyssey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyandex%2Fodyssey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyandex%2Fodyssey/lists"}