{"id":24282502,"url":"https://github.com/neverchanje/chgcap-rs","last_synced_at":"2025-07-11T04:05:40.361Z","repository":{"id":89716640,"uuid":"603045127","full_name":"neverchanje/chgcap-rs","owner":"neverchanje","description":"A CDC library in Rust.","archived":false,"fork":false,"pushed_at":"2024-02-17T16:45:11.000Z","size":297,"stargazers_count":19,"open_issues_count":15,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-08T08:48:56.692Z","etag":null,"topics":["change-data-capture","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/neverchanje.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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-17T14:02:08.000Z","updated_at":"2025-01-10T13:08:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d904f2f-3bb3-4864-9d29-3454815c7987","html_url":"https://github.com/neverchanje/chgcap-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neverchanje/chgcap-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverchanje%2Fchgcap-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverchanje%2Fchgcap-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverchanje%2Fchgcap-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverchanje%2Fchgcap-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neverchanje","download_url":"https://codeload.github.com/neverchanje/chgcap-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverchanje%2Fchgcap-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264726769,"owners_count":23654494,"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":["change-data-capture","rust"],"created_at":"2025-01-16T03:22:31.182Z","updated_at":"2025-07-11T04:05:40.342Z","avatar_url":"https://github.com/neverchanje.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chgcap - Change-Data-Capture Connectors Library\n\nChgcap is an open-source library for Change-Data-Capture (CDC) written in Rust. It provides an alternative to Debezium, which is mostly limited to the Java ecosystem. With Chgcap, developers can more easily build custom replicas for their RDBMS. Use cases include creating real-time MySQL caches or real-time OLAP engines for Postgres.\n\nWe initially focus on the Rust API, but will consider other language bindings if there are many requests for them.\n\n**WARNING:** Chgap is currently in its early development phase. When it reaches the beta stage, I will publish a beta version on crates.io. My initial objective is to create a DuckDB+MySQL CDC demo, which will showcase how to create a MySQL replica with OLAP functionality. If this is something you are interested in, welcome to follow us for updates.\n\n## Features\n\nIt aims to provide all main features supported by Debezium, including:\n\n- Ensures that **all data changes** are captured.\n- Produces change events with a **very low delay** while avoiding increased CPU usage required for frequent polling. For example, for MySQL or PostgreSQL, the delay is in the millisecond range.\n- Requires **no changes to your data model**, such as a \"Last Updated\" column.\n- Can **capture deletes**.\n- Can **capture old record state and additional metadata** such as transaction ID and causing query, depending on the database’s capabilities and configuration.\n- Support for loading the **initial snapshot** before consuming the incremental data.\n\n### Supported Databases\n\n| Connector    | Databases | Driver                                                         |\n| ------------ | --------- | -------------------------------------------------------------- |\n| chgcap-mysql | MySQL     | [mysql_async](https://docs.rs/mysql_async/latest/mysql_async/) |\n\n## Getting Started\n\n### Installation\n\nTo install chgcap, use `cargo`:\n\n```sh\ncargo install chgcap\n```\n\n### Usage\n\nTo use chgcap, you must first configure a connector for the source database. Once the configuration is complete, you can start streaming the data using the API.\n\n## Documentation\n\nThe full documentation can be found on https://github.com/neverchanje/chgcap-rs\n\n## Credits\n\nchgcap was inspired by and uses some code from the following open-source projects:\n\n- [Flink CDC Connectors](https://github.com/ververica/flink-cdc-connectors)\n- [Debezium](https://github.com/debezium/debezium)\n\n## License\n\nchgcap is released under the [Apache 2.0 license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverchanje%2Fchgcap-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneverchanje%2Fchgcap-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverchanje%2Fchgcap-rs/lists"}