A better Rust ATProto crate
1[package]
2name = "jacquard-oauth"
3version = "0.12.1"
4edition.workspace = true
5description = "AT Protocol OAuth 2.1 core types and helpers for Jacquard"
6authors.workspace = true
7repository.workspace = true
8keywords.workspace = true
9categories.workspace = true
10readme.workspace = true
11exclude.workspace = true
12license.workspace = true
13
14
15[features]
16default = []
17loopback = []
18browser-open = ["dep:webbrowser"]
19tracing = ["dep:tracing"]
20websocket = ["jacquard-common/websocket"]
21streaming = ["jacquard-common/streaming", "dep:n0-future"]
22scope-check = ["dep:jacquard-lexicon"]
23
24[dependencies]
25jacquard-common = { version = "0.12.1", path = "../jacquard-common", features = ["reqwest-client"] }
26jacquard-identity = { version = "0.12.1", path = "../jacquard-identity" }
27jacquard-lexicon = { version = "0.12.1", path = "../jacquard-lexicon", optional = true }
28serde = { workspace = true, features = ["derive"] }
29serde_json = { workspace = true }
30smol_str = { workspace = true }
31base64.workspace = true
32sha2 = { version = "0.10" }
33thiserror = { workspace = true }
34serde_html_form = { workspace = true }
35miette = { workspace = true }
36p256 = { workspace = true, features = ["ecdsa"] }
37p384 = { version = "0.13", features = ["ecdsa"] }
38k256 = { version = "0.13", features = ["ecdsa"] }
39ed25519-dalek = { version = "2", features = ["rand_core"] }
40jose-jwa = "0.1"
41jose-jwk = { workspace = true, features = ["p256", "p384"] }
42chrono.workspace = true
43elliptic-curve = "0.13.8"
44http.workspace = true
45bytes.workspace = true
46rand = { version = "0.8.5", features = ["small_rng"] }
47dashmap = "6.1.0"
48tokio = { workspace = true, default-features = false, features = ["sync"] }
49trait-variant.workspace = true
50n0-future = { workspace = true, optional = true }
51webbrowser = { version = "1", optional = true }
52tracing = { workspace = true, optional = true }
53smallvec.workspace = true
54reqwest.workspace = true
55
56[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies]
57tokio = { workspace = true, features = ["rt", "net", "time", "io-util"] }
58
59
60[target.'cfg(target_arch = "wasm32")'.dependencies]
61#ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]}
62
63[package.metadata.docs.rs]
64features = ["loopback", "browser-open"]