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.1.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.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meridian_oss-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 ab04c3224289cc0fe614204339f22cb4875caaeb87b3324740865fa18469f6c8
MD5 346031bc6634d1aa97eee3dcd5044de8
BLAKE2b-256 478e9bb4a1533bdb56000602b0aaef532f967b9392fabe1cfb04e243ed1a65bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_oss-1.0.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: meridian_oss-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8355c1c6d1ff875f1e2cf1fd4d019e093af902f8e49cf30e5f80968e98eee9d5
MD5 ac6266e92d0a9127d7192eac2b3153bf
BLAKE2b-256 64ed55bbfb3d35ae0251495d913e264658414fe2d3b8eefa9af1ba11cc10b9ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_oss-1.0.1-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