Lakehouse platform
Project description
Modern data lakehouse platform. Plugin-driven. Storage-agnostic.
Features
- Decorator-driven development —
@phlo.ingestionand@phlo.qualityreplace hundreds of lines of boilerplate - Write-Audit-Publish pattern — Git-like branching with automatic quality gates and promotion
- Type-safe data quality — Pandera schemas enforce validation at ingestion time
- Plugin architecture — 12 plugin types: sources, quality, ingestion, transforms, services, hooks, catalogs, assets, resources, orchestrators, and CLI commands
- Storage-agnostic — Iceberg, Delta, or bring-your-own via table-format plugins
- Observatory UI — Web-based data exploration, lineage, and monitoring
- Observability — OpenTelemetry traces, metrics, and logs via
phlo-otel; Grafana/Prometheus/Loki stack - Production-ready — Auto-publishing, configurable merge strategies, freshness policies, data migrations
What It Looks Like
import phlo
@phlo.ingestion(
table_name="events",
unique_key="id",
validation_schema=EventSchema,
group="api",
cron="0 */1 * * *",
freshness_hours=(1, 24),
)
def api_events(partition_date: str):
return rest_api(...) # Any DLT source
@phlo.quality(
table="bronze.events",
checks=[
NullCheck(columns=["id", "timestamp"]),
RangeCheck(column="value", min_value=0, max_value=100),
UniqueCheck(columns=["id"]),
FreshnessCheck(column="timestamp", max_age_hours=24),
],
)
def events_quality():
pass
Prerequisites
Quick Start
# Install with default plugins
uv pip install phlo[defaults]
# Initialize a new project
phlo init my-project
cd my-project
# Generate service configuration, start services, and materialize
phlo services init
phlo services start
phlo materialize --select "dlt_glucose_entries+"
Documentation
Full documentation source lives under docs/index.md. The Fumadocs site now builds from docs-app/ against that same Markdown tree:
npm --prefix docs-app install
npm --prefix docs-app run dev
The docs app serves locally on http://localhost:3101.
Primary entry points:
- Installation Guide
- Quickstart Guide
- Core Concepts
- Developer Guide
- Plugin Development
- Workflow Development
- CLI Reference
- Configuration Reference
- Operations Guide
Development
uv pip install -e . # Install Phlo in dev mode
make check # Lint, format, typecheck, and test (parallel)
# Services
phlo services start # Start infrastructure
phlo services stop # Stop services
phlo services logs -f # View logs
# Individual gates
uv run ruff check . # Lint
uv run ruff format . # Format
uv run ty check # Typecheck
uv run pytest # Test
Architecture
Phlo is a monorepo of composable packages — install only what you need:
| Layer | Packages |
|---|---|
| Orchestration | phlo-dagster |
| Ingestion | phlo-dlt |
| Quality | phlo-pandera |
| Transforms | phlo-dbt |
| Table formats | phlo-iceberg, phlo-delta, phlo-clickhouse |
| Infrastructure | phlo-traefik, phlo-postgres |
| Storage | phlo-minio |
| Catalog | phlo-nessie, phlo-openmetadata |
| Query | phlo-trino |
| Observability | phlo-otel, phlo-clickstack, phlo-grafana, phlo-prometheus, phlo-loki, phlo-alloy |
| UI | phlo-observatory, phlo-pgweb, phlo-superset |
| API | phlo-api, phlo-hasura, phlo-postgrest |
| Dev/Test | phlo-testing |
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 phlo-0.8.2.tar.gz.
File metadata
- Download URL: phlo-0.8.2.tar.gz
- Upload date:
- Size: 243.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e91c00ce45e87f7b0fb51ba6d9a4ee7a35356404be6aa806adf87058e51d1387
|
|
| MD5 |
de30b082fd371749d89b07ed7be00843
|
|
| BLAKE2b-256 |
c1aa524094ce078ca3a50714694048c95e952d30de4bf8e48d6673e374352e8f
|
File details
Details for the file phlo-0.8.2-py3-none-any.whl.
File metadata
- Download URL: phlo-0.8.2-py3-none-any.whl
- Upload date:
- Size: 328.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed692df8b015619b987342393be2d25a373a64954e13616d46f573ce9a2ba055
|
|
| MD5 |
888b4ec781bca11ba6b9603ec496b5ff
|
|
| BLAKE2b-256 |
2eea45bccb8866c62914da017dd47db39455fbd2c5fd8bc30222941fe8853cc4
|