A decoupled, SQL-first data engine for ingestion and transformation.
Project description
Gojjam
The Lightweight, SQL-First Data Engine for Ingestion and Transformation.
⚠️ Work in Progress: Gojjam is currently in MVP/Alpha. The core engine is stable, but connector features are limited. Not yet recommended for production-critical workloads.
Gojjam is a high-performance data orchestration engine designed to decouple Ingestion from Transformation. Built on the modern data stack (Apache Arrow, DuckDB, and Pydantic V2), it allows developers to build production-grade data pipelines using simple YAML configurations and pure SQL models.
🚀 Why Gojjam?
Most data tools force you into a monolith. Gojjam splits the workload:
- Decoupled Ingest: Land data from APIs, DBs, or S3 into your warehouse without writing Python boilerplate.
- SQL-First Transform: Execute high-performance transformations using SQL-pushdown logic.
- Local-First DX: A CLI-driven experience that works as well on your laptop as it does in production.
🛠️ Installation
pip install gojjam
📖 Quick Start
Gojjam includes a built-in scaffolding engine to get you running in seconds.
1. Initialize a Project
gojjam init
This creates a partitioned project structure:
gojjam_ingest_sources.yml: Define your data sources.gojjam_ingest_sinks.yml: Define where your data lands.ingest/: Put your raw extraction SQL here.transform/: Put your warehouse transformation SQL here.
2. Run the Pipeline
# Run all ingest and transformation tasks
gojjam run --all
💡 The Gojjam Philosophy
Gojjam treats APIs as virtual SQL tables. Instead of writing complex Python scripts to handle pagination and nested JSON, you define the schema and let the engine handle the heavy lifting. This allows data engineers to focus on the logic of the data rather than the plumbing of the connection.
🔌 Supported Connectors
Gojjam is designed for extensibility. We currently support the following extraction and loading modules:
| Connector | Type | Status / Description |
|---|---|---|
| HTTP / REST | Extractor | Alpha: Supports JSON payloads via Basic Auth. (JWT & Pagination coming soon). |
| PostgreSQL | Extractor/Loader | Stable: High-speed relational data movement via psycopg2. |
| CSV / Flat Files | Extractor | Stable: Local-first data ingestion for quick analysis. |
| DuckDB | Extractor | Stable: In-process analytical extraction for fast prototyping. |
| Terminal | Loader | Stable: Debug mode: stream results directly to your console. |
Project details
Release history Release notifications | RSS feed
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 gojjam-0.1.0.tar.gz.
File metadata
- Download URL: gojjam-0.1.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff309807a1512543b58bc24080d9aeb256333147bdb434ec28cc9d4f58fa0087
|
|
| MD5 |
6639b93b791f42b486891e57a36d7db3
|
|
| BLAKE2b-256 |
970b4b0d8c93c69a745627ea26f9416efe66efc08abcd652889a8e7054a8d4e9
|
File details
Details for the file gojjam-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gojjam-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30aaaaf61ee5c156e0f3015fb24cd6ff8790aa4ee28e3eb20c1040732f525c5f
|
|
| MD5 |
35a873e5c3fd9c2bf74524aa4f155b11
|
|
| BLAKE2b-256 |
7c187d419ca7a4c4e06487b18c41b54122e4ad9902ae3df56e98c8950299052a
|