Crate cookie[][src]

Expand description

HTTP cookie parsing and cookie jar management.

This crates provides the Cookie type, representing an HTTP cookie, and the CookieJar type, which manages a collection of cookies for session management, recording changes as they are made, and optional automatic cookie encryption and signing.

Usage

Add the following to the [dependencies] section of your Cargo.toml:

cookie = "0.14"

Then add the following line to your crate root:

extern crate cookie;

Features

This crate exposes several features, all of which are disabled by default:

  • percent-encode

    Enables percent encoding and decoding of names and values in cookies.

    When this feature is enabled, the Cookie::encoded() and Cookie::parse_encoded() methods are available. The encoded method returns a wrapper around a Cookie whose Display implementation percent-encodes the name and value of the cookie. The parse_encoded method percent-decodes the name and value of a Cookie during parsing.

  • signed

    Enables signed cookies via CookieJar::signed().

    When this feature is enabled, the CookieJar::signed() method, SignedJar type, and Key type are available. The jar acts as “child jar”; operations on the jar automatically sign and verify cookies as they are added and retrieved from the parent jar.

  • private

    Enables private (authenticated, encrypted) cookies via CookieJar::private().

    When this feature is enabled, the CookieJar::private() method, PrivateJar type, and Key type are available. The jar acts as “child jar”; operations on the jar automatically encrypt and decrypt/authenticate cookies as they are added and retrieved from the parent jar.

  • key-expansion

    Enables key expansion or key derivation via Key::derive_from().

    When this feature is enabled, and either signed or private are also enabled, the Key::derive_from() method is available. The method can be used to derive a Key structure appropriate for use with signed and private jars from cryptographically valid key material that is shorter in length than the full key.

  • secure

    A meta-feature that simultaneously enables signed, private, and key-expansion.

You can enable features via Cargo.toml:

[dependencies.cookie]
features = ["secure", "percent-encode"]

Structs

Representation of an HTTP cookie.

Structure that follows the builder pattern for building Cookie structs.

A collection of cookies that tracks its modifications.

Iterator over the changes to a cookie jar.

Wrapper around Cookie whose Display implementation percent-encodes the cookie’s name and value.

Iterator over all of the cookies in a jar.

A cryptographic master key for use with Signed and/or Private jars.

A child cookie jar that provides authenticated encryption for its cookies.

A child cookie jar that authenticates its cookies.

Enums

Enum corresponding to a parsing error.

The SameSite cookie attribute.