0.3.0: The Store is now Open
Unstable stores may have had breaking changes to how they store data.
🚀 New Features & Storage Backends
- New Stores: Added support for DuckDB and FileTreeStore.
- Routing Wrappers: Introduced
RoutingWrapperandCollectionRoutingWrapperto manage request routing between stores. - Dataclasses: Added
DataclassAdapterutilizing PydanticTypeAdapterfor better object serialization.
⚡ Core API & Architecture
- Lifecycle Management: Refactored client ownership to better handle store lifecycle (setup/teardown). If you provide a client you own entering / exiting it.
- Serialization Updates: Serialized documents now explicitly include
key,collection, andversionfields. - Input Refactoring: Switched input parameters from strict
dict/listto abstractMapping/Sequencefor better compatibility. - Batch Operations:
put_manynow requires a single TTL for all items in the batch, rather than individual TTLs. - Sanitization: Introduced
SanitizationStrategyfor configurable input cleaning during store initialization. Stores no long sanitize by default, you must select the sanitization method when providing the store.
🛡️ Reliability & Type Safety
- Runtime Enforcement: extensive application of BearType across Stores, Wrappers, and utility functions to enforce runtime type safety.
- Bug Fixes: Resolved critical bugs regarding Memory Store TTL, Windows Registry operations, and DynamoDB TTL creation.
- Relaxed Dependencies: Loosened version constraints for
pymongo,elasticsearch,cachetools, anddiskcache.