grouse-macros

Crates.iogrouse-macros
lib.rsgrouse-macros
version0.3.1
created_at2025-07-07 16:50:29.037607+00
updated_at2025-10-25 18:19:52.490586+00
descriptionA simple asset bundler for Rust.
homepage
repositoryhttps://github.com/callum-hopkins-dev/grouse
max_upload_size
id1741554
size22,437
Callum Hopkins (callum-hopkins-dev)

documentation

https://docs.rs/grouse

README

grouse

A simple asset bundler for Rust.

GitHub Actions Workflow Status Crates.io Version docs.rs Crates.io Total Downloads GitHub License

about

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.

getting started

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();
}
Commit count: 19

cargo fmt