# Changelog
## [1.0.0-alpha.6] - 2026-04-17
### Changed
- Updated `http-cache` dependency to 1.0.0-alpha.6
- Removed `async-trait` from http-cache core `Middleware` trait (still required by `reqwest-middleware`)
- Removed `httpdate` dependency
- Streaming middleware now delegates to core `HttpStreamingCache::run` orchestrator
- Response extensions preserved through streaming body conversion
### Fixed
- Headers no longer duplicated on revalidation requests when using custom headers
- RFC 7234 s4.4: cache invalidation moved to after successful response, gated on unsafe methods
- Cache status headers now gated on `cache_status_headers` option in non-cacheable path
## [1.0.0-alpha.5] - 2026-02-17
### Changed
- Updated `http-cache` dependency to 1.0.0-alpha.5
- Updated `http-cache-semantics` to 3.0.0
- MSRV bumped from 1.85.0 to 1.88.0
- Exposed `url-standard`, `http-headers-compat`, `manager-cacache-bincode`, and `manager-moka-bincode` feature flags
## [1.0.0-alpha.4] - 2026-01-19
### Added
- `manager-foyer` feature flag for `FoyerManager` support
- `url-ada` feature flag for using WHATWG-compliant ada-url for URL parsing
### Fixed
- `OnlyIfCached` mode now correctly returns 504 Gateway Timeout on cache miss in streaming middleware
## [1.0.0-alpha.3] - 2026-01-18
### Added
- Response metadata integration for storing data with cached responses
### Changed
- Updated `reqwest` to 0.13.1
- Updated `reqwest-middleware` to 0.5.0
- MSRV is now 1.85.0
### Fixed
- Add extensions to `ReqwestMiddleware::parts`
- Serialize all header values instead of just the first value per header name
- Preserve all header values sharing the same name
## [1.0.0-alpha.2] - 2025-08-24
### Added
- Support for cache-aware rate limiting through `rate_limiter` field in `HttpCacheOptions`
- New `rate-limiting` feature flag for optional rate limiting functionality
- Re-export of rate limiting types: `CacheAwareRateLimiter`, `DomainRateLimiter`, `DirectRateLimiter`, `Quota`
- Rate limiting integration for streaming cache operations via `StreamingCache` middleware
### Changed
- Consolidated error handling: removed separate error module and replaced with type alias `pub use http_cache::{BadRequest, HttpCacheError};`
- Simplified error architecture by removing duplicate error implementations
- Standardized error types to follow `{CrateName}Error` naming convention
### Fixed
- Request cloning failures for multipart forms and streaming bodies now fallback gracefully instead of throwing errors
- Cache middleware now bypasses caching for non-cloneable requests while still performing cache maintenance operations
## [1.0.0-alpha.1] - 2025-07-27
### Added
- Support for streaming cache architecture with new `streaming` features
- Integration with `HttpCacheStreamInterface` for composable streaming middleware
- New streaming examples: `reqwest_streaming.rs` and `streaming_memory_profile.rs`
- Enhanced error handling and conditional request support
### Changed
- Updated to use http-cache 1.0.0-alpha.1 with streaming support
- MSRV updated to 1.82.0
## [0.16.0] - 2025-06-25
### Added
- `remove_opts` field to `CACacheManager` struct. This field is an instance of `cacache::RemoveOpts` that allows for customization of the removal options when deleting items from the cache.
### Changed
- MSRV is now 1.82.0
- Updated the minimum versions of the following dependencies:
- http-cache [0.21.0]
## [0.15.1] - 2025-01-30
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.20.1]
- anyhow [1.0.95]
- async-trait [0.1.85]
- http [1.2.0]
- reqwest [0.12.12]
- serde [1.0.217]
- url [2.5.4]
## [0.15.0] - 2024-11-12
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.20.0]
- reqwest-middleware [0.4.0]
## [0.14.0] - 2024-04-10
### Changed
- Replaced `task-local-extensions::Extensions` with `http::Extensions`.
- Updated the minimum versions of the following dependencies:
- http-cache [0.19.0]
- http-cache-semantics [2.1.0]
- http [1.1.0]
- reqwest [0.12.3]
- reqwest-middleware [0.3.0]
## [0.13.0] - 2024-01-15
### Added
- Implemented `overridden_cache_mode` method from `Middleware` trait. This method allows for overriding any cache mode set in the configuration, including `cache_mode_fn`.
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.18.0]
## [0.12.0] - 2023-11-01
### Added
- The following fields to `HttpCacheOptions` struct:
- `cache_mode_fn` field. This is a closure that takes a `&http::request::Parts` and returns a `CacheMode` enum variant. This allows for the overriding of cache mode on a per-request basis.
- `cache_bust` field. This is a closure that takes `http::request::Parts`, `Option<CacheKey>`, the default cache key (`&str`) and returns `Vec<String>` of keys to bust the cache for.
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.17.0]
## [0.11.3] - 2023-09-28
### Changed
- MSRV is now 1.67.1
- Implemented check to determine if a request is cacheable before running, avoiding the core logic if not.
- Updated the minimum versions of the following dependencies:
- http-cache [0.16.0]
## [0.11.2] - 2023-09-26
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.15.0]
## [0.11.1] - 2023-07-28
### Changed
- Using new `cacache-tokio` feature in `http-cache` dependency
- Exporting `CacheManager` trait
- Updated the minimum versions of the following dependencies:
- http-cache [0.14.0]
- async-trait [0.1.72]
- serde [1.0.178]
## [0.11.0] - 2023-07-19
### Changed
- Implemented new `HttpCacheOptions` struct
- Updated the minimum versions of the following dependencies:
- http-cache [0.13.0]
- anyhow [1.0.72]
- async-trait [0.1.71]
- serde [1.0.171]
- tokio [1.29.1]
## [0.10.0] - 2022-06-05
### Changed
- MSRV is now 1.66.1
- Updated the minimum versions of the following dependencies:
- http-cache [0.12.0]
- anyhow [1.0.71]
- reqwest [0.11.18]
- reqwest-middleware [0.2.2]
- serde [1.0.163]
- tokio [1.28.2]
- url [2.4.0]
## [0.9.0] - 2022-03-29
### Added
- `BadRequest` error type for request parsing failure.
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.11.0]
- anyhow [1.0.70]
- async-trait [0.1.68]
- reqwest [0.11.16]
- reqwest-middleware [0.2.1]
- serde [1.0.159]
- task-local-extensions [0.1.4]
- tokio [1.27.0]
## [0.8.0] - 2023-03-08
### Changed
- MSRV is now 1.63.0
- Set `default-features = false` for `http-cache` dependency
- Updated the minimum versions of the following dependencies:
- http-cache [0.10.1]
- async-trait [0.1.66]
- serde [1.0.154]
- tokio [1.26.0]
## [0.7.2] - 2023-02-23
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.9.2]
## [0.7.1] - 2023-02-17
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.9.1]
- http [0.2.9]
## [0.7.0] - 2023-02-16
### Changed
- MSRV is now 1.62.1
- Updated the minimum versions of the following dependencies:
- http-cache [0.9.0]
## [0.6.0] - 2023-02-07
- MSRV is now 1.60.0
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.8.0]
- anyhow [1.0.69]
- async-trait [0.1.64]
- reqwest [0.11.14]
- serde [1.0.152]
- tokio [1.25.0]
## [0.5.2] - 2022-11-16
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.7.2]
- reqwest [0.11.13]
- reqwest-middleware [0.2.0]
## [0.5.1] - 2022-11-06
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.7.1]
- anyhow [1.0.66]
- async-trait [0.1.58]
- reqwest [0.11.12]
- serde [1.0.147]
- url [2.3.1]
- task-local-extensions [0.1.3]
- tokio [1.21.2]
## [0.5.0] - 2022-06-17
### Changed
- The `CacheManager` trait is now implemented directly against the `MokaManager` struct rather than `Arc<MokaManager>`. The Arc is now internal to the `MokaManager` struct as part of the `cache` field.
- Updated the minimum versions of the following dependencies:
- http-cache [0.7.0]
- async-trait [0.1.56]
- http [0.2.8]
- reqwest [0.11.11]
- serde [1.0.137]
- tokio [1.19.2]
## [0.4.5] - 2022-04-30
### Changed
- Updated the minimum versions of the following dependencies:
- http-cache [0.6.5]
- http [0.2.7]
- tokio [1.18.0]
## [0.4.4] - 2022-04-26
### Added
- This changelog to keep a record of notable changes to the project.