Lakehouse platform
Project description
Modern data lakehouse platform. Plugin-driven. Storage-agnostic.
Features
- Template-first projects —
phlo initcreates focused starters for CSV, REST APIs, dbt medallion projects, Sling replication, and observability demos - Decorator-driven ingestion —
phlo-dltandphlo-slingregister assets without hand-written Dagster boilerplate - Type-safe quality contracts —
phlo-panderaschemas validate data before it lands in managed tables - Capability plugins — packages contribute services, CLI commands, assets, resources, catalogs, hooks, and Observatory surfaces through Python entry points
- Storage-agnostic data plane — Iceberg, Delta, ClickHouse, Trino, MinIO, RustFS, Nessie, and PostgreSQL can be composed as needed
- Operator surfaces —
phlo-api, Observatory, MCP, PostgREST, Hasura, Superset, pgweb, and observability packages expose runtime state and actions - Local-first operations —
phlo servicesgenerates and runs the project stack through Docker or Podman
What It Looks Like
from pathlib import Path
import pandas as pd
import pandera.pandas as pa
from pandera.typing import Series
from phlo_dlt.decorator import phlo_ingestion
class EventsSchema(pa.DataFrameModel):
id: Series[int] = pa.Field(ge=1)
name: Series[str]
value: Series[int] = pa.Field(ge=0)
class Config:
strict = True
coerce = True
@phlo_ingestion(
table_name="events",
unique_key="id",
validation_schema=EventsSchema,
group="demo",
freshness_hours=(1, 24),
)
def events(partition_date: str):
return pd.read_csv(Path("data/events.csv"))
Prerequisites
Quick Start
# Install with default plugins
uv pip install phlo[defaults]
# Initialize a runnable local starter
phlo init my-project --template csv-batch
cd my-project
# Generate service configuration, start services, and materialize
phlo services init
phlo services start
phlo materialize dlt_events --partition 2026-05-04
Documentation
Full documentation source lives under docs/index.md. The published site is generated with pymdx, matching the GitHub Pages workflow:
pymdx generate src/phlo --docs docs --output docs-site
pymdx build docs-site
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, phlo-sling |
| Quality | phlo-pandera |
| Transforms | phlo-dbt |
| Table formats | phlo-iceberg, phlo-delta, phlo-clickhouse |
| Infrastructure | phlo-traefik, phlo-postgres, phlo-oauth2-proxy |
| Storage | phlo-minio, phlo-rustfs |
| Catalog | phlo-nessie, phlo-openmetadata |
| Query | phlo-trino |
| Observability | phlo-otel, phlo-clickstack, phlo-grafana, phlo-prometheus, phlo-loki, phlo-alloy, phlo-alerting |
| UI | phlo-observatory, phlo-pgweb, phlo-superset |
| API | phlo-api, phlo-mcp, 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
phlo-0.9.0.tar.gz
(282.6 kB
view details)
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
phlo-0.9.0-py3-none-any.whl
(384.1 kB
view details)
File details
Details for the file phlo-0.9.0.tar.gz.
File metadata
- Download URL: phlo-0.9.0.tar.gz
- Upload date:
- Size: 282.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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 |
e73db61c32f293e294d2e7573e772a04895b45b566c8a7c27644fd9596e0fc1b
|
|
| MD5 |
0add34c163bf72a29a9413331e58e8bc
|
|
| BLAKE2b-256 |
20328e2c51c582e0cddd0a20c9b3cd245aabea95320689bee1f41aec104a9bbd
|
File details
Details for the file phlo-0.9.0-py3-none-any.whl.
File metadata
- Download URL: phlo-0.9.0-py3-none-any.whl
- Upload date:
- Size: 384.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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 |
d824f8bb9f47c5428391e73888e455c0df0b902091a2f4dd58a076281080d5cb
|
|
| MD5 |
828be2698ff58e519b73b2cbd4419605
|
|
| BLAKE2b-256 |
525e8663770616b5993576aecac8d7c8165968d920d150c47b7811da19b0a082
|