analytics_toolkit 0.1.1 copy "analytics_toolkit: ^0.1.1" to clipboard
analytics_toolkit: ^0.1.1 copied to clipboard

A pure-Dart in-memory query engine for dashboard-style analytics over normalized record collections. Renderer-agnostic.

Change Log #

2026-05-28 #

Changes #


Packages with breaking changes:

  • There are no breaking changes in this release.

Packages with other changes:


analytics_toolkit - v0.1.1

  • FEAT: Publishing initial version of analytics package (#1). (c3f53193)

0.1.1 #

  • FEAT: Publishing initial version of analytics package (#1). (c3f53193)

Changelog #

0.1.0 #

Initial release.

analytics_toolkit is a pure-Dart in-memory query engine for dashboard-style analytics over normalized record collections. Hosts declare data sources, build typed queries with measures and group-bys, and read back typed results — no chart library, no UI toolkit, no Flutter dependency. The host streams SourceRecords in; the executor returns AnalyticsResult out.

This release establishes the foundational API surface:

  • Schema and valuesSourceDef and FieldDef for declaring sources, with a sealed TypedValue family (StringValue, IntValue, DoubleValue, BoolValue, EnumValue, DateTimeValue, DurationValue, list variants, NullValue) and a single canonical ordering via TypedValueOrdering.
  • Queries — up to five measures per query from a sealed measure family (CountMeasure, FieldMeasure with a sealed FieldAggregation family — SumAgg, AverageAgg, MinAgg, MaxAgg, DistinctCountAgg, PercentileAgg — and StreakMeasure); up to three group-bys from a sealed group-by family (FieldGroupBy, TimeGroupBy); AND-combined record-level filters; bucket-level filtering via HavingClause; sorts with SQL-style null ordering; and derived operations (CumulativeSumOp, DeltaOp, MovingAverageOp) applied after aggregation.
  • Results — sealed result family (ScalarResult, SeriesResult, MultiSeriesResult, MultiMeasureSeriesResult, TableResult) with a unified BucketKey family and BucketKeyOrdering as the single source of truth for ordering.
  • ValidationQueryValidator returns Result<Unit, AnalyticsError> with a closed AnalyticsErrorKind enum. The executor never throws for validation failures.
  • ExecutionAnalyticsExecutor.execute is a pure function: (query, records, sources) -> Result<AnalyticsResult, AnalyticsError>. Deterministic, no wall-clock reads, no hidden state.
  • Time series — calendar-aligned date-range presets via DatePresetResolver, configurable week-start and quarter-start, half-open [start, end) ranges, date-range projection via DateRangeProjector, and time-bucket densification so charts render without gaps.
  • Paired queriesPairedQuerySpec for cohort comparison and rate displays, with alignability validation across sources.
  • PersistenceAnalyticsWidgetSpec plus WidgetPayloadCodec round-trip user-built widget specs to JSON with a schema-version guard for forward compatibility.
  • Caching and change eventsSourceSnapshotCache for records-layer caching (in-flight dedup, scoped invalidation, discard-on-completion for stale fetches) and AnalyticsChange / AnalyticsChangeKind for typed listener invalidation.
  • Zero external dependencies — only dart:core and dart:convert.nd AnalyticsChange / AnalyticsChangeKind for typed listener invalidation.
  • Zero external dependencies — only dart:core and dart:convert.
0
likes
160
points
--
downloads

Documentation

API reference

Publisher

verified publisherresengi.io

Weekly Downloads

A pure-Dart in-memory query engine for dashboard-style analytics over normalized record collections. Renderer-agnostic.

Repository (GitHub)
View/report issues

License

MIT (license)

More

Packages that depend on analytics_toolkit