{"id":43471101,"url":"https://github.com/pingcap/ticdc","last_synced_at":"2026-04-14T11:00:59.998Z","repository":{"id":240897107,"uuid":"803710966","full_name":"pingcap/ticdc","owner":"pingcap","description":"TiCDC pulls change logs out of TiDB and pushes to kinds of systems.","archived":false,"fork":false,"pushed_at":"2026-04-07T19:06:57.000Z","size":108907,"stargazers_count":46,"open_issues_count":336,"forks_count":47,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-04-07T21:12:20.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/pingcap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-05-21T08:42:32.000Z","updated_at":"2026-04-07T19:07:04.000Z","dependencies_parsed_at":"2024-05-21T10:52:39.615Z","dependency_job_id":"9130b6ef-b78a-4c6c-8381-17dabf462363","html_url":"https://github.com/pingcap/ticdc","commit_stats":null,"previous_names":["flowbehappy/tigate","pingcap/ticdc"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/pingcap/ticdc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingcap%2Fticdc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingcap%2Fticdc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingcap%2Fticdc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingcap%2Fticdc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pingcap","download_url":"https://codeload.github.com/pingcap/ticdc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingcap%2Fticdc/sbom","scorecard":{"id":552733,"data":{"date":"2025-08-11","repo":{"name":"github.com/pingcap/ticdc","commit":"567ecd354e7bc7c25db29eca806603bc89dd8e3b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/check_and_build.yaml:1","Warn: no topLevel permission defined: .github/workflows/integration_test_mysql.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check_and_build.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/pingcap/ticdc/check_and_build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check_and_build.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/pingcap/ticdc/check_and_build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check_and_build.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/pingcap/ticdc/check_and_build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration_test_mysql.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/pingcap/ticdc/integration_test_mysql.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration_test_mysql.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/pingcap/ticdc/integration_test_mysql.yaml/master?enable=pin","Warn: containerImage not pinned by hash: dockerfile:1","Warn: containerImage not pinned by hash: dockerfile:9: pin your Docker image by updating alpine:3.15 to alpine:3.15@sha256:19b4bcc4f60e99dd5ebdca0cbce22c503bbcff197549d7e19dab4f22254dc864","Warn: containerImage not pinned by hash: dockerfile-local:2: pin your Docker image by updating alpine:3.15 to alpine:3.15@sha256:19b4bcc4f60e99dd5ebdca0cbce22c503bbcff197549d7e19dab4f22254dc864","Warn: pipCommand not pinned by hash: tests/integration_tests/http_api/run.sh:20","Warn: pipCommand not pinned by hash: tests/integration_tests/http_api_tls/run.sh:21","Warn: pipCommand not pinned by hash: tests/integration_tests/http_api_tls_with_user_auth/run.sh:21","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned","Info:   1 out of   1 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"13 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0635","Warn: Project is vulnerable to: GO-2022-0646","Warn: Project is vulnerable to: GO-2023-2409 / GHSA-6294-6rgp-fr7r / GHSA-mhpq-9638-x6pw","Warn: Project is vulnerable to: GO-2025-3553 / GHSA-mh63-6h87-95cp","Warn: Project is vulnerable to: GO-2024-3284 / GHSA-9g6g-xqv5-8g5w","Warn: Project is vulnerable to: GHSA-7fxj-fr3v-r9gj","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3533 / GHSA-wq9g-9vfc-cfq9","Warn: Project is vulnerable to: GO-2025-3372 / GHSA-6wxm-mpqj-6jpf","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-3333"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T11:21:10.077Z","repository_id":240897107,"created_at":"2025-08-20T11:21:10.077Z","updated_at":"2025-08-20T11:21:10.077Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-02-03T07:06:19.781Z","updated_at":"2026-04-14T11:00:59.988Z","avatar_url":"https://github.com/pingcap.png","language":"Go","readme":"# TiCDC\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/pingcap/ticdc)\n\nTiCDC pulls change logs from TiDB clusters and pushes them to downstream systems, such as MySQL, TiDB, Kafka, Pulsar, and Object Storages (e.g., S3). Beginning from v8.5.4, we use this repository to build TiCDC instead of the old repository [tiflow](https://github.com/pingcap/tiflow). The new TiCDC in this repository has undergone a complete architectural redesign while retaining the same user interface. The architectural upgrade primarily aims to address certain drawbacks of TiCDC and propel it forward.\n\n* **Better scalability**. E.g. support over 1 million tables.\n* **More efficiency**. Use less machine resource to support large volume.\n* **Better maintainability**. E.g. simpler and human readable code, clear code module, and open to extensions.\n* **Cloud native architecture**. We want to design a new architecture from the ground to support the cloud.\n\n## Quick Start\n\n### Obtaining TiCDC Download Links\n\n#### Construct the Download Link Manually\n\n1. Get the latest version tag:\n\n   ```bash\n   # Get the latest version tag from GitHub API\n   export TICDC_VERSION=$(curl -s https://api.github.com/repos/pingcap/ticdc/releases/latest | grep tag_name | cut -d '\"' -f 4)\n   echo \"Latest version is ${TICDC_VERSION}\"\n   ```\n\n2. Use the tag to build the download link for your platform: `https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-${os}-${arch}.tar.gz`, for example:\n    * For Linux x86-64: `https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-linux-amd64.tar.gz`\n    * For Linux ARM64: `https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-linux-arm64.tar.gz`\n    * For MacOS x86-64: `https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-darwin-amd64.tar.gz`\n    * For MacOS ARM64: `https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-darwin-arm64.tar.gz`\n\n#### Use TiUP to Retrieve the Download Link\n\nYou can also use the tiup command to get the latest platform-specific binary download link:\n\n```bash\ntiup install cdc --force\n```\n\nThis command will provide the download address for the nightly build tailored to your platform.\n\n### Use a Script to Download Automatically\n\nYou can use the following script to automatically detect your operating system and architecture, and download the latest TiCDC binary:\n\n```bash\n# Detect OS and Architecture\nOS=$(uname -s | tr '[:upper:]' '[:lower:]')\nARCH=$(uname -m)\ncase $ARCH in\n    x86_64) ARCH=\"amd64\" ;;\n    aarch64|arm64) ARCH=\"arm64\" ;;\nesac\n\n# Get the latest version tag from GitHub\nTICDC_VERSION=$(curl -s https://api.github.com/repos/pingcap/ticdc/releases/latest | grep tag_name | cut -d '\"' -f 4)\n\n# Download the package\nURL=\"https://tiup-mirrors.pingcap.com/cdc-${TICDC_VERSION}-${OS}-${ARCH}.tar.gz\"\necho \"Downloading TiCDC ${TICDC_VERSION} for ${OS}-${ARCH}...\"\ncurl -L -O \"$URL\"\n```\n\n### Patch to the existing TiCDC nodes\n\nExamples:\n\n```bash\n# Scale out some old version TiCDC nodes, if you don't already have some\ntiup cluster scale-out test-cluster scale-out.yml\n\n#scale-out.yml\n#cdc_servers:\n#  - host: 172.31.10.1\n\n# Patch the download binary to the cluster\ntiup cluster patch --overwrite test-cluster cdc-${TICDC_VERSION}-linux-amd64.tar.gz -R cdc\n\n# Enable TiCDC new architecture by setting the \"newarch\" parameter\ntiup cluster edit-config test-cluster\n#cdc_servers:\n# ...\n# config:\n#    newarch: true\n\ntiup cluster reload test-cluster -R cdc\n```\n\n\u003e Note that TiUP has integrated the monitoring dashboard for TiCDC new architecture into the Grafana page, named `\u003ccluster-name\u003e`-TiCDC-New-Arch.\n\n## How to compile TiCDC from source code\n\n### Prerequests\n\nTiCDC can be built on the following operating systems:\n\n* Linux\n* MacOS\n\nInstall GoLang 1.25.8\n\n```bash\n# Linux\nwget https://go.dev/dl/go1.25.8.linux-amd64.tar.gz\nsudo tar -C /usr/local -xzf go1.25.8.linux-amd64.tar.gz\n\n# MacOS\ncurl -O https://go.dev/dl/go1.25.8.darwin-amd64.tar.gz\nsudo tar -C /usr/local -xzf go1.25.8.darwin-amd64.tar.gz\n\n\nexport PATH=$PATH:/usr/local/go/bin\nexport GOPATH=$HOME/go\nexport PATH=$PATH:$GOPATH/bin\n```\n\n### Download the source code and compile\n\n1. Download the code\n\n```bash\ngit clone git@github.com:pingcap/ticdc.git\ncd ticdc\n```\n\n2. Build TiCDC\n\n```bash\nmake cdc\n\n# Generate the patchable tar file\ncd bin\ntar -czf newarch_cdc.tar.gz cdc\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpingcap%2Fticdc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpingcap%2Fticdc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpingcap%2Fticdc/lists"}