Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/06chaynes/http-cache
A caching middleware that follows HTTP caching rules
https://github.com/06chaynes/http-cache
Last synced: 3 months ago
JSON representation
A caching middleware that follows HTTP caching rules
- Host: GitHub
- URL: https://github.com/06chaynes/http-cache
- Owner: 06chaynes
- License: apache-2.0
- Created: 2022-01-07T00:19:03.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-20T14:50:21.000Z (6 months ago)
- Last Synced: 2024-06-22T15:41:49.474Z (5 months ago)
- Language: Rust
- Homepage: https://http-cache.rs/
- Size: 1.29 MB
- Stars: 65
- Watchers: 4
- Forks: 13
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-rust - 06chaynes/http-cache - cache](https://crates.io/crates/http-cache)] - A caching middleware that follows HTTP caching rules [![build badge](https://github.com/06chaynes/http-cache/workflows/http-cache/badge.svg)](https://github.com/06chaynes/http-cache/actions/workflows/http-cache.yml) (Libraries / Caching)
- awesome-rust - 06chaynes/http-cache - cache](https://crates.io/crates/http-cache)] - A caching middleware that follows HTTP caching rules [![build badge](https://github.com/06chaynes/http-cache/workflows/http-cache/badge.svg)](https://github.com/06chaynes/http-cache/actions/workflows/http-cache.yml) (Libraries / Caching)
- fucking-awesome-rust - 06chaynes/http-cache - cache](crates.io/crates/http-cache)] - A caching middleware that follows HTTP caching rules [![build badge](https://github.com/06chaynes/http-cache/workflows/http-cache/badge.svg)](https://github.com/06chaynes/http-cache/actions/workflows/http-cache.yml) (Libraries / Caching)
- fucking-awesome-rust - 06chaynes/http-cache - cache](crates.io/crates/http-cache)] - A caching middleware that follows HTTP caching rules [![build badge](https://github.com/06chaynes/http-cache/workflows/http-cache/badge.svg)](https://github.com/06chaynes/http-cache/actions/workflows/http-cache.yml) (Libraries / Caching)
README
# http-cache
[![CI](https://img.shields.io/github/actions/workflow/status/06chaynes/http-cache/http-cache.yml?label=CI&style=for-the-badge)](https://github.com/06chaynes/http-cache/actions/workflows/http-cache.yml)
[![Crates.io](https://img.shields.io/crates/v/http-cache?style=for-the-badge)](https://crates.io/crates/http-cache)
[![Docs.rs](https://img.shields.io/docsrs/http-cache?style=for-the-badge)](https://docs.rs/http-cache)
[![Codecov](https://img.shields.io/codecov/c/github/06chaynes/http-cache?style=for-the-badge)](https://app.codecov.io/gh/06chaynes/http-cache)
![Crates.io](https://img.shields.io/crates/l/http-cache?style=for-the-badge)A caching middleware that follows HTTP caching rules,
thanks to [http-cache-semantics](https://github.com/kornelski/rusty-http-cache-semantics).
By default, it uses [cacache](https://github.com/zkat/cacache-rs) as the backend cache manager.## How do I use this?
Likely you won't! At least not directly. Unless you are looking to implement a custom backend cache manager
or client middleware you'll probably want to pull in one of the existing client implementations instead.
See the [Provided Client Implementations](#provided-client-implementations) section below.## Minimum Supported Rust Version (MSRV)
1.67.1
## Install
With [cargo add](https://github.com/killercup/cargo-edit#Installation) installed :
```sh
cargo add http-cache
```## Features
The following features are available. By default `manager-cacache` and `cacache-async-std` are enabled.
- `manager-cacache` (default): enable [cacache](https://github.com/zkat/cacache-rs), a high-performance disk cache, backend manager.
- `cacache-async-std` (default): enable [async-std](https://github.com/async-rs/async-std) runtime support for cacache.
- `cacache-tokio` (disabled): enable [tokio](https://github.com/tokio-rs/tokio) runtime support for cacache.
- `manager-moka` (disabled): enable [moka](https://github.com/moka-rs/moka), a high-performance in-memory cache, backend manager.
- `with-http-types` (disabled): enable [http-types](https://github.com/http-rs/http-types) type conversion support## Documentation
- [API Docs](https://docs.rs/http-cache)
## Provided Client Implementations
- **Surf**: See [README](https://github.com/06chaynes/http-cache/blob/main/http-cache-surf/README.md) for more details
- **Reqwest**: See [README](https://github.com/06chaynes/http-cache/blob/main/http-cache-reqwest/README.md) for more details## Additional Manager Implementations
- **quick-cache**: See [README](https://github.com/06chaynes/http-cache/blob/main/http-cache-quickcache/README.md) for more details
## License
Licensed under either of
- Apache License, Version 2.0
([LICENSE-APACHE](https://github.com/06chaynes/http-cache/blob/main/LICENSE-APACHE) or )
- MIT license
([LICENSE-MIT](https://github.com/06chaynes/http-cache/blob/main/LICENSE-MIT) or )at your option.
## Contribution
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.