dtpipe 1.9.0
dotnet tool install --global dtpipe --version 1.9.0
dotnet new tool-manifest
dotnet tool install --local dtpipe --version 1.9.0
#tool dotnet:?package=dtpipe&version=1.9.0
nuke :add-package dtpipe --version 1.9.0
DtPipe
A self-contained CLI for streaming, transforming, and anonymizing data across databases and file formats.
DtPipe reads from a source, applies row and columnar transformations in batches, and writes to a destination with no intermediate staging. It is designed for automation and CI/CD workflows where repeatable, observable data pipelines matter.
📚 Start with the documentation → docs/
Install, a first pipeline, the concepts, and a guide per task — anonymization, joins and fan-out, incremental loading, YAML jobs, secrets, and running in a .NET estate.
Install
dotnet tool install -g dtpipe # or download a binary from the releases page
dtpipe --help
Six platforms per release — Linux, macOS and Windows, x64 and arm64 — each a single executable with the .NET runtime, the DuckDB engine and every database driver inside it. Nothing else to install. Full instructions, including building from source: docs/install.md.
One example
Anonymize a table on the way out, without ever writing the clear values to disk:
dtpipe \
-i "pg:Host=localhost;Database=prod;Username=postgres" \
--query "SELECT * FROM users" \
--fake "email:internet.email" \
--fake "name:name.fullName" \
--mask "phone:###-****" \
--null "ssn" \
-o anonymized_users.parquet
More, from a first pipeline to a DAG: docs/quickstart.md.
What it connects to
| Family | Examples | Prefix |
|---|---|---|
| Databases | PostgreSQL, MySQL, SQLite, DuckDB, SQL Server, Oracle | pg:, mysql:, sqlite:, duck:, mssql:, ora: |
| Files | CSV, JsonL, Parquet, Arrow, XML | csv:, jsonl:, parquet:, arrow:, xml: |
| Object storage | S3-compatible, Azure Blob | s3://bucket/key.parquet, azure://container/blob.csv |
| Special | Data generator (source), null / checksum (sink) | generate:N, null:, checksum: |
dtpipe providers lists what your binary actually carries. The connection catalog, with the string
format and the rules that apply to every provider, is at
docs/connections/.
Is DuckDB alone enough? Often, yes — and then use it directly. DtPipe embeds it as its SQL engine and adds what a transfer needs around it: anonymization in transit, concurrent fan-out, write strategies (upsert, auto-migrate, bulk), Oracle / SQL Server / XML sources, and repeatable YAML jobs with secret management.
Documentation
| Where | What it holds |
|---|---|
| docs/ | Start here. Install, quickstart, concepts, a guide per task, a page per connection |
| REFERENCE.md | The exhaustive lists: every CLI flag, the YAML job schema, provider options, the MCP tools |
| EXTENDING.md | Writing a new adapter or transformer |
Contributing
See EXTENDING.md for the adapter and transformer patterns.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.9.0 | 0 | 10/2/2026 |
| 1.8.2 | 111 | 9/14/2026 |
| 1.8.1 | 110 | 9/10/2026 |
| 1.8.0 | 113 | 9/9/2026 |
| 1.7.0 | 106 | 9/5/2026 |
| 1.6.0 | 183 | 8/27/2026 |
| 1.5.0 | 167 | 8/6/2026 |
| 1.4.3 | 153 | 7/7/2026 |
| 1.4.2 | 147 | 6/20/2026 |
| 1.4.1 | 148 | 6/19/2026 |
| 1.4.0 | 167 | 6/17/2026 |
| 1.3.4 | 154 | 6/15/2026 |
| 1.3.3 | 136 | 6/14/2026 |
| 1.3.2 | 141 | 6/9/2026 |
| 1.3.1 | 152 | 6/8/2026 |
| 1.3.0 | 213 | 5/8/2026 |
| 1.2.6 | 147 | 4/29/2026 |
| 1.2.5 | 159 | 4/25/2026 |
| 1.2.4 | 149 | 4/14/2026 |