Meridian.Time
0.1.0-preview.7
dotnet add package Meridian.Time --version 0.1.0-preview.7
NuGet\Install-Package Meridian.Time -Version 0.1.0-preview.7
<PackageReference Include="Meridian.Time" Version="0.1.0-preview.7" />
<PackageVersion Include="Meridian.Time" Version="0.1.0-preview.7" />
<PackageReference Include="Meridian.Time" />
paket add Meridian.Time --version 0.1.0-preview.7
#r "nuget: Meridian.Time, 0.1.0-preview.7"
#:package Meridian.Time@0.1.0-preview.7
#addin nuget:?package=Meridian.Time&version=0.1.0-preview.7&prerelease
#tool nuget:?package=Meridian.Time&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.Core (>= 0.1.0-preview.7)
- NodaTime (>= 3.3.4)
-
net8.0
- Meridian.Core (>= 0.1.0-preview.7)
- NodaTime (>= 3.3.4)
-
net9.0
- Meridian.Core (>= 0.1.0-preview.7)
- NodaTime (>= 3.3.4)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on Meridian.Time:
| Package | Downloads |
|---|---|
|
Meridian.Views
Chart-agnostic views for Meridian: series, marks and typed axes with server-side labels, themes and status rules, for any charting library. |
|
|
Meridian.Transforms
A composable transform algebra over time series: filter, map, rekey, reduce, per-group, resample, rolling windows and two-input joins. |
|
|
Meridian.Caching
Per-entity caching for Meridian: deterministic keys, partial-hit merging, batched loading, single-flight, and version-bump and tag invalidation over pluggable stores. |
|
|
Meridian.Semantics
Metric catalog for Meridian: define metrics once (unit, default aggregation, dimensions, time kind) and use them from reports, APIs and agents. |
|
|
Meridian.Engine
Meridian's report engine: metric catalog, cache-aware fetch with aggregation pushdown and multi-metric batching, transforms, finished-view caching, and projection to chart-agnostic views. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.7 | 125 | 9/30/2026 |
| 0.1.0-preview.6 | 105 | 9/29/2026 |
| 0.1.0-preview.5 | 101 | 9/29/2026 |
| 0.1.0-preview.4 | 96 | 9/29/2026 |
| 0.1.0-preview.3 | 97 | 9/25/2026 |
| 0.1.0-preview.2 | 103 | 9/25/2026 |
| 0.1.0-preview.1 | 97 | 9/24/2026 |