The dbt of data ingestion - declarative, reliable, and testable data pipelines
Project description
Conduit Core
Declarative data ingestion framework for Python — inspired by dbt's approach to analytics engineering.
Conduit Core is an open-source Python framework for building production-grade data pipelines. Move data between CSV, JSON, Parquet, PostgreSQL, MySQL, S3, Snowflake, and BigQuery with YAML configuration, automatic retries, checkpoints, and comprehensive testing.
Features
- Declarative YAML Configuration — Define sources, destinations, and transformations without writing Python
- 8 Connectors — CSV, JSON, Parquet, S3, PostgreSQL, MySQL, Snowflake, BigQuery
- Production-Ready Reliability — Atomic operations, automatic retries, dead letter queue, checkpoint/resume
- Schema Management — Auto-inference, validation, evolution tracking, and quality checks
- Developer Experience — Rich progress bars, dry-run mode, audit trail, and comprehensive testing (141+ tests)
Quick Start
pip install conduit-core
Create ingest.yml:
sources:
- name: users_csv
type: csv
path: "./users.csv"
destinations:
- name: users_json
type: json
path: "./users.json"
resources:
- name: csv_to_json
source: users_csv
destination: users_json
Run:
conduit run csv_to_json
Documentation
- Installation & Setup — Installation, environment setup, and credentials
- Usage Guide — CLI commands, pipeline configuration, and examples
- Connectors — Configuration for all 8 connectors
- Features — Reliability, checkpoints, DLQ, incremental loads
- Architecture — Design patterns, tech stack, and structure
- Data Quality — Schema validation and quality checks
- Contributing — Development setup and contribution guidelines
- Roadmap — Future features and connector expansion
Example: Incremental PostgreSQL → Snowflake
sources:
- name: pg_source
type: postgresql
host: ${PG_HOST}
database: analytics
user: ${PG_USER}
password: ${PG_PASSWORD}
destinations:
- name: sf_dest
type: snowflake
account: ${SF_ACCOUNT}
warehouse: COMPUTE_WH
database: ANALYTICS
schema: PUBLIC
resources:
- name: incremental_load
source: pg_source
destination: sf_dest
query: "SELECT * FROM events"
incremental_column: created_at
write_mode: append
Run with validation:
conduit preflight incremental_load
conduit run incremental_load
Why Conduit Core?
Built for data engineers who need the simplicity of declarative configuration with the reliability of enterprise-grade systems:
- ✅ No boilerplate — YAML instead of Python for 90% of use cases
- ✅ Crash-safe — Atomic writes, transactions, and checkpoint/resume
- ✅ Observable — Audit trail, progress bars, and detailed error messages
- ✅ Extensible — Plugin architecture for custom connectors
- ✅ Battle-tested — 141+ tests covering edge cases and failure modes
Community
- Issues & Bugs: GitHub Issues
- Feature Requests: GitHub Discussions
- Contributing: See CONTRIBUTING.md
License
BSL 1.1 (Business Source License) — See LICENSE for details
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file conduit_core-1.0.0.tar.gz.
File metadata
- Download URL: conduit_core-1.0.0.tar.gz
- Upload date:
- Size: 105.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.5 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d595289df804d0d87100b0d47813319c87bcfc1ee98e37dae406e6303e6de497
|
|
| MD5 |
871f8b3e68e98fcecccdfff467f275c3
|
|
| BLAKE2b-256 |
84cdf79be1be2153991de16dcb0e55e321eaf1cfa478a077721e2ed33efa4aee
|
File details
Details for the file conduit_core-1.0.0-py3-none-any.whl.
File metadata
- Download URL: conduit_core-1.0.0-py3-none-any.whl
- Upload date:
- Size: 91.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.5 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f621bb242c13ca33b9f691e836144653eb0e5f6109cafd72dcc75ac1150dfdfb
|
|
| MD5 |
81b0b47dbc7244a0fa816f863720ef67
|
|
| BLAKE2b-256 |
c8971c30f570cebd1d16f5f1e017d12b0daa4863e2af49d31b317578f1da5217
|