diff --git a/.release-please-manifest.json b/.release-please-manifest.json index de98052..fdc885f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "crates/cachekit": "0.6.1", - "crates/cachekit-macros": "0.6.1" + "crates/cachekit": "0.7.0", + "crates/cachekit-macros": "0.7.0" } diff --git a/Cargo.lock b/Cargo.lock index 9801f96..becdf0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -213,7 +213,7 @@ dependencies = [ [[package]] name = "cachekit-macros" -version = "0.6.1" +version = "0.7.0" dependencies = [ "proc-macro2", "quote", @@ -222,7 +222,7 @@ dependencies = [ [[package]] name = "cachekit-rs" -version = "0.6.1" +version = "0.7.0" dependencies = [ "async-trait", "blake2", diff --git a/crates/cachekit-macros/CHANGELOG.md b/crates/cachekit-macros/CHANGELOG.md index b1f3f62..5e787ec 100644 --- a/crates/cachekit-macros/CHANGELOG.md +++ b/crates/cachekit-macros/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [0.7.0](https://github.com/cachekit-io/cachekit-rs/compare/cachekit-macros-v0.6.1...cachekit-macros-v0.7.0) (2026-08-07) + + +### ⚠ BREAKING CHANGES + +* the public module cachekit::key (and cachekit::key::generate_cache_key) is removed. It was never protocol-conformant and had no supported use. For cross-SDK, spec-conformant keys use the interop/v1 keygen (interop_key(), arriving with cachekit-rs#33 / LAB-246). The #[cachekit] macro's derived keys are unchanged. + +### Features + +* #[cachekit] mints interop/v1 keys — retire legacy non-conformant keygen (LAB-424) ([#35](https://github.com/cachekit-io/cachekit-rs/issues/35)) ([ff1d490](https://github.com/cachekit-io/cachekit-rs/commit/ff1d4902da40c9a99dae8e8e8179a6b83f4771c3)) +* implement #[cachekit] proc-macro and Workers backend ([7ae2f05](https://github.com/cachekit-io/cachekit-rs/commit/7ae2f05b20582b72008ba900853edd173573d72a)) +* **l1:** LAB-728 stale-while-revalidate — serve stale + single-flight background refresh ([#47](https://github.com/cachekit-io/cachekit-rs/issues/47)) ([068b84a](https://github.com/cachekit-io/cachekit-rs/commit/068b84ac407cefa20c13a706798faf5354ade5d8)) +* **reliability:** retry, circuit breaker, graceful degradation, single-flight (LAB-518) ([#43](https://github.com/cachekit-io/cachekit-rs/issues/43)) ([e9b9a1e](https://github.com/cachekit-io/cachekit-rs/commit/e9b9a1e7ddf42225a81bc5247ad90e011a690937)) + + +### Bug Fixes + +* **l1:** guard LAB-728 SWR refresh commits ([#48](https://github.com/cachekit-io/cachekit-rs/issues/48)) ([e31109b](https://github.com/cachekit-io/cachekit-rs/commit/e31109bfb09c31970d940819a088c1a975ea4f45)) +* resolve critical issues from expert panel review ([41d2189](https://github.com/cachekit-io/cachekit-rs/commit/41d218964468b5833f273e8f84a9e9d479672584)) + ## [0.6.1](https://github.com/cachekit-io/cachekit-rs/compare/cachekit-macros-v0.6.0...cachekit-macros-v0.6.1) (2026-08-05) diff --git a/crates/cachekit-macros/Cargo.toml b/crates/cachekit-macros/Cargo.toml index dd762a3..bed0b01 100644 --- a/crates/cachekit-macros/Cargo.toml +++ b/crates/cachekit-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cachekit-macros" -version = "0.6.1" +version = "0.7.0" edition.workspace = true rust-version.workspace = true license.workspace = true diff --git a/crates/cachekit/CHANGELOG.md b/crates/cachekit/CHANGELOG.md index 7b282a5..0f411ab 100644 --- a/crates/cachekit/CHANGELOG.md +++ b/crates/cachekit/CHANGELOG.md @@ -1,5 +1,58 @@ # Changelog +## [0.7.0](https://github.com/cachekit-io/cachekit-rs/compare/cachekit-rs-v0.6.1...cachekit-rs-v0.7.0) (2026-08-07) + + +### ⚠ BREAKING CHANGES + +* the public module cachekit::key (and cachekit::key::generate_cache_key) is removed. It was never protocol-conformant and had no supported use. For cross-SDK, spec-conformant keys use the interop/v1 keygen (interop_key(), arriving with cachekit-rs#33 / LAB-246). The #[cachekit] macro's derived keys are unchanged. + +### Features + +* #[cachekit] mints interop/v1 keys — retire legacy non-conformant keygen (LAB-424) ([#35](https://github.com/cachekit-io/cachekit-rs/issues/35)) ([ff1d490](https://github.com/cachekit-io/cachekit-rs/commit/ff1d4902da40c9a99dae8e8e8179a6b83f4771c3)) +* **backend:** add Memcached and File backends (LAB-429) ([#44](https://github.com/cachekit-io/cachekit-rs/issues/44)) ([3afe8e7](https://github.com/cachekit-io/cachekit-rs/commit/3afe8e7c0138f770eb66f2a9975d70aa5b953f01)) +* **backend:** Redis lock + Workers lock/TTL capability parity (LAB-426) ([#37](https://github.com/cachekit-io/cachekit-rs/issues/37)) ([f6cf7b7](https://github.com/cachekit-io/cachekit-rs/commit/f6cf7b7f6c00d24afc9e4d5978639595f08c426b)) +* CachekitIO backend full parity — session, metrics, SSRF, errors, locking, TTL ([88f1344](https://github.com/cachekit-io/cachekit-rs/commit/88f1344f119f5e344f39c4ebdb30c7e21b17b427)) +* CachekitIO backend full parity (session, metrics, SSRF, locking, TTL) ([b8bc4bb](https://github.com/cachekit-io/cachekit-rs/commit/b8bc4bb4e76c5d49aa77fc34fb2723aee4eb2354)) +* implement #[cachekit] proc-macro and Workers backend ([7ae2f05](https://github.com/cachekit-io/cachekit-rs/commit/7ae2f05b20582b72008ba900853edd173573d72a)) +* implement Backend and TtlInspectable traits with wasm32 support ([fa8e612](https://github.com/cachekit-io/cachekit-rs/commit/fa8e612b10bfda1119515a295d2c1fb309a80584)) +* implement Blake2b-256 cache key generation ([0bb1df0](https://github.com/cachekit-io/cachekit-rs/commit/0bb1df0f96013b6deeb91646c060cd060e255d3b)) +* implement CacheKit client with L1 cache and builder pattern ([5fb63e7](https://github.com/cachekit-io/cachekit-rs/commit/5fb63e7fb9fd71cb359e1a70f944b6f520b23a95)) +* implement CachekitConfig with builder and env parsing ([8caad1d](https://github.com/cachekit-io/cachekit-rs/commit/8caad1d70be4067f47d1e2a939cdf897799ce2ab)) +* implement CachekitIO HTTP backend for native targets ([556d935](https://github.com/cachekit-io/cachekit-rs/commit/556d93543e4764bd10d37ce09dc1bacb3f55067e)) +* implement error types with HTTP status mapping ([219e737](https://github.com/cachekit-io/cachekit-rs/commit/219e7379af932bbc629ed3d14141c2f09cffcef7)) +* implement L1 in-memory cache with per-entry TTL via moka Expiry ([c458f6c](https://github.com/cachekit-io/cachekit-rs/commit/c458f6c21a56379fd22b6191319c5ef777ee2641)) +* implement MessagePack serializer ([e97cd82](https://github.com/cachekit-io/cachekit-rs/commit/e97cd82f68d4072efbe3054804599d0bb5b69106)) +* implement Redis backend with TtlInspectable support ([4777e3a](https://github.com/cachekit-io/cachekit-rs/commit/4777e3a68f74ae94c2a932991327657d8b654dae)) +* implement zero-knowledge encryption layer with AAD v0x03 ([3ced335](https://github.com/cachekit-io/cachekit-rs/commit/3ced335e7bdd60866d97e42acb736afda67ae1bc)) +* intent-based cache API ([#19](https://github.com/cachekit-io/cachekit-rs/issues/19)) ([e86172b](https://github.com/cachekit-io/cachekit-rs/commit/e86172b9440cb11105856bf13563a5d4d1425a47)) +* interop mode (interop/v1) — first in-SDK keygen + Rust vector verification [LAB-246] ([#33](https://github.com/cachekit-io/cachekit-rs/issues/33)) ([188c170](https://github.com/cachekit-io/cachekit-rs/commit/188c1709e3bf0e7e741ffa9a6ee357f6ee7d1487)) +* **l1:** LAB-728 stale-while-revalidate — serve stale + single-flight background refresh ([#47](https://github.com/cachekit-io/cachekit-rs/issues/47)) ([068b84a](https://github.com/cachekit-io/cachekit-rs/commit/068b84ac407cefa20c13a706798faf5354ade5d8)) +* **reliability:** retry, circuit breaker, graceful degradation, single-flight (LAB-518) ([#43](https://github.com/cachekit-io/cachekit-rs/issues/43)) ([e9b9a1e](https://github.com/cachekit-io/cachekit-rs/commit/e9b9a1e7ddf42225a81bc5247ad90e011a690937)) +* unsync feature flag for ?Send contexts ([#16](https://github.com/cachekit-io/cachekit-rs/issues/16)) ([c52c3f2](https://github.com/cachekit-io/cachekit-rs/commit/c52c3f22317b589d9ee41d955868977ed3d0a27a)) + + +### Bug Fixes + +* **l1:** guard LAB-728 SWR refresh commits ([#48](https://github.com/cachekit-io/cachekit-rs/issues/48)) ([e31109b](https://github.com/cachekit-io/cachekit-rs/commit/e31109bfb09c31970d940819a088c1a975ea4f45)) +* **reliability:** clamp max_concurrent to Semaphore::MAX_PERMITS; add ReliabilityConfig::disabled() (LAB-729) ([#50](https://github.com/cachekit-io/cachekit-rs/issues/50)) ([d851797](https://github.com/cachekit-io/cachekit-rs/commit/d85179744dc284dcf227ea2e256ef6ed9c15ee73)) +* resolve critical issues from expert panel review ([41d2189](https://github.com/cachekit-io/cachekit-rs/commit/41d218964468b5833f273e8f84a9e9d479672584)) +* serialize config env var tests to prevent race condition ([79a1359](https://github.com/cachekit-io/cachekit-rs/commit/79a135978e717b181d37c464a2c0445f0d0b447e)) +* use snake_case wire names for lock acquire request/response ([#34](https://github.com/cachekit-io/cachekit-rs/issues/34)) ([40b7277](https://github.com/cachekit-io/cachekit-rs/commit/40b7277e75b5019ad27206323f97135db14dc8b9)) +* wasm32-safe session clock + wasm32 runtime CI tests (LAB-1079) ([#60](https://github.com/cachekit-io/cachekit-rs/issues/60)) ([1394a37](https://github.com/cachekit-io/cachekit-rs/commit/1394a37e44a9df3c6d22ea7348458232e491dbe7)) + + +### Security + +* send lock_id via X-CacheKit-Lock-Id header, not query string ([#24](https://github.com/cachekit-io/cachekit-rs/issues/24)) ([#29](https://github.com/cachekit-io/cachekit-rs/issues/29)) ([f381e41](https://github.com/cachekit-io/cachekit-rs/commit/f381e41662c2f9d131fd2cb40c9a1790132c51be)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * cachekit-macros bumped from 0.6.1 to 0.7.0 + ## [0.6.1](https://github.com/cachekit-io/cachekit-rs/compare/cachekit-rs-v0.6.0...cachekit-rs-v0.6.1) (2026-08-05) diff --git a/crates/cachekit/Cargo.toml b/crates/cachekit/Cargo.toml index f4279b6..e5c7b4a 100644 --- a/crates/cachekit/Cargo.toml +++ b/crates/cachekit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cachekit-rs" -version = "0.6.1" +version = "0.7.0" edition.workspace = true rust-version.workspace = true license.workspace = true @@ -87,7 +87,7 @@ js-sys = { version = "0.3", optional = true } getrandom = { version = "0.2", optional = true, features = ["js"] } # Optional: proc-macro decorator -cachekit-macros = { version = "0.6.1", path = "../cachekit-macros", optional = true } +cachekit-macros = { version = "0.7.0", path = "../cachekit-macros", optional = true } # Optional (file backend, unix only): libc for the O_NOFOLLOW/ELOOP constants # (std has no portable spelling); rustix for safe flock/geteuid wrappers —