All notable changes to the Janus project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Historical Sliding Window Operator (
src/stream/operators/historical_sliding_window.rs)- Implements
Iteratorpattern for sliding windows over historical data - Supports configurable width, slide, and offset parameters
- Uses
SystemTime::now()internally to determine window boundaries - Clamps window end to prevent querying beyond current time
- Mandatory offset parameter for "go back" semantics
- Implements
-
Historical Fixed Window Operator (
src/stream/operators/historical_fixed_window.rs)- Single-query operator for fixed time ranges [start, end]
- Implements
Iteratorpattern (yields once, then returnsNone) - Enforces mandatory start and end timestamps
-
Integration Tests with Real RDF IRIs
tests/historical_sliding_window_test.rs: Sensor data and FOAF examplestests/historical_fixed_window_test.rs: IoT devices and semantic web publications- Uses standard vocabularies: RDF, FOAF, Dublin Core, BIBO
- Consolidated window definitions to use
WindowDefinitionfromjanusql_parser.rsconsistently - Removed duplicate
HistoricalWindowstruct fromsrc/stream/operators/hs2r.rs - Moved
historical_sliding_window.rsintosrc/stream/operators/directory for better organization
- Window end clamping to prevent querying future data in sliding windows
- Type consistency across window operators
- Clippy warnings: Replaced
ArcwithRcin window operators and tests since they don't use threading- Fixed
arc_with_non_send_synclint errors - All CI checks now pass (rustfmt, clippy, tests, build)
- Fixed
- CI/CD Test Suite failures: Removed unit tests from operator files
- Integration tests in
tests/directory provide comprehensive coverage - Fixed timing race condition in integration tests
- All 35 tests now pass on all platforms
- Integration tests in
- Core RDF event processing
- Segmented storage with two-level indexing
- JanusQL parser with support for live, historical sliding, and historical fixed windows
- Dictionary encoding for efficient RDF storage
- Basic streaming infrastructure
Note: This changelog tracks changes starting from the implementation of historical window operators. Earlier changes may not be fully documented.