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
use RustEmbed;
use ServeEmbed;
use TcpListener;
;
async
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 ction.
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.