10 releases

0.3.1 Aug 24, 2025
0.3.0 Aug 20, 2025
0.2.5 Jun 12, 2025
0.2.4 Jul 9, 2024
0.0.1 Mar 18, 2021

#176 in Data structures

Download history 8000/week @ 2025-12-19 7360/week @ 2025-12-26 12555/week @ 2026-01-02 9439/week @ 2026-01-09 12154/week @ 2026-01-16 10046/week @ 2026-01-23 8709/week @ 2026-01-30 11658/week @ 2026-02-06 9987/week @ 2026-02-13 10899/week @ 2026-02-20 10611/week @ 2026-02-27 14491/week @ 2026-03-06 15755/week @ 2026-03-13 14512/week @ 2026-03-20 8141/week @ 2026-03-27 14049/week @ 2026-04-03

53,881 downloads per month
Used in 25 crates (20 directly)

Unlicense OR MIT

32KB
611 lines

static-files - the library to help automate static resource collection

Dual-licensed under MIT or the UNLICENSE.

Features

  • Embed static resources in executuble
  • Install dependencies with npm package manager
  • Run custom npm run commands (such as webpack)
  • Support for npm-like package managers (yarn)
  • Change detection support to reduce compilation time

Usage

Create folder with static resources in your project (for example static):

cd project_dir
mkdir static
echo "Hello, world" > static/hello

Add to Cargo.toml dependency to static-files:

[dependencies]
static-files = "0.3"

[build-dependencies]
static-files = "0.3"

Add build.rs with call to bundle resources:

use static_files::resource_dir;

fn main() -> std::io::Result<()> {
    resource_dir("./static").build()
}

Include generated code in main.rs:

include!(concat!(env!("OUT_DIR"), "/generated.rs"));

fn main() -> std::io::Result<()> {
    let generated = generate(); // <-- this function is defined in generated.rs
    // ...
    Ok(())
}

By default, 'static-files' collects all files in operation system defined order, but you can change it by activating 'sort' feature in Cargo.toml:

[dependencies]
static-files = { version = "0.3", features = ["sort"] }

[build-dependencies]
static-files = { version = "0.3", features = ["sort"] }

Dependencies

~290KB