PackageTrack
Sign in Get early access

jsonwebtoken

Create and decode JWTs in a strongly typed way.

11.0.0 174M downloads/mo #556 most downloaded on crates.io Keats/jsonwebtoken

What this package is like to depend on

Last release 1 months ago

24 Jul 2026

Release timing varies

gaps range from 3 weeks to 11 months

Most releases are documented

notes for 32 of 45 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

58 releases · first in 2015

6 releases in the last 12 months

see the full history below

Release timeline

58 releases · Nov 2015 to Jul 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 58
  1. 11.0.0 24 Jul 2026
    Release notes
    • Add conversions between Algorithm and KeyAlgorithm
    • JWKs can now be created from DecodingKeys, creation from EncodingKey and DecodingKey now supports Ed25519 as well
    • JWKs with unknown key types are now deserializable
    • BREAKING: Algorithm, KeyAlgorithm, EllipticCurve and ThumbprintHash are now non_exhaustive
    • BREAKING: Jwk.thumbprint now returns a Result<_>
    • BREAKING: Header.extras is now a struct that allows for deserialization to any T
    • BREAKING: Implicit features resulting from optional crates have been removed
    • BREAKING: Validation.insecure_disable_signature_validation has been removed, use dangerous::insecure_decode instead
    • BREAKING: EncodingKey.inner has been renamed to as_bytes, try_get_hmac_secret has been removed
    • BREAKING: DecodingKey.as_bytes and try_get_hmac_secret have been removed, use try_get_as_bytes instead

    Changes for CryptoProviders

    • When constructing HMAC signers, the algorithm family must now be verified on construction
    • JwkUtils has been renamed to KeyUtils
      • compute_digest now returns a Result<_>
      • extract_rsa_public_key_components has been renamed to rsa_pub_components_from_private_key
      • rsa_pub_components_from_public_key has been added
      • extract_ec_public_key_coordinates has been renamed to ec_pub_components_from_private_key
      • ed_pub_components_from_private_key has been added
    Open source →
  2. 10.4.0 11 May 2026
    Release notes
    • Fix incorrect encoding for Ed25519 JWK thumbprints
    • Make Algorithm.family public and add Validation.new_for_family
    • EncodingKey and DecodingKey are now partially zeroized on drop (the intermediate PemEncodedKey isn't so far)
    Open source →
  3. 10.3.0 27 Jan 2026
    Release notes
    • Export everything needed to define your own CryptoProvider
    • Fix type confusion with exp/nbf when not required
    Open source →
  4. 10.2.0 06 Nov 2025
    Release notes
    • Remove Clone bound from decode functions
    Open source →
  5. 10.1.0 18 Oct 2025
    Release notes
    • add dangerous::insecure_decode
    • Implement TryFrom &Jwk for DecodingKey
    Open source →
  6. 10.0.0 29 Sep 2025
    Release notes

    cargo fmt post edition bump

    Open source →
    Release notes
    • BREAKING: now using traits for crypto backends, you have to choose between aws_lc_rs and rust_crypto
    • Add Clone bound to decode
    • Support decoding byte slices
    • Support JWS
    Open source →
  7. 9.3.1 06 Feb 2025
    Release notes
    • Update base64
    Open source →
  8. 9.3.0 21 Mar 2024
    Release notes
    • Add Validation.reject_tokens_expiring_in_less_than, the opposite of leeway
    Open source →
  9. 9.2.0 01 Dec 2023
    Release notes
    • Add an option to not validate aud in the Validation struct
    • Get the current timestamp in wasm without using std
    • Update ring to 0.17
    Open source →
  10. 9.1.0 21 Oct 2023
    Release notes
    • Supports deserialization of unsupported algorithms for JWKs
    Open source →
  11. 9.0.0 16 Oct 2023
    Release notes
    • Update ring
    • Rejects JWTs containing audiences when the Validation doesn't contain any
    Open source →
  12. 8.3.0 15 Mar 2023
    Release notes
    • Update base64
    • Implement Clone for TokenData<T> if T impls Clone
    Open source →
  13. 8.2.0 03 Dec 2022
    Release notes
    • Add DecodingKey::from_jwk
    • Can now use PEM certificates if you have the use_pem feature enabled
    Open source →
  14. 8.1.1 17 Jun 2022
    Release notes
    • Fix invalid field name on OctetKeyParameters
    Open source →
  15. 8.1.0 12 Apr 2022
    Release notes
    • Make optional fields in the spec really optional
    • Implements Hash for Header
    Open source →
  16. 8.0.1 03 Feb 2022
    Release notes
    • Fix documentation of leeway
    Open source →
  17. 8.0.0 02 Feb 2022
    Release notes
    • Add EdDSA algorithm
    • sign/verify now takes a &[u8] instead of &str to be more flexible
    • DecodingKey now own its data
    • Remove deprecated dangerous_unsafe_decode
    • Validation::iss is now a HashSet instead of a single value
    • decode will now error if Validation::algorithms is empty
    • Add JWKs types for easy interop with various Oauth provider, see examples/auth0.rs for an example
    • Removed decode_* functions in favour of using the Validation struct
    • Allow float values for exp and nbf, yes it's in the spec... floats will be rounded and converted to u64
    • Error now implements Clone/Eq
    • Change default leeway from 0s to 60s
    • Add Validation::require_spec_claims to validate presence of the spec claims
    • Add default feature for pem decoding named use_pem that can be disabled to avoid 2 dependencies
    Open source →
  18. 8.0.0-beta.8 28 Jan 2022 pre-release

    Nothing published for this version

  19. 8.0.0-beta.7 16 Dec 2021 pre-release

    Nothing published for this version

  20. 8.0.0-beta.6 19 Nov 2021 pre-release

    Nothing published for this version

  21. 8.0.0-beta.5 01 Nov 2021 pre-release

    Nothing published for this version

  22. 8.0.0-beta.4 10 Oct 2021 pre-release

    Nothing published for this version

  23. 8.0.0-beta.3 28 Sep 2021 pre-release

    Nothing published for this version

  24. 8.0.0-beta.2 22 Mar 2021 pre-release

    Nothing published for this version

  25. 8.0.0-beta.1 25 Feb 2021 pre-release

    Nothing published for this version

  26. 8.0.0-beta.0 20 Feb 2021 pre-release

    Nothing published for this version

  27. 7.2.0 30 Jun 2020
    Release notes
    • Add dangerous_insecure_decode to replace dangerous_unsafe_decode, which is now deprecated
    • Add dangerous_insecure_decode_with_validation
    Open source →
  28. 7.1.2 16 Jun 2020
    Release notes
    • Derive Hash for Header and Algorithm
    Open source →
  29. 7.1.1 09 Jun 2020
    Release notes
    • Update dependencies
    Open source →
  30. 7.1.0 01 Mar 2020
    Release notes
    • Add into_static to DecodingKey for easier re-use

    7.0.0 (2020-01-28)

    • Add support for PS256, PS384 and PS512
    • Add support for verifying with modulus/exponent components for RSA
    • Update to 2018 edition
    • Changed aud field type in Validation to Option<HashSet<String>>. Audience validation now tests for "any-of-these" audience membership.
    • Add support for keys in PEM format
    • Add EncodingKey/DecodingKey API to improve performance and UX
    Open source →
  31. 7.0.1 31 Jan 2020

    Nothing published for this version

  32. 7.0.0 29 Jan 2020

    Nothing published for this version

  33. 7.0.0-beta.1 21 Jan 2020 pre-release

    Nothing published for this version

  34. 7.0.0-alpha.2 28 Nov 2019 pre-release

    Nothing published for this version

  35. 7.0.0-alpha.1 15 Nov 2019 pre-release

    Nothing published for this version

  36. 6.0.1 10 May 2019
    Release notes
    • Fix Algorithm mapping in FromStr for RSA
    Open source →
  37. 6.0.0 21 Apr 2019
    Release notes
    • Update Ring to 0.14
    • Remove iat check to match the JWT spec
    • Add ES256 and ES384 signing decoding
    Open source →
  38. 5.0.1 10 Sep 2018
    Release notes
    • Add implementation of FromStr for Algorithm
    Open source →
  39. 5.0.0 13 Aug 2018
    Release notes
    • Update ring
    • Change error handling to be based on simple struct/enum rather than error-chain
    • Fix validations not being called properly in some cases
    • Default validation is not checking iat and nbf anymore
    Open source →
  40. 4.0.1 19 Mar 2018
    Release notes
    • Add method to decode a token without signature verification
    Open source →
  41. 4.0.0 22 Nov 2017
    Release notes

    Breaking changes

    • Make it mandatory to specify the algorithm in decode
    Open source →
  42. 3.0.0 08 Sep 2017
    Release notes

    Breaking changes

    • Remove validate_signature from Validation, use decode_header instead if you don't know the alg used
    • Make typ optional in header, some providers apparently don't use it

    Others

    • Update ring & error-chain
    • Fix documentation about leeway being in seconds and not milliseconds
    • Add decode_header to only decode the header: replaces the use case of validate_signature
    Open source →
  43. 2.0.3 18 Jul 2017
    Release notes
    • Make TokenData public
    Open source →
  44. 2.0.2 24 Jun 2017
    Release notes
    • Update ring & chrono
    Open source →
  45. 2.0.1 09 May 2017
    Release notes
    • Update ring
    Open source →
  46. 2.0.0 23 Apr 2017
    Release notes
    • Use Serde instead of rustc_serialize
    • Add RSA support
    • API overhaul, see README for new usage
    • Add validation
    • Update all dependencies
    Open source →
  47. 2.0.0-beta-1 20 Apr 2017 pre-release

    Nothing published for this version

  48. 1.1.7 02 Apr 2017

    Nothing published for this version

  49. 1.1.6 13 Feb 2017

    Nothing published for this version

  50. 1.1.5 24 Aug 2016

    Nothing published for this version

  51. 1.1.4 23 Aug 2016

    Nothing published for this version

  52. 1.1.3 25 Apr 2016

    Nothing published for this version

  53. 1.1.2 11 Apr 2016

    Nothing published for this version

  54. 1.1.1 29 Mar 2016

    Nothing published for this version

  55. 1.1.0 29 Feb 2016

    Nothing published for this version

  56. 1.0.0 22 Dec 2015

    Nothing published for this version

  57. 0.2.0 08 Nov 2015

    Nothing published for this version

  58. 0.1.0 02 Nov 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive