Apitap โ€” open-source ingestion engine: move big tables fast on tiny machines (Rust + Python, MIT). Contributors welcome!

โš“ Rust    ๐Ÿ“… 2026-07-15    ๐Ÿ‘ค surdeus    ๐Ÿ‘๏ธ 1      

surdeus

Hi everyone :waving_hand:

I'd like to introduce apitap, an open-source data-transfer engine I've been building โ€” Rust core, Python bindings, MIT-licensed.

The idea behind it is simple: moving a lot of data shouldn't require a lot of machine. Most ingestion pipelines cost money twice โ€” once in wall-clock hours, once in the oversized workers those hours run on. apitap streams raw wire formats through parallel pipes with bounded memory, so the same job that needs gigabytes elsewhere finishes on the smallest container you can rent.

Where it stands today (10M rows, 15 column types, every number checksum-validated against the source; full methodology in the repo):

route apitap ingestr 1.0.75 dlt 1.x
Postgres โ†’ Postgres 20.2 s 500 s 2,604 s
Postgres โ†’ ClickHouse 9.9 s 111 s 1,893 s
MySQL โ†’ ClickHouse 10.4 s 97 s 2,231 s
MySQL โ†’ Postgres 22.5 s 481 s 2,899 s
Postgres โ†’ BigQuery 28.4 s 860 s 2,160 s

On a 0.5 vCPU / 256 MB container apitap still completes every route; in our runs the other tools either crawled or were OOM-killed there. (BigQuery bonus: the whole ingestion path is free โ€” load + copy jobs only, no DML โ€” so it works on sandbox projects without billing.)

The goal we're quietly working toward: 10M rows per minute on that 256 MB box. We're about 3ร— away, and honestly we may never fully get there โ€” but every step is measured, one lever at a time, and written down with its caveats and our own mistakes: benchmarks/README.md

I'd love help. If any of this sounds fun, contributions of every size are welcome:

  • :electric_plug: New connectors โ€” MySQL โ†’ BigQuery is next on the list, then Snowflake; the Source/Sink traits are small and documented
  • :bug: Break our benchmarks โ€” run them on your workload; if a number doesn't hold up or a type gets mangled, an issue with a repro is the most valuable gift
  • :test_tube: Real-world testing โ€” weird schemas, huge rows, exotic types, flaky networks
  • :open_book: Docs โ€” if something confused you, that's a bug in the docs
  • :red_apple: Platform wheels โ€” aarch64 / macOS builds via CI (maturin-action)

Repo: GitHub - apitap/apitap-lib ยท GitHub
Usage guide: apitap-lib/docs/usage.md at main ยท apitap/apitap-lib ยท GitHub
Origin story: I moved 10 million rows in 9.9 seconds with pip install apitap

Full disclosure: it's built with Claude Code as pair programmer, and this project has been corrected by its own failed runs more than once. If you see something wrong, please say so loudly โ€” that's exactly how it gets better. Thank you! :folded_hands:

1 post - 1 participant

Read full topic

๐Ÿท๏ธ Rust_feed