A caching middleware that follows HTTP caching rules, thanks to http-cache-semantics. By default it uses cacache as the backend cache manager.
With cargo add installed :
sh
cargo add http-cache
client-surf
)```rust use http_cache::{Cache, CacheMode, CACacheManager};
async fn main() -> surf::Result<()> { let req = surf::get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching"); surf::client() .with(Cache { mode: CacheMode::Default, cache_manager: CACacheManager::default(), }) .send(req) .await?; Ok(()) } ```
client-reqwest
)```rust use reqwest::Client; use reqwestmiddleware::{ClientBuilder, Result}; use httpcache::{Cache, CacheMode, CACacheManager};
async fn main() -> Result<()> { let client = ClientBuilder::new(Client::new()) .with(Cache { mode: CacheMode::Default, cache_manager: CACacheManager::default(), }) .build(); client .get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching") .send() .await?; Ok(()) } ```
The following features are available. By default manager-cacache
is enabled.
manager-cacache
(default): use cacache, a high-performance disk cache, for the manager backend.client-surf
(disabled): enables surf client support.client-reqwest
(disabled): enables reqwest client support.fancy-errors
(disabled): enables miette fancy errors.Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.