Move whole tables between databases fast — Postgres, MySQL, ClickHouse, BigQuery. Rust engine, one-line Python API, bounded memory.
https://apitap.dev ↗// readme
apitap
Move whole tables between databases at wire speed, in bounded memory.
Despite the name, this is not an API-client library: apitap is a Rust
transfer engine that speaks the databases’ own wire formats — binary
COPY, RowBinary, LOAD DATA, logical replication. How it compares to
Airbyte-class tools, CDC daemons and Python pipelines, with measured
numbers: docs/vs.md.
apitap is the open-source transfer engine behind apitap cloud — a Rust core with Python bindings, in the spirit of Polars. It moves data the way the databases themselves would: raw wire-format streams, parallel range pipes, atomic swaps, and memory that stays flat no matter how big the table is.
pip install apitap
import apitap
report = apitap.transfer(
"postgres://user:pass@src-host/db",
"postgres://user:pass@dst-host/db",
table="public.events",
)
print(f"{report.rows:,} rows in {report.elapsed_ms} ms over {report.parallel} pipes")
The same call does batch CDC — logical replication on a schedule, no daemon — and mixes modes per table:
apitap.transfer(src, dst,…