# Changelog ## [0.20.0] - 2024-11-12 ### Added - `cache_status_headers` field to `HttpCacheOptions` struct. This field is a boolean that determines if the cache status headers should be added to the response. ## [0.19.0] - 2024-04-10 ### Changed - Updated the minimum versions of the following dependencies: - cacache [13.0.0] - http [1.1.0] - http-cache-semantics [2.1.0] ## [0.18.0] - 2024-01-15 ### Added - `overridden_cache_mode` method to `Middleware` trait. This method allows for overriding any cache mode set in the configuration, including `cache_mode_fn`. - Derive `Default` for the `CacheMode` enum with the mode `Default` selected to be used. ## [0.17.0] - 2023-11-01 ### Added - `cache_mode_fn` field to `HttpCacheOptions` struct. 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 to `HttpCacheOptions` struct. This is a closure that takes `http::request::Parts`, `Option`, the default cache key (`&str`) and returns `Vec` of keys to bust the cache for. ### Changed - Updated the minimum versions of the following dependencies: - cacache [12.0.0] ## [0.16.0] - 2023-09-28 ### Added - `can_cache_request` method to `HttpCache` struct. This can be used by client implementations to determine if the request should be cached. - `run_no_cache` method to `HttpCache` struct. This should be run by client implementations if the request is determined to not be cached. ### Changed - MSRV is now 1.67.1 ## [0.15.0] - 2023-09-26 ### Added - `IgnoreRules` variant to the `CacheMode` enum. This mode will ignore the HTTP headers and always store a response given it was a 200 response. It will also ignore the staleness when retrieving a response from the cache, so expiration of the cached response will need to be handled manually. If there was no cached response it will create a normal request, and will update the cache with the response. ### Changed - Updated the minimum versions of the following dependencies: - moka [0.12.0] ## [0.14.0] - 2023-07-28 ### Added - `cacache-async-std` feature, which enables `async_std` runtime support in the `cacache` backend manager. This feature is enabled by default. - `cacache-tokio` feature, which enables `tokio` runtime support in the `cacache` backend manager. This feature is disabled by default. ### Changed - Updated the minimum versions of the following dependencies: - async-std [1.12.0] - async-trait [0.1.72] - serde [1.0.178] - tokio [1.29.1] ## [0.13.0] - 2023-07-19 ### Added - `CacheKey` type, a closure that takes [`http::request::Parts`] and returns a [`String`]. - `HttpCacheOptions` struct that contains the cache key (`CacheKey`) and the cache options (`CacheOptions`). ### Changed - `CacheManager` trait `get`, `put`, and `delete` methods now require a `cache_key` argument rather than `method` and `url` arguments. This allows for custom keys to be specified. - Both the `CACacheManager` trait and `MokaManager` implementation have been updated to reflect the above change. - Updated the minimum versions of the following dependencies: - async-trait [0.1.71] - moka [0.11.2] - serde [1.0.171] ## [0.12.0] - 2023-06-05 ### Changed - MSRV is now 1.66.1 - `CACacheManager` field `path` has changed to `std::path::PathBuf` - Updated the minimum versions of the following dependencies: - cacache [11.6.0] - moka [0.11.1] - serde [1.0.163] - url [2.4.0] ## [0.11.0] - 2023-03-29 ### Added - `BoxError` type alias for `Box`. - `BadVersion` error type for unknown http versions. - `BadHeader` error type for bad http header values. ### Removed - `CacheError` enum. - The following dependencies: - anyhow - thiserror - miette ### Changed - `CacheError` enum has been replaced in function by `Box`. - `Result` typedef is now `std::result::Result`. - `Error` type for the TryFrom implentation for the `HttpVersion` struct is now `BoxError` containing a `BadVersion` error. - `CacheManager` trait `put` method now returns `Result<(), BoxError>`. - Updated the minimum versions of the following dependencies: - async-trait [0.1.68] - cacache [11.4.0] - moka [0.10.1] - serde [1.0.159] ## [0.10.1] - 2023-03-08 ### Changed - Set conditional check for `CacheError::Bincode` to `cfg(feature = "bincode")` ## [0.10.0] - 2023-03-08 ### Changed - MSRV is now 1.63.0 - Updated the minimum versions of the following dependencies: - async-trait [0.1.66] - cacache [11.3.0] - serde [1.0.154] - thiserror [1.0.39] ## [0.9.2] - 2023-02-23 ### Changed - Updated the minimum versions of the following dependencies: - cacache [11.1.0] ## [0.9.1] - 2023-02-17 ### Changed - Updated the minimum versions of the following dependencies: - http [0.2.9] ## [0.9.0] - 2023-02-16 ### Changed - MSRV is now 1.62.1 - Updated the minimum versions of the following dependencies: - moka [0.10.0] ## [0.8.0] - 2023-02-07 ### Changed - MSRV is now 1.60.0 - Updated the minimum versions of the following dependencies: - anyhow [1.0.69] - async-trait [0.1.64] - cacache [11.0.0] - miette [5.5.0] - moka [0.9.7] - serde [1.0.152] - thiserror [1.0.38] ## [0.7.2] - 2022-11-16 - Added derive `Eq` to `HttpVersion` enum. ### Changed ## [0.7.1] - 2022-11-06 ### Changed - Updated the minimum versions of the following dependencies: - anyhow [1.0.66] - async-trait [0.1.58] - miette [5.4.1] - moka [0.9.6] - serde [1.0.147] - thiserror [1.0.37] - url [2.3.1] ## [0.7.0] - 2022-06-17 ### Changed - The `CacheManager` trait is now implemented directly against the `MokaManager` struct rather than `Arc`. The Arc is now internal to the `MokaManager` struct as part of the `cache` field. - Updated the minimum versions of the following dependencies: - async-trait [0.1.56] - http [0.2.8] - miette [4.7.1] - moka [0.8.5] - serde [1.0.137] - thiserror [1.0.31] ## [0.6.5] - 2022-04-30 ### Changed - Updated the minimum versions of the following dependencies: - http [0.2.7] ## [0.6.4] - 2022-04-26 ### Added - This changelog to keep a record of notable changes to the project.