| Crates.io | grouse |
| lib.rs | grouse |
| version | 0.3.1 |
| created_at | 2025-07-07 16:50:38.794208+00 |
| updated_at | 2025-10-25 18:20:02.775976+00 |
| description | A simple asset bundler for Rust. |
| homepage | |
| repository | https://github.com/callum-hopkins-dev/grouse |
| max_upload_size | |
| id | 1741555 |
| size | 16,579 |
grouse is a very simple asset bundler intended for baking static
files directly into your Rust binaries. In short, grouse will generate a
unit struct that implements an fn to retreive all of the files within a
particular [Manifest], and one to lookup a file by it's sha256 digest.
To start using grouse, you'll first need to add our package to your
Cargo.toml manifest:
cargo add grouse
Then you can bundle a directory into your Rust executable.
// Thanks to recently stablized proc-macro features, the include
// path is relative to the current file directory, like how the
// builtin [`core::include_bytes!`] macro works.
#[grouse::manifest("../src")]
struct Manifest;
fn main() {
// Iterate through all of the files in the manifest.
for file in Manifest::files() {
eprintln!("{} => {}", file.path(), file.digest());
}
// We can also get the digest of a particular file directly.
let x = grouse::file!("../src/lib.rs").digest();
// Which can then be used to lookup it's corresponding file in the
// manifest.
let lib = Manifest::get(x).unwrap();
}