reqwest
The http-cache-reqwest
crate provides a Middleware
implementation for the reqwest
HTTP client. It accomplishes this by utilizing reqwest_middleware
.
Getting Started
cargo add http-cache-reqwest
Features
manager-cacache
: (default) Enables theCACacheManager
backend cache manager.manager-moka
: Enables theMokaManager
backend cache manager.
Usage
In the following example we will construct our client using the builder provided by reqwest_middleware
with our cache struct from http-cache-reqwest
. This example will use the default mode, default cacache manager, and default http cache options.
After constructing our client, we will make a request to the MDN Caching Docs which should result in an object stored in cache on disk.
use reqwest::Client; use reqwest_middleware::{ClientBuilder, Result}; use http_cache_reqwest::{Cache, CacheMode, CACacheManager, HttpCache, HttpCacheOptions}; #[tokio::main] async fn main() -> Result<()> { let client = ClientBuilder::new(Client::new()) .with(Cache(HttpCache { mode: CacheMode::Default, manager: CACacheManager::default(), options: HttpCacheOptions::default(), })) .build(); client .get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching") .send() .await?; Ok(()) }