{"adoption": {"forks": 690, "observed_at": "2026-08-28T04:06:44.555289+00:00", "stars": 2414}, "canonical_url": "https://ross.abutalabs.com/products/python-mysql-replication", "card": {"archived": false, "artifact_type": "library", "description": "Pure Python Implementation of MySQL replication protocol build on top of PyMYSQL", "domain": ["databases"], "enriched": true, "function": ["database-driver", "streaming", "etl"], "health_score": 98, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["julien-duponchelle/python-mysql-replication"], "name": "julien-duponchelle/python-mysql-replication", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-06T00:37:24+00:00", "repo": "julien-duponchelle/python-mysql-replication", "stars": 2414, "tags": ["mysql", "binlog", "change-data-capture", "replication-protocol", "pymysql", "cdc", "data-engineering", "real-time"], "topics": ["mysql", "python", "mysql-replication-protocol", "mysql-binlog", "hacktoberfest"], "urls": [], "use_cases": ["replicate MySQL data to NoSQL databases or search engines", "invalidate caches when database rows change", "stream MySQL binlog events in real time", "build a change data capture pipeline from MySQL", "audit database changes", "perform real-time analytics on database changes"], "what_it_is": "A pure Python library implementing the MySQL replication protocol on top of PyMySQL, letting applications stream binlog events such as inserts, updates, deletes, and raw queries. It enables change data capture from MySQL or MariaDB servers.", "when_to_avoid": ["you need a production-grade CDC tool with guaranteed delivery and schema management", "your MySQL version is older than 8.0.14 and you need full row metadata", "you are not working in Python"], "when_to_choose": ["you need to consume MySQL binlog events from Python without external tools", "you want CDC for cache invalidation, auditing, or syncing to another datastore", "you need support for MySQL 8.0 and MariaDB with pure Python"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-mysql-replication", "repo": "julien-duponchelle/python-mysql-replication", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "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:06:44.555289+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.555289+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:33:12.555320+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "315107d4c6267fd3afb64b7b88bc535511df7aa844f93ab2c7bfcaf3b327f20a", "fetched_at": "2026-08-28T04:06:44.555289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/julien-duponchelle/python-mysql-replication"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5100, "days_push": 28, "days_rel": 28, "gap_med": 89.0, "n_releases_24m": 3}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}