A library that aids in static asset cache busting with SHA-256 hashes
Find a file
2021-05-12 18:20:26 +05:30
.github/workflows hash and copy 2021-04-08 19:38:26 +05:30
actix-example documentation 2021-05-12 18:20:26 +05:30
dist hash and copy 2021-04-08 19:38:26 +05:30
src documentation 2021-05-12 18:20:26 +05:30
.gitignore documentation 2021-05-12 18:20:26 +05:30
Cargo.lock update readme 2021-04-30 20:41:45 +05:30
Cargo.toml write filemap to file 2021-04-30 20:37:56 +05:30
CHANGELOG.md path without prefix bug fix 2021-04-30 21:27:56 +05:30
LICENSE-APACHE hash and copy 2021-04-08 19:38:26 +05:30
LICENSE-MIT hash and copy 2021-04-08 19:38:26 +05:30
README.md documentation 2021-05-12 18:20:26 +05:30

Cache Buster

cache-buster - A library that aids in static file cache busting with SHA-256 hashes

Documentation CI (Linux) dependency status
codecov

What is cache busting?

To optimise network load time, browsers cache static files. Caching greatly improves performance but how do you inform browsers to invalidate cache when your files have changed?

Cache busting is a simple but effective solution for this issue. There are several ways to achieve this but the way this library does this is by changing file names to include the hash of the files' contents.

So if you have bundle.js, it will become bundle.<long-sha256-hash>.js. This lets you set a super long cache age as, because of the file names changing, the path to the filename, too, will change. So as far as the browser is concerned, you are trying to load a file that it doesn't have. Pretty neat, isn't it?

Features

  • SHA-256 based name generation during compile-time
  • Processes files based on provided MIME filters
  • Exposes modified names to program during runtime
  • Route prefixes(optional)

Usage:

Add this to your Cargo.toml:

cache-buster = { version = "0.2", git = "https://github.com/realaravinth/cache-buster" }

Examples: