Skip to content

Releases: strawgate/py-key-value

0.4.4: The Fix 🔧 2.0

16 Feb 21:15
ec9dfd6

Choose a tag to compare

0.4.3: The Fix 🔧

16 Feb 20:49
207afba

Choose a tag to compare

What's Changed

  • feat: mark FileTreeStore as stable and remove unused code by @strawgate in #304
  • fix: move shared code to avoid namespace conflicts on uninstall by @strawgate in #303

Full Changelog: 0.4.2...0.4.3

0.4.2: The Big 🌲

16 Feb 01:56
732e3b5

Choose a tag to compare

0.4.0: Expanded Options 📈

10 Feb 22:59
e944d26

Choose a tag to compare

Here is a summary of the changes between version 0.3.0 and 0.4.0 for the py-key-value library.


🚀 New Storage Backends

This release adds support for five new major storage providers, significantly widening the library's compatibility:

  • AWS S3 (PR #231)
  • PostgreSQL (PR #268)
  • Google Firestore (PR #249)
  • OpenSearch (PR #217)
  • Aerospike (PR #58)

🏗️ Architectural & Core Improvements

  • New Adapter Architecture: Implemented a 3-adapter architecture featuring BaseModelAdapter for better abstraction (PR #256).
  • Valkey Enhancements: Added GlideClusterClient support to ValkeyStore (PR #264).
  • Setup Control: Added the ability to skip automatic store setup (PR #258).

🐛 Key Bug Fixes

  • Redis Authentication: Fixed an issue where the username was not being extracted correctly from Redis URLs for ACL authentication (PR #255).
  • Serialization: Fixed handling of non-JSON-serializable types in PydanticAdapter schema generation (PR #284).
  • Edge Cases: Fixed hash_excess_length boundary conditions (PR #280).

🛠️ Developer Experience & Testing

  • Modern Testing: Migrated the test suite to use Testcontainers, improving reliability and reducing flakes (PR #274).
  • Documentation: Added CODE_STYLE.md, CONTRIBUTING.md, and CLAUDE.md to help new contributors (PR #289).
  • Dev Container: Added Docker CLI to the devcontainer environment (PR #262).

New Contributors

Full Changelog: 0.3.0...0.4.0

0.3.0: The Store is now Open

17 Nov 16:46
6736113

Choose a tag to compare

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.

0.2.8: 🔒 Encrypted 🪟 Windows

24 Oct 13:27
153abc5

Choose a tag to compare

What's Changed

  • Add FernetEncryptionWrapper
  • Add Windows Registry store

Full Changelog: 0.2.7...0.2.8

0.2.7: Add Encryption Wrapper

23 Oct 13:06
6c46b5b

Choose a tag to compare

What's Changed

  • Add EncryptionWrapper for securing stored values by @Copilot in #75

Full Changelog: 0.2.6...0.2.7

0.2.6: ⤵️ Down with Redis

21 Oct 16:27
27d9251

Choose a tag to compare

What's Changed

  • fix bearspray type checking by @strawgate in #65
  • Add aws_session_token parameter to DynamoDBStore for IAM role assumption support by @Copilot in #69
  • Loosen redis version constraint from >=6.0.0 to >=4.3.0 by @Copilot in #68
  • Bump to 0.2.6 by @strawgate in #72

Full Changelog: 0.2.5...0.2.6

0.2.5: Sync don't sink

16 Oct 16:53
4781120

Choose a tag to compare

pin the shared dep to the same version as the package version

Full Changelog: 0.2.4...0.2.5

0.2.4: Stores and Wrappers

16 Oct 16:39
d2f2116

Choose a tag to compare

What's Changed

Full Changelog: 0.2.2...0.2.4