local_query_filter 1.0.0
local_query_filter: ^1.0.0 copied to clipboard
A type-safe, composable query engine for client-side filtering, searching, sorting, and pagination of in-memory collections in Dart and Flutter.
Changelog #
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 – 2026-02-08 #
⚠️ Breaking Changes #
-
Removed isolate-based filtering
- Filtering no longer uses
computeor background isolates. - Execution now runs on the main isolate using chunked, cooperative yielding.
- This avoids isolate serialization constraints, closure limitations, and non-deterministic behavior with complex constraints.
- Filtering no longer uses
-
ArrayUnionConstraintAPI and behavior revisedarrayContainsnow matches a single value instead of requiring all values.- The previous “contains all values” behavior has been removed.
- Scalar and iterable field extractors are now explicitly separated.
-
Removed
CompoundConstraint.none- Equivalent behavior can be expressed using
CompoundConstraint.notcombined withor.
- Equivalent behavior can be expressed using
-
Updated equality semantics in
ComparisonConstraintequalandnotEqualnow rely on==/!=instead ofcompareTo == 0.- This may affect custom
Comparableimplementations.
-
Sorting behavior tightened
- Sorting now strictly relies on
Comparable.compareTo. - Case-insensitive string sorting and mixed-type fallbacks were removed.
- Sorting now strictly relies on
Performance #
- Added single-pass filtering, searching, and pagination when sorting is disabled.
- Introduced early termination when a
limitis provided. - Implemented chunked yielding to prevent long synchronous blocks when processing large in-memory collections.
API & Architecture Improvements #
- Simplified and hardened constraint implementations.
- Removed runtime type checks and
dynamicfallbacks. DateRangeConstraintno longer depends on Flutter or third-party date utilities.- Search field extractor now accepts
Iterable<String>instead ofList<String>. - Constraint collections are now immutable.
0.2.0 – 2025-08-05 #
Docs & Metadata #
- Updated package description and added topics in
pubspec.yaml. - Refined
README.md:- Improved installation snippet.
- Reordered usage examples.
- Clarified constraint behavior.
- Updated links.
0.1.0 – Initial Release #
- Initial release of
local_query_filter. - Supports filtering, sorting, and searching on in-memory collections.