diff --git a/README.md b/README.md index a6afac5..ab77049 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ axum = "0.8" Use the `embed_assets!` macro to create a `static_router()` function in scope which will include your static files, embedding them into your binary: -```rust +```rust,ignore use static_serve::embed_assets; embed_assets!("assets", compress = true, ignore_paths = ["temp.txt","temp"], cache_busted_paths = ["immutable"]); @@ -60,8 +60,9 @@ This will: Use the `embed_asset!` macro to return a function you can use as a GET handler, which will include your static file, embedded into your binary: -```rust -use static_serve::embed_assets; +```rust,ignore +use axum::Router; +use static_serve::embed_asset; let router: Router<()> = Router::new(); let handler = embed_asset!("assets/my_file.png", compress = true, cache_bust = true); @@ -96,7 +97,7 @@ The crate automatically handles: ## Example -```rust +```rust,ignore use axum::{Router, Server}; use static_serve::{embed_assets, embed_asset}; diff --git a/static-serve/README.md b/static-serve/README.md deleted file mode 100644 index 8879662..0000000 --- a/static-serve/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Static Serve - -A Rust library for compressing and embedding static assets in a web server using [Axum](https://github.com/tokio-rs/axum). This crate provides efficient asset embedding with optional compression (`gzip` and `zstd`) and conditional requests support. - -## Features - -- **Embed static assets** at compile-time for efficient serving -- **Automatic compression** with `gzip` and `zstd` -- **ETag support** for conditional requests and caching -- **Seamless Axum integration** with request extraction for encoding and caching headers - -## Installation - -Add the following to your `Cargo.toml`: - -```toml -[dependencies] -static-serve = "0.2" -axum = "0.8" -``` - -## Usage - -### Embedding Static Assets - -Use the `embed_assets!` macro to create a `static_router()` function in scope which will include your static files, embedding them into your binary: - -```rust,ignore -use static_serve::embed_assets; - -embed_assets!("assets", compress = true); -let router = static_router(); -``` - -This will: - -- Include all files from the `assets` directory -- Compress them using `gzip` and `zstd` (if beneficial) -- Generate a `static_router()` function to serve these assets - -### Conditional Requests & Caching - -The crate automatically handles: -- `Accept-Encoding` header to serve compressed versions if available -- `If-None-Match` header for ETag validation, returning `304 Not Modified` if unchanged - -### Required parameter - -- `path_to_dir` - a valid `&str` string literal of the path to the static files to be included - -### Optional parameters - -- `compress = false` - compress static files with zstd and gzip, true or false (defaults to false) -- `ignore_dirs = [my_ignore_dir, other_ignore_dir]` - a bracketed list of `&str`s of the paths/subdirectories inside the target directory, which should be ignored and not included. (If this parameter is missing, no subdirectories will be ignored) - -## Example - -```rust,ignore -use axum::{Router, Server}; -use static_serve::embed_assets; - -embed_assets!("public", compress = true); - -#[tokio::main] -async fn main() { - let router = static_router(); - Server::bind(&"0.0.0.0:3000".parse().unwrap()) - .serve(router.into_make_service()) - .await - .unwrap(); -} -``` - -## License - -Licensed under either of -- Apache License, Version 2.0, (LICENSE-APACHE or [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)) -- MIT license (LICENSE-MIT or [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT)) - -at your option. - -### Contribution - -Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/static-serve/README.md b/static-serve/README.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/static-serve/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file