ngdp-cache
Generic caching functionality for NGDP (Next Generation Distribution Pipeline) components.
Features
This crate provides specialized cache implementations for different NGDP components:
- Generic Cache: For arbitrary key-value storage
- TACT Cache: For TACT protocol data (configs, indices, data files)
- CDN Cache: For CDN content (archives, loose files)
- Ribbit Cache: For Ribbit protocol responses with TTL support
- Cached Ribbit Client: Wrapper around RibbitClient for transparent caching
- Cached TACT Client: Wrapper around TactClient for transparent caching of metadata
- Cached CDN Client: Wrapper around CdnClient for transparent caching of CDN content
Usage
Add this to your Cargo.toml:
[]
= "0.3"
Example
use ;
use ;
async
Cache Location
The cache is stored in the platform-specific cache directory:
- Linux:
~/.cache/ngdp/ - macOS:
~/Library/Caches/ngdp/ - Windows:
C:\Users\{user}\AppData\Local\ngdp\cache\
Each cache type has its own subdirectory:
generic/- Generic cache datatact/- TACT protocol metadata responses (versions, CDN configs, BGDL)cdn/- CDN content (config/, data/, patch/, indices)ribbit/- Ribbit responses organized by region/product/endpointribbit/cached/- Cached Ribbit client responses using Blizzard MIME naming
📄 License
This project is dual-licensed under either:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
🫶 Acknowledgments
This crate is part of the cascette-rs project, providing tools for World of Warcraft
emulation development.