token-claims

Crates.iotoken-claims
lib.rstoken-claims
version0.1.1
created_at2025-06-07 21:58:48.287032+00
updated_at2025-06-07 22:06:33.179218+00
descriptionA Rust library for ergonomic handling of JWT claims with strong typing and builder support.
homepage
repositoryhttps://github.com/oblivisheee/token-claims
max_upload_size
id1704444
size34,927
Oleg Pogoraev (oblivisheee)

documentation

README

token-claims

A Rust library for ergonomic handling of JWT claims with strong typing and builder support.

Features

  • Generic TokenClaims<T> struct for custom or primitive claim types.
  • Builder pattern for easy construction of claims.
  • Support for both JSON and optional MessagePack serialization (via msgpack feature).
  • Helper types for subject (Subject<T>), timestamp (TimeStamp), and JWT ID (JWTID).
  • Custom error handling for token operations.
  • Thoroughly tested with custom and primitive claim types.

Example

use token_claims::{TokenClaimsBuilder, Subject, TimeStamp, JWTID};

#[derive(serde::Serialize, serde::Deserialize)]
struct MyClaims {
    username: String,
    admin: bool,
}

let claims = TokenClaimsBuilder::<MyClaims>::default()
    .sub(Subject::new(MyClaims {
        username: "alice".to_string(),
        admin: true,
    }))
    .exp(TimeStamp::from_now(3600))
    .iat(TimeStamp::from_now(0))
    .typ("access".to_string())
    .iss("issuer".to_string())
    .aud("audience".to_string())
    .jti(JWTID::new())
    .build()
    .unwrap();
Commit count: 5

cargo fmt