GNU Affero General Public License v3.0

项目介绍

apecloud/ape-dts 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 612 个 Star、102 次 Fork。

仓库全名
apecloud/ape-dts
开源许可证
GNU Affero General Public License v3.0
Star 数
612
Fork 数
102
未关闭 Issue
49

README 摘要

English | 中文 ApeDTS A production-ready Rust binary (17 MB compressed) for multi-engine snapshot migration, CDC, and data validation. ApeDTS is a lightweight, standalone data migration and CDC engine. It handles snapshot migration, continuous synchronization, data validation, correction, and in-flight transformation across databases, message queues, and analytical engines. Designed for cloud-native, stateless…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ape-dts 用什么语言开发?

主要使用 Rust 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 612 个 Star。

ape-dts 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 ape-dts 的源码?

可以直接克隆仓库:git clone https://github.com/apecloud/ape-dts.git,默认分支为 main;安装与运行步骤见仓库 README。

ape-dts 最近还在维护吗?

仓库最近一次更新为 23 小时前,当前有 49 个未关闭 Issue;Star 数为 612,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

ApeCloud's Data Transfer Suite, written in Rust. Provides ultra-fast data replication between MySQL, PostgreSQL, Redis, MongoDB, Kafka and ClickHouse, ideal for disaster recovery (DR) and migration scenarios.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
826
价值分
396
活跃状态
活跃

语言占比

Dockerfile
HCL
JavaScript
Lua
Makefile
PLpgSQL
RenderScript
Rust
Shell
TSQL
Tape

Release

README

English | 中文

ApeDTS

A production-ready Rust binary (~17 MB compressed) for multi-engine snapshot migration, CDC, and data validation.

ApeDTS is a lightweight, standalone data migration and CDC engine. It handles snapshot migration, continuous synchronization, data validation, correction, and in-flight transformation across databases, message queues, and analytical engines. Designed for cloud-native, stateless deployments.

Key features

  • Lightweight by design — Runs as a single standalone process, with no external runtime components or intermediate storage.
  • Mature multi-engine coverage — Supports currently validated homogeneous and heterogeneous paths spanning MySQL, PostgreSQL, MongoDB, Redis, Kafka, TiDB, StarRocks, ClickHouse, and Doris.
  • Production-ready reliability — Provides checkpoint-based recovery for snapshot and CDC tasks, Prometheus-compatible metrics, and task-level observability.
  • Source- and task-specific parallelism — Uses dedicated parallel strategies for different sources, targets, and task types to improve throughput.
  • Advanced data capabilities — On supported paths, validates, corrects, and reviews data; filters and routes at the database, table, and column levels; and applies lightweight Lua transformations in flight.

Supported task types

Currently supported mature task types:

mysql -> mysql pg -> pg mongo -> mongo redis -> redis mysql -> kafka pg -> kafka mysql -> starrocks mysql -> clickhouse mysql -> tidb pg -> starrocks pg -> clickhouse mysql -> doris pg -> doris
Snapshot ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
CDC ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Data check/revise/review ✔ ✔ ✔ ✔
Structure migration ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

Quick starts

CLI

dtscli is a lightweight local CLI for creating and managing ApeCloud DTS tasks. It can generate task configs, start dt-main, list tasks, stream logs, and stop, restart, or delete local task records.

dtscli demo

For installation and detailed usage, see dt-cli/README.md.

Tutorial

Run tests

Refer to test docs for details.

More docs

Benchmark

ape-dts: 2.0.26.1; Environment: Alibaba Cloud, same VPC; MySQL: 8.4.11 8c16g; Full load: 8 tables × 4 million rows; CDC: 8 tables × 1 million baseline rows, 4 million UPDATEs

  • MySQL -> MySQL, Snapshot
Node Specs Rows/s Source MySQL CPU / RSS (MiB) Target MySQL CPU / RSS (MiB)
1c2g 109067 7.28% / 8725 112.59% / 14235
2c4g 131783 9.18% / 8636 156.01% / 14291
4c8g 133283 9.06% / 8634 172.36% / 14254
  • MySQL -> MySQL, CDC
Node Specs UPDATE/s Source MySQL CPU / RSS (MiB) Target MySQL CPU / RSS (MiB)
1c2g 23477 2.71% / 1989 69.38% / 6915
2c4g 51171 5.73% / 1947 191.92% / 5627
4c8g 52538 5.63% / 2061 193.22% / 6058

Contributing

Structure

Structure

Modules

  • dt-main: program entry

  • dt-precheck: pre-check, to minimize interruptions during subsequent data operations by identifying issues early for fast failure

  • dt-connector: extractors + sinkers for databases

  • dt-pipeline: pipeline to connect extractors and sinkers

  • dt-parallelizer: parallel algorithms

  • dt-task: create extractors + sinkers + pipelines + parallelizers according to configurations

  • dt-common: common utils, basic data structures, metadata management

  • dt-tests: integration tests

  • related sub module: mysql binlog connector in rust

Crate features

The dt-main crate provides several optional components which can be enabled via Cargo [features]:

  • metrics: Enable Prometheus format task metrics HTTP service interface. See the task metrics reference for metric names, units, and semantics. After enabling this feature, you can customize the metrics service with the following configuration:

    [metrics]
    # http service host
    http_host=127.0.0.1
    # http service port
    http_port=9090
    # http service worker count
    workers=2
    # prometheus metrics const labels
    labels=your_label1:your_value1,your_label2:your_value2
    

Build

  • Minimum supported Rust version (MSRV) The current minimum supported Rust version (MSRV) is 1.85.0.
  • cargo build
  • build images

Checklist

  • run cargo clippy --all-targets --all-features --workspace fix all clippy issues.

Community

If you have any questions, you can reach out to us through:

  • ApeDTS GitHub Discussions

  • ApeDTS Wechat Account with note ape-dts:

    wechat

评论

暂无评论