License Crates.io Docs.rs

tower-cookies

A cookie manager middleware built on top of [tower].

Example

With [axum]:

```rust,norun use axum::{routing::get, Router}; use std::net::SocketAddr; use towercookies::{Cookie, CookieManagerLayer, Cookies};

[tokio::main]

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

Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

Contributing

We appreciate all kinds of contributions, thank you!

Note on README

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.

License

This project is licensed under the MIT license.