All notable changes to the aimdb-executor crate will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Spawntrait deleted (Issue #88). Including theSpawnTokenassociated type and theExecutorError::SpawnFailedvariant. TheRuntimebundle trait is nowRuntimeAdapter + TimeOps + Logger(noSpawnsupertrait). Task execution moves toAimDbRunner::run()inaimdb-core, which drives every collected future via a singleFuturesUnordered. Custom adapters must dropimpl Spawn.JoinFanInRuntimesupertrait relaxed fromSpawntoRuntimeAdapter.
futures-util(alloc-only) as a regular dependency — providesFuturesUnorderedused byaimdb-core'sAimDbRunner.
0.2.0 - 2026-05-22
TimeOps::duration_as_nanos— new required method on theTimeOpstrait that returns the number of whole nanoseconds in aSelf::Duration. Introduced for stage profiling (Issue #58) so features can convert elapsed time to a numeric, runtime-agnostic representation without binding tostd::time. Implementations should saturate rather than overflow for durations larger thanu64::MAXnanoseconds.- Join fan-in traits (Design 027): Runtime-agnostic abstraction for multi-input transform fan-in queues, replacing the previous
tokio::sync::mpsc-only path inaimdb-core.JoinFanInRuntimetrait — runtime capability for creating bounded fan-in queues; implemented per adapter.JoinQueue<T>trait — splittable intoSender/Receiverhalves.JoinSender<T>/JoinReceiver<T>traits —async fn send/async fn recvreturningExecutorResult<()>.
ExecutorError::QueueClosedvariant — returned byJoinSender::send/JoinReceiver::recvwhen the channel is closed (Tokio, WASM). Embassy channels never close, so this variant is unreachable on Embassy.
0.1.0 - 2025-11-06
- Initial release of runtime executor abstraction traits
RuntimeAdaptertrait for platform identificationSpawntrait for async task spawningTimeOpstrait for time operations (now, sleep)Loggertrait for logging abstractionno_stdcompatibility for embedded targets- Cross-platform support for Tokio and Embassy runtimes