A cookie manager middleware built on top of [tower].
With [axum]:
```rust,norun use axum::{routing::get, Router}; use std::net::SocketAddr; use towercookies::{Cookie, CookieManagerLayer, Cookies};
async fn main() { let app = Router::new() .route("/", get(handler)) .layer(CookieManagerLayer::new());
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
async fn handler(cookies: Cookies) -> &'static str { cookies.add(Cookie::new("helloworld", "helloworld"));
"Check your cookies."
} ```
A complete CRUD cookie example in examples/counter.rs
This crate uses #![forbid(unsafe_code)]
to ensure everything is implemented in 100% safe Rust.
We appreciate all kinds of contributions, thank you!
Most of the readme is automatically copied from the crate documentation by cargo-sync-readme. This way the readme is always in sync with the docs and examples are tested.
So if you find a part of the readme you'd like to change between <!-- cargo-sync-readme start -->
and <!-- cargo-sync-readme end -->
markers, don't edit README.md
directly, but rather change
the documentation on top of src/lib.rs
and then synchronize the readme with:
bash
cargo sync-readme
(make sure the cargo command is installed):
bash
cargo install cargo-sync-readme
If you have [rusty-hook] installed the changes will apply automatically on commit.
This project is licensed under the MIT license.