Meridian.Engine
0.1.0-preview.7
dotnet add package Meridian.Engine --version 0.1.0-preview.7
NuGet\Install-Package Meridian.Engine -Version 0.1.0-preview.7
<PackageReference Include="Meridian.Engine" Version="0.1.0-preview.7" />
<PackageVersion Include="Meridian.Engine" Version="0.1.0-preview.7" />
<PackageReference Include="Meridian.Engine" />
paket add Meridian.Engine --version 0.1.0-preview.7
#r "nuget: Meridian.Engine, 0.1.0-preview.7"
#:package Meridian.Engine@0.1.0-preview.7
#addin nuget:?package=Meridian.Engine&version=0.1.0-preview.7&prerelease
#tool nuget:?package=Meridian.Engine&version=0.1.0-preview.7&prerelease
Meridian
Embeddable, time-correct reporting for .NET systems that already own their data: define metrics once, point Meridian at your store, and get chart-ready series back — bucketed in the right time zone, cached, invalidated on write, as chart-agnostic JSON.
This package is one part of Meridian. Most applications start with:
dotnet add package Meridian.Engine --prerelease
dotnet add package Meridian.Sources.DuckDb --prerelease # or .PostgreSql, .SqlServer, .MySql, .ClickHouse, or your own IPointSource
dotnet add package Meridian.Views.Json --prerelease
Quick start
var athlete = new DimensionId("athlete");
var trainingLoad = new MetricId("training-load");
var catalog = new InMemoryMetricCatalog(
[
new MetricDefinition(trainingLoad, "Training load", new Unit("au"), "mean", [athlete], TimeGrain.Instant),
]);
var source = new DuckDbPointSource(
new DuckDbSourceOptions("Data Source=:memory:", Relation: "read_parquet('data/load/*.parquet')"),
athlete);
var meridian = MeridianRuntime.InMemory(catalog, source);
var chart = await meridian.Engine.RunAsync(
PipelineSpec.Create(
tenant: "my-club",
metric: trainingLoad,
entities: [new EntityRef(athlete, 7), new EntityRef(athlete, 9)],
timeframe: new DateInterval(Instant.FromUtc(new DateTime(2026, 1, 1)), Instant.FromUtc(new DateTime(2026, 7, 1))),
view: new ViewSpec(ChartKind.Line, AxisSource.Time, SeriesBy: athlete),
Transform.Resample(Period.Week, Aggregators.Mean, GapPolicy.LeaveMissing)),
ProjectionOptions.Default with { Calendar = CalendarContext.For("Europe/London") });
Console.WriteLine(ChartViewJson.Serialize(chart));
Highlights
- Time done right — readings bucketed in the report's time zone (DST included); calendar dates never shift; legacy wall-clock columns read with explicit DST rules.
- Fast on your existing data — bucketing pushed down into the database when exact; multiple metrics in one query, from long (row per value) or wide (column per metric) tables; repeats from cache in microseconds.
- Safe caching — per-entity slices, finished-view caching, write-driven invalidation with versioned keys.
- Chart-agnostic output — plain JSON series and axes for any charting library, API or agent.
Documentation, benchmarks and the roadmap: https://github.com/gyandal/meridian
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Meridian.Caching (>= 0.1.0-preview.7)
- Meridian.Core (>= 0.1.0-preview.7)
- Meridian.Semantics (>= 0.1.0-preview.7)
- Meridian.Time (>= 0.1.0-preview.7)
- Meridian.Transforms (>= 0.1.0-preview.7)
- Meridian.Views (>= 0.1.0-preview.7)
-
net8.0
- Meridian.Caching (>= 0.1.0-preview.7)
- Meridian.Core (>= 0.1.0-preview.7)
- Meridian.Semantics (>= 0.1.0-preview.7)
- Meridian.Time (>= 0.1.0-preview.7)
- Meridian.Transforms (>= 0.1.0-preview.7)
- Meridian.Views (>= 0.1.0-preview.7)
-
net9.0
- Meridian.Caching (>= 0.1.0-preview.7)
- Meridian.Core (>= 0.1.0-preview.7)
- Meridian.Semantics (>= 0.1.0-preview.7)
- Meridian.Time (>= 0.1.0-preview.7)
- Meridian.Transforms (>= 0.1.0-preview.7)
- Meridian.Views (>= 0.1.0-preview.7)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Meridian.Engine:
| Package | Downloads |
|---|---|
|
Meridian.Hosts.Mcp
An agent tool surface for Meridian: describe the metric catalog and run bounded, typed report queries. |
|
|
Meridian.Sources.DuckDb
Meridian IPointSource over DuckDB — query DuckDB tables or Parquet files directly, with time-bucket aggregation pushed down into SQL. |
|
|
Meridian.Sources.Sql
The shared SQL engine behind Meridian's database sources: long and wide layouts, dimensions, batched multi-metric queries, exact time handling and calendar-bucket pushdown, over any ADO.NET provider through a small SQL dialect. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.7 | 93 | 9/30/2026 |
| 0.1.0-preview.6 | 84 | 9/29/2026 |
| 0.1.0-preview.5 | 77 | 9/29/2026 |
| 0.1.0-preview.4 | 69 | 9/29/2026 |
| 0.1.0-preview.3 | 73 | 9/25/2026 |
| 0.1.0-preview.2 | 79 | 9/25/2026 |
| 0.1.0-preview.1 | 73 | 9/24/2026 |