jsonwebtoken 10.3.0

Create and decode JWTs in a strongly typed way.
Documentation
[package]
name = "jsonwebtoken"
version = "10.3.0"
authors = ["Vincent Prouillet <hello@vincentprouillet.com>"]
license = "MIT"
readme = "README.md"
description = "Create and decode JWTs in a strongly typed way."
homepage = "https://github.com/Keats/jsonwebtoken"
repository = "https://github.com/Keats/jsonwebtoken"
keywords = ["jwt", "api", "token", "jwk"]
edition = "2024"
include = [
    "src/**/*",
    "benches/**/*",
    "tests/**/*",
    "LICENSE",
    "README.md",
    "CHANGELOG.md",
]
rust-version = "1.85.0"

[package.metadata.docs.rs]
features = ["rust_crypto"]

[dependencies]
base64 = "0.22"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0"
signature = { version = "2.2.0", features = ["std"] }

# For PEM decoding
pem = { version = "3", optional = true }
simple_asn1 = { version = "0.6", optional = true }

# "aws_lc_rs" feature
aws-lc-rs = { version = "1.15.0", optional = true }

# "rust_crypto" feature
ed25519-dalek = { version = "2.1.1", optional = true, features = ["pkcs8"] }
hmac = { version = "0.12.1", optional = true }
p256 = { version = "0.13.2", optional = true, features = ["ecdsa"] }
p384 = { version = "0.13.0", optional = true, features = ["ecdsa"] }
rand = { version = "0.8.5", optional = true, features = ["std"], default-features = false }
rsa = { version = "0.9.6", optional = true }
sha2 = { version = "0.10.7", optional = true, features = ["oid"] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3"
getrandom = "0.2"

[dev-dependencies]
wasm-bindgen-test = "0.3.1"
ed25519-dalek = { version = "2.1.1", features = ["pkcs8", "rand_core"] }
rand = { version = "0.8.5", features = ["std"], default-features = false }
rand_core = "0.6.4"
[target.'cfg(not(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))))'.dev-dependencies]
# For the custom time example
time = "0.3"
criterion = "0.8"

[target.'cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi"))))'.dev-dependencies]
# For the custom time example
time = { version = "0.3", features = ["wasm-bindgen"] }
criterion = { version = "0.8", default-features = false }

[features]
default = ["use_pem"]
use_pem = ["pem", "simple_asn1"]
rust_crypto = ["ed25519-dalek", "hmac", "p256", "p384", "rand", "rsa", "sha2"]
aws_lc_rs = ["aws-lc-rs"]

[[bench]]
name = "jwt"
harness = false

[badges]
maintenance = { status = "passively-maintained" }