Skip to main content

Heroku for ML Features

Project description

Meridian

The Heroku for ML Features

PyPI version License Python Version No YAML

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

Stop paying the infrastructure tax. Meridian takes you from Jupyter to Production in 30 seconds.

📚 Read the Documentation

⚡ The 30-Second Quickstart

Option A: The "I just want to see it work" (Clone & Run)

git clone https://github.com/davidahmann/meridian.git
cd meridian
pip install -e ".[ui]"
meridian serve examples/basic_features.py

Option B: The "Builder" (Pip Install)

  1. Install Meridian
pip install "meridian-oss[ui]"
  1. Create a file named my_features.py:
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 len(user_id) + random.randint(0, 100)
  1. Serve it immediately:
meridian serve my_features.py
# 🚀 Meridian server running on http://localhost:8000
  1. Query it:
curl -X POST http://localhost:8000/features \
  -H "Content-Type: application/json" \
  -d '{"entity_name": "User", "entity_id": "u1", "features": ["user_click_count"]}'
# Output: {"user_click_count": 42}

🚀 Why Meridian?

Most feature stores are built for the 1% of companies (Uber, DoorDash) with platform teams. They require Kubernetes, Spark, and complex microservices.

Meridian is built for the rest of us.

Feature The "Old Way" The Meridian Way
Config 500 lines of YAML Python Decorators (@feature)
Infra Kubernetes + Spark Runs on your Laptop (DuckDB)
Serving Complex API Gateway meridian serve file.py
Philosophy "Google Scale" "Get it Shipped"

Key Features

  • Local-First, Cloud-Ready: Runs on your laptop with zero dependencies (DuckDB + In-Memory). Scales to production with boring technology (Postgres + Redis).
  • No Magic: Your code is your config. Explicit caching (materialize=True) and explicit refresh logic.
  • Production Reliability: Built-in circuit breakers, fallback chains (Cache -> Compute -> Default), and Prometheus metrics (meridian_feature_requests_total).
  • Rich UI & TUI: Includes a Streamlit dashboard and a production-grade Terminal UI for live monitoring.
  • Hybrid Features (v1.1.0): Mix Python logic (for complex math) and SQL (for heavy joins) in the same API.
  • Point-in-Time Correctness (v1.1.0): Zero data leakage using ASOF JOIN (DuckDB) and LATERAL JOIN (Postgres).
  • Write Once, Run Anywhere (v1.1.0): Switch from Dev to Prod just by setting MERIDIAN_ENV=production. No code changes.

🏗️ Architecture

Meridian is designed to grow with you.

graph TD
    subgraph Dev [Tier 1: Local Development]
        A[Laptop] -->|Uses| B(DuckDB)
        A -->|Uses| C(In-Memory Dict)
        style Dev fill:#e1f5fe,stroke:#01579b
    end

    subgraph Prod [Tier 2: Production]
        D[API Pods] -->|Async| E[(Postgres)]
        D -->|Async| F[(Redis)]
        style Prod fill:#fff3e0,stroke:#ff6f00
    end

    Switch{MERIDIAN_ENV} -->|development| Dev
    Switch -->|production| Prod

Tier 1: Local Development (The "Wedge")

  • Perfect for prototyping and single-developer projects.
  • Offline Store: DuckDB (Embedded)
  • Online Store: Python Dictionary (In-Memory)
  • Infra: None (Just pip install)

Tier 2: Production (The "Standard")

  • Robust, scalable, and boring.
  • Offline Store: Postgres / Snowflake / BigQuery
  • Online Store: Redis
  • Infra: 1x Postgres, 1x Redis, Nx API Pods

🗺️ Roadmap

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

🤝 Contributing

We love contributions! This is a community-driven project. 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.1.2.tar.gz (346.0 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.1.2-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meridian_oss-1.1.2.tar.gz
  • Upload date:
  • Size: 346.0 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.1.2.tar.gz
Algorithm Hash digest
SHA256 89ff91c07bc466868e2f7af95817742e2ca2bcee327245be3387b2de35d6f266
MD5 b69b7f62bbf20fe635bca0e2f6cd6397
BLAKE2b-256 e09da7b8484a5c61c61213ccce8d58baafb9069388141219c977338e52e3287f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meridian_oss-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 26.8 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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 584d9bbbb19a3e398b6c3b89cac85313ec677027b402d0467b93c1166c985227
MD5 a814966d9a619205657ea4d8aa198a98
BLAKE2b-256 3afd52f716d1f29c5a2258cb327f4275a4c26c71640c12b33559b714aec5a1ba

See more details on using hashes here.

Provenance

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