Crate axum_embed
source ·Expand description
axum_embed
is a library that provides a service for serving embedded files using the axum
web framework.
This library uses the rust_embed
crate to embedded files into the binary at compile time, and the axum
crate to serve these files over HTTP.
Features
- Serve embedded files over HTTP
- Customizable 404, fallback, and index files
- Response compressed files if the client supports it and the compressed file exists
- Response 304 if the client has the same file (based on ETag)
- Redirect to the directory if the client requests a directory without a trailing slash
Example
#[derive(RustEmbed, Clone)]
#[folder = "examples/assets/"]
struct Assets;
let listener = TcpListener::bind("127.0.0.1:8080").await?;
let serve_assets = ServeEmbed::<Assets>::new();
let app = axum::Router::new().nest_service("/", serve_assets);
axum::serve(listener, app).await?;
Usage
Please see the examples directory for a working example.
Serve compressed file
The axum_embed
library has the capability to serve compressed files, given that the client supports it and the compressed file is available.
The compression methods supported include br
(Brotli), gzip
, and deflate
.
If the client supports multiple compression methods, axum_embed
will select the first one listed in the Accept-Encoding
header. Please note that the weight of encoding is not considered in this selection.
In the absence of client support for any compression methods, axum_embed
will serve the file in its uncompressed form.
If a file with the extension .br
(for Brotli), .gz
(for GZip), or .zz
(for Deflate) is available, axum_embed
will serve the file in its compressed form.
An uncompressed file is must be available for the compressed file to be served.
Structs
ServeEmbed
is a struct that represents a service for serving embedded files.ServeFuture
is a future that represents a service for serving embedded files. This future is created byServeEmbed
. This future is not intended to be used directly.
Enums
FallbackBehavior
is an enumeration representing different behaviors that a server might take when a requested resource is not found.