Skip to main content

Heroku for ML Features

Project description

Meridian


Heroku for ML Features
PyPI License

"Define features in Python. Get training data and production serving for free."

Meridian is a developer-first feature store designed to take you from a Jupyter notebook to production in 30 seconds. It eliminates the infrastructure tax of existing tools—no Kubernetes, no Spark, no YAML. Just pure Python and SQL.


⚡ The 30-Second Quickstart

1. Install

pip install "meridian-oss[ui]"

2. Try the Quickstart Script Run a self-contained script to see the API in action:

python examples/quickstart.py

3. Define Features (examples/basic_features.py) Or define features in a file to serve them:

from meridian.core import FeatureStore, entity, feature
from datetime import timedelta

store = FeatureStore()

@entity(store)
class User:
    user_id: str

@feature(entity=User, refresh=timedelta(minutes=5), materialize=True)
def user_click_count(user_id: str) -> int:
    return 42

4. Serve

meridian serve examples/basic_features.py

5. Query

curl -X POST http://localhost:8000/features \
  -H "Content-Type: application/json" \
  -d '{"entity_name": "User", "entity_id": "u1", "features": ["user_click_count"]}'

# {"user_click_count": 100}

6. Visualize Launch the built-in UI to explore your features interactively:

meridian ui examples/basic_features.py

Or see the rich terminal dashboard:

meridian serve examples/basic_features.py

7. Deploy Spin up a local production stack (Meridian + Redis + Postgres + Prometheus) in one command:

docker compose up -d

🚀 Why Meridian?

1. Local-First, Cloud-Ready

Most feature stores require a platform team to set up. Meridian runs on your laptop with zero dependencies (DuckDB + In-Memory) and scales to production with boring technology (Postgres + Redis).

2. No Magic, Just Python

We don't use YAML for configuration. Your code is your config.

  • Explicit Caching: Use @feature(materialize=True) to cache hot features.
  • Explicit Refresh: Use @feature(refresh="5m") to define freshness.

3. Instant Wow ✨

  • Meridian UI: A built-in Streamlit dashboard to explore your data.
  • Rich Terminal: Production-grade TUI with live metrics.
  • Jupyter Integration: Beautiful HTML representations of your feature store objects.

4. Production-Grade Reliability 🛡️

  • Fallback Chain: Cache -> Compute -> Default. If Redis fails, we compute on-demand.
  • Circuit Breakers: Built-in protection against cascading failures (fail fast).
  • Deep Observability: Prometheus metrics (meridian_feature_requests_total) and structured JSON logging out of the box.
  • Async Core: Fully async I/O for high-throughput serving.

🏗️ Architecture

Tier 1: Local Development (The "Wedge")

Perfect for prototyping and single-developer projects.

  • Offline Store: DuckDB (Embedded)
  • Online Store: Python Dictionary (In-Memory)
  • Scheduler: APScheduler (Background Thread)
  • Infrastructure: None (Just pip install)

Tier 2: Production (The "Standard")

Robust, scalable, and boring.

  • Offline Store: Postgres / Snowflake / BigQuery
  • Online Store: Redis
  • Scheduler: Distributed Workers with Redis Locks
  • Infrastructure: 1x Postgres, 1x Redis, Nx API Pods

🗺️ Roadmap

  • Phase 1 (Now): Core API, DuckDB/Postgres support, Redis caching, FastAPI serving.
  • Phase 2: Drift detection, RBAC, and multi-region support.

🤝 Contributing

We love contributions! Please read our CONTRIBUTING.md to get started.

📄 License

Apache 2.0

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

meridian_oss-1.0.0.tar.gz (252.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meridian_oss-1.0.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file meridian_oss-1.0.0.tar.gz.

File metadata

  • Download URL: meridian_oss-1.0.0.tar.gz
  • Upload date:
  • Size: 252.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meridian_oss-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ca4b4165ef9340c388ce934fccdccd8bebedc3feb9da1d66e116e2c33fd3265a
MD5 c311f33f19a830558ca8c063430d02f6
BLAKE2b-256 f922746b819c74a9888ebad756b6547219c3cbce435c7908ba82853c47aa98a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_oss-1.0.0.tar.gz:

Publisher: release.yml on davidahmann/meridian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meridian_oss-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: meridian_oss-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meridian_oss-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 583fa7d40cd3741afa447aa7043e87dca8f90f77d8c369ac7304257b0386e789
MD5 cdb83d562019c076ce63c8fcab88b84e
BLAKE2b-256 7c9c840b2c9227926cff5e9be667f9c549fbc45354687de6eb0bca983551a141

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_oss-1.0.0-py3-none-any.whl:

Publisher: release.yml on davidahmann/meridian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page