[][src]Crate cached_path

The idea behind cached-path is to provide a unified simple async interface for accessing both local and remote files. This can be used behind other APIs that need to access files agnostic to where they are located.

Usage

For remote resources cached-path uses the ETAG to know when to update the cache. The path returned is the local path to the latest cached version:

use cached_path::cached_path;

let path = cached_path("https://github.com/epwalsh/rust-cached-path/blob/master/README.md").await?;
assert!(path.is_file());
# From the command line:
$ cached-path https://github.com/epwalsh/rust-cached-path/blob/master/README.md
/tmp/cache/055968a99316f3a42e7bcff61d3f590227dd7b03d17e09c41282def7c622ba0f.efa33e7f611ef2d163fea874ce614bb6fa5ab2a9d39d5047425e39ebe59fe782

For local files, the path returned is just the original path supplied:

use cached_path::cached_path;

let path = cached_path("README.md").await?;
assert_eq!(path.to_str().unwrap(), "README.md");
# From the command line:
$ cached-path https://github.com/epwalsh/rust-cached-path/blob/master/README.md
README.md

It's easy to customize the configuration when you need more control over the cache location or the HTTP client used to download files:

use cached_path::Cache;

let cache = Cache::builder()
    .root(std::env::temp_dir().join("my-cache/"))
    .connect_timeout(std::time::Duration::from_secs(3))
    .build()
    .await?;
let path = cache.cached_path("README.md").await?;
# From the command line:
$ cached-path --root /tmp/my-cache/ --connect-timeout 3 README.md
README.md

Structs

Cache

When you need control over cache location or the HTTP client used to download resources, you can create a Cache instance and then use the instance method cached_path.

CacheBuilder

Builder to facilitate creating Cache objects.

DEFAULT_CACHE_ROOT

The default cache directory. This can be set through the environment variable RUST_CACHED_PATH_ROOT. Otherwise it will be set to a subdirectory named 'cache' of the default system temp directory.

Error

Any error that can occur during caching.

Meta

Holds information about a cached resource.

Enums

ErrorKind

Error kinds that can occur during caching.

Functions

cached_path

Try downloading and caching a static HTTP resource. If successful, the return value is the local path to the cached resource. This function will always check the ETAG of the resource to ensure the latest version is cached.