-
-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathCargo.toml
More file actions
108 lines (99 loc) · 3.69 KB
/
Copy pathCargo.toml
File metadata and controls
108 lines (99 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
[package]
name = "rusty_paseto"
version = "0.10.0"
edition = "2021"
# MSRV: 1.85 — required by transitive dependency time-core 0.1.8 (edition2024).
# Earlier toolchains can build older versions of this crate, but 0.10+ tracks
# the modern dependency tree.
rust-version = "1.85"
readme = "README.md"
authors = ["Roland Rodriguez <rolandrodriguez@gmail.com>"]
description = "A type-driven, ergonomic alternative to JWT for secure stateless PASETO tokens."
repository = "https://github.com/rrrodzilla/rusty_paseto"
license = "MIT OR Apache-2.0"
keywords = ["paseto", "token", "security", "api", "web"]
categories = [
"cryptography",
"authentication",
"encoding",
"network-programming",
"web-programming",
]
documentation = "https://docs.rs/rusty_paseto/latest/rusty_paseto/"
[package.metadata.docs.rs]
# ARCHITECTURAL DESIGN: This crate uses mutually exclusive features by design.
# The PASETO specification recommends choosing a single version per application.
# Multiple public features cannot coexist due to intentionally conflicting trait
# implementations - this enforces compile-time safety and prevents version mixing.
# The feature-gated architecture minimizes binary size by only compiling the
# cryptographic dependencies you actually use.
all-features = false
# Build docs with default features (batteries_included + v4_local + v4_public)
# This showcases the complete API with the modern recommended PASETO version
features = ["batteries_included", "v4_local", "v4_public"]
[features]
v1 = []
v2 = []
v3 = []
v4 = []
public = []
local = []
v1_local = ["v1", "local", "core", "aes", "ctr", "chacha20", "hmac", "sha2", "blake2"]
v2_local = ["v2", "local", "core", "blake2", "chacha20poly1305"]
v3_local = ["v3", "local", "core", "aes", "ctr", "hmac", "sha2", "chacha20"]
v4_local = ["v4", "local", "core", "blake2", "chacha20"]
v1_public_insecure = ["v1", "public", "core"]
v2_public = ["v2", "public", "core", "ed25519-dalek", "ring/std"]
v3_public = ["v3", "public", "core", "p384", "sha2"]
v4_public = ["v4", "public", "core", "ed25519-dalek", "ring/std"]
core = []
generic = ["core", "serde", "erased-serde", "serde_json"]
batteries_included = ["generic"]
default = ["batteries_included", "v4_local", "v4_public"]
paserk = ["dep:paserk"]
[lib]
doctest = true
[dependencies]
p384 = { version = "0.13", optional = true }
chacha20 = { version = "0.9", optional = true }
blake2 = { version = "0.10", optional = true }
chacha20poly1305 = { version = "0.10", optional = true }
ring = { version = "0.17", features = ["std"], optional = false }
base64 = { version = "0.22", optional = false }
hex = { version = "0.4", optional = false }
serde = { version = "1.0", features = ["derive"], optional = true }
ed25519-dalek = { version = "2.0", features = ["zeroize"], optional = true }
serde_json = { version = "1.0", optional = true }
thiserror = "2.0"
iso8601 = "0.6"
erased-serde = { version = "0.4", optional = true }
aes = { version = "0.8", optional = true }
ctr = { version = "0.9", optional = true }
hmac = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
subtle = "2.6"
zeroize = { version = "1.8", features = ["zeroize_derive"] }
time = { version = "0.3.47", features = ["parsing", "formatting"] }
rand_core = "0.9"
digest = "0.10"
paserk = { version = "0.4.0", optional = true }
[lints.rust]
unsafe_code = "forbid"
warnings = "deny"
[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
[dev-dependencies]
anyhow = "1.0"
serde_json = { version = "1.0" }
primes = "0.4"
actix-web = "4"
actix-identity = "0.4"
tokio = "1.17"
actix-utils = "3.0"
uuid = { version = "1.8", features = ["v4"] }
proptest = "1.4"
erased-serde = { version = "0.4" }
[[example]]
name = "actix_identity"
required-features = ["default"]