#assets #directory #include

include_webdir

Embed a static web application bundle in your binary

1 unstable release

Uses new Rust 2024

0.1.0 Aug 12, 2025

#584 in HTTP server

Download history 110/week @ 2025-08-10 24/week @ 2025-08-17 4/week @ 2025-08-24

138 downloads per month
Used in orthanc_sdk

MIT license

5KB

Like include_dir, but specialized for serving a directory as a web application.

Differences from include_dir

  • Only files are included. Directories are excluded.
  • Paths must be valid UTF-8 without nul characters.
  • Path lookup is optimized (using litemap).
  • File metadata useful for HTTP caching are computed at build time.

HTTP Caching Headers

CWebFile fields provide values which can be used for HTTP cache-related response headers:

  • ETag is the base32-encoded rapidhash of the file contents.
  • Last-Modified is read from the filesystem metadata.
  • Cache-Control: immutable can be set if the path starts with assets/.

Immutable Assets

The assumption that files under assets/ should be immutable comes from the default settings of Vite. Most modern web apps use Vite as a bundler. Its default settings implement the "cache-busting" pattern, meaning that static resources will be written to a subpath of assets/ and a hash will be appended to file names before the file extension. This pattern makes it possible to cache entire static web applications on the client web browser.

Dependencies

~720KB
~14K SLoC