Skip to content

0.3.0: The Store is now Open

Choose a tag to compare

@strawgate strawgate released this 17 Nov 16:46
· 40 commits to main since this release
6736113

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 RoutingWrapper and CollectionRoutingWrapper to manage request routing between stores.
  • Dataclasses: Added DataclassAdapter utilizing Pydantic TypeAdapter for 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, and version fields.
  • Input Refactoring: Switched input parameters from strict dict/list to abstract Mapping/Sequence for better compatibility.
  • Batch Operations: put_many now requires a single TTL for all items in the batch, rather than individual TTLs.
  • Sanitization: Introduced SanitizationStrategy for 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, and diskcache.