Skip to content

SDKs & Languages

Meridian ships SDKs in six languages. Pick the one your team knows — the kernel API is identical across all of them.

Available SDKs

Language Status Install GitHub
Python Production-ready (84 operations) pip install open-meridian meridian-python
Go Production-ready (84 operations) go get github.com/Societal-Lab-Inc/meridian-go meridian-go
TypeScript Production-ready (84 operations) npm install open-meridian meridian-typescript
Java In development Coming soon meridian-java
C++ In development Coming soon meridian-cpp
Rust In development Coming soon meridian-rust

All six SDKs implement the same 84 kernel API operations across OMS, EMS, and BOR surfaces. Code written against any SDK works identically in local and deployed environments.

Development Modes

Mode Infrastructure Best For
Local None — everything in-process Strategy development, backtesting, unit testing
Connected Sidecar + bus + kernel Coming soon

Local mode is where most development happens. No Docker, no sidecar, no message bus — just your code and the SDK. When you're ready to deploy, the same plugin binary connects to a live sidecar with zero code changes.

Getting Started

Python

pip install open-meridian
from meridian import LocalClient

client = LocalClient()
# You now have access to all 84 kernel operations

Full documentation and examples: meridian-python

Go

go get github.com/Societal-Lab-Inc/meridian-go
import meridian "github.com/Societal-Lab-Inc/meridian-go"

client := meridian.NewLocalClient()
// You now have access to all 84 kernel operations

Full documentation and examples: meridian-go

TypeScript

npm install open-meridian
import { LocalClient, SignalEngine, type DataWindow } from "open-meridian";

const client = new LocalClient({ startingCash: 100_000 });
client.loadBars("BTC", "data/btc-usd.csv");
// You now have access to all 84 kernel operations

Full documentation and crypto examples: meridian-typescript

Data Query API

Query any canonical field for any instrument:

Python

from meridian.fields import CLOSE, DURATION, GICS_SECTOR

price = client.data.get("AAPL", CLOSE)           # from loaded bars
sector = client.data.get("AAPL", GICS_SECTOR)    # None in local mode, resolved in connected mode

Go

price, _ := client.Data().Get("AAPL", meridian.FieldClose)
sector, _ := client.Data().Get("AAPL", meridian.FieldGICSSector)

The SDK ships 62 canonical field constants covering identifiers, prices, reference data, fixed income, derivatives, fundamentals, and compliance. Use these instead of string literals — they're the same field names across all SDKs, all DGM plugins, and all data queries.

In local mode, OHLCV fields resolve from loaded bar data. All other fields return None/nil — they'll resolve automatically when connected to a live deployment with DGM and analytics plugins.

API Reference Documentation

Full API reference for each SDK is published separately — Python API Docs and Go API Docs (coming soon). The SDK repositories contain comprehensive usage guides, code samples, and per-method documentation.