Packer
NOTE This project is based on the original rust-embed. I made enough modifications to it that I decided to just publish it in a separate repository.
NOTE This project requires a Rust 2018 (Rust 1.31+) compiler.
packer is a library that helps you pack static files into binaries using macro magic. Here's how it's done:
Step 1: Include
Include the crate in your Cargo.toml:
[]
= "0.2"
and in your lib.rs or main.rs:
extern crate packer;
Step 2: Derive
Start deriving Packer from your structs. You need to provide a folder attribute to indicate the folder from which it should be pulling. Paths are relative to the crate root.
;
Step 3: Use it!
You can now access any file using the get function:
/* Option<&'static [u8]> */
let data = get;
You may also choose to list all the files that have been stored.
/* impl Iterator<Item = &'static str> */
let files = list;
When you build in dev mode, it will fetch off your filesystem as usual, but when you build with --release, it will pack the assets into your binary!
Future Work
- Possibly add options for excluding files?
Contact
Author: Michael Zhang
License: MIT