{"adoption": {"forks": 312, "observed_at": "2026-08-28T04:04:06.445398+00:00", "stars": 1241}, "canonical_url": "https://ross.abutalabs.com/products/cetus", "card": {"archived": false, "artifact_type": "service", "description": "Cetus is high-performance middleware designed to provide transparent routing between your application and backend MySQL servers.", "domain": ["databases", "backend", "microservices", "performance"], "enriched": true, "function": ["database", "middleware", "routing", "caching", "monitoring", "security"], "health_score": 20, "homepage": null, "language": "C", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["session-replay-tools/cetus"], "name": "session-replay-tools/cetus", "platform": ["c", "self-hosted"], "pushed_at": "2024-10-26T03:57:29+00:00", "repo": "session-replay-tools/cetus", "stars": 1241, "tags": ["mysql-proxy", "read-write-splitting", "sharding", "connection-pooling", "horizontal-scaling", "xa-transactions", "database-proxy", "devops", "linux", "web-server"], "topics": ["mysql", "xa", "sharding", "distributed", "performance", "mysql-proxy", "database", "scaling", "middleware", "horizontal-scalable"], "urls": [], "use_cases": ["proxy mysql connections transparently", "split mysql reads and writes across replicas", "shard mysql tables horizontally", "pool backend database connections", "scale mysql horizontally without changing application code", "run distributed transactions across sharded mysql servers", "monitor and manage mysql backend health"], "what_it_is": "Cetus is a high-performance MySQL proxy middleware written in C that provides transparent routing between applications and backend MySQL servers. It offers read-write splitting and data sharding editions with connection pooling, distributed transaction support, and monitoring, enabling horizontal scaling and high availability at the database layer.", "when_to_avoid": ["you use postgres or another non-mysql database", "you want a fully managed cloud database proxy", "your project needs a very actively developed tool with frequent releases", "you need a proxy written in a memory-safe language"], "when_to_choose": ["you need transparent read-write splitting for mysql", "you want to shard mysql data with minimal application changes", "you need connection pooling and sql routing in front of mysql backends", "you require xa-style distributed transactions across shards"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cetus", "repo": "session-replay-tools/cetus", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.445398+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:08:30.622675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cdd652f1db1d23dd685241d133da70f55c0c5a1e390f0f1c789f2b7f444e4437", "fetched_at": "2026-08-28T04:04:06.445398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/session-replay-tools/cetus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3102, "days_push": 676, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}