A better Rust ATProto crate
at main 3.5 kB view raw
1[package] 2name = "jacquard-common" 3description = "Core AT Protocol types and utilities for Jacquard" 4edition.workspace = true 5version = "0.9.2" 6authors.workspace = true 7repository.workspace = true 8keywords.workspace = true 9categories.workspace = true 10readme.workspace = true 11exclude.workspace = true 12license.workspace = true 13 14[features] 15default = ["service-auth", "reqwest-client", "crypto"] 16crypto = [] 17crypto-ed25519 = ["crypto", "dep:ed25519-dalek"] 18crypto-k256 = ["crypto", "dep:k256", "k256/ecdsa"] 19crypto-p256 = ["crypto", "dep:p256", "p256/ecdsa"] 20service-auth = ["crypto-k256", "crypto-p256", "dep:signature"] 21reqwest-client = ["dep:reqwest"] 22tracing = ["dep:tracing"] 23streaming = ["n0-future", "futures", "reqwest/stream"] 24websocket = ["streaming", "tokio-tungstenite-wasm", "dep:ciborium"] 25zstd = ["dep:zstd"] 26 27[dependencies] 28trait-variant.workspace = true 29bon.workspace = true 30base64.workspace = true 31bytes.workspace = true 32chrono.workspace = true 33cid.workspace = true 34ipld-core.workspace = true 35langtag = { version = "0.4.0", features = ["serde"] } 36miette.workspace = true 37multibase = "0.9.1" 38multihash = "0.19.3" 39ouroboros = "0.18.5" 40rand = "0.9.2" 41serde.workspace = true 42serde_html_form.workspace = true 43serde_json.workspace = true 44smol_str.workspace = true 45thiserror.workspace = true 46url.workspace = true 47http.workspace = true 48serde_bytes = "0.11" 49 50 51reqwest = { workspace = true, optional = true, features = ["json", "gzip", "charset"] } 52serde_ipld_dagcbor.workspace = true 53signature = { version = "2", optional = true } 54tracing = { workspace = true, optional = true } 55tokio = { workspace = true, default-features = false, features = ["sync"] } 56 57# Streaming support (optional) 58n0-future = { workspace = true, optional = true } 59futures = { version = "0.3", optional = true } 60tokio-tungstenite-wasm = { version = "0.4", default-features = false, optional = true } 61ciborium = {version = "0.2.0", optional = true } 62zstd = { version = "0.13", optional = true } 63postcard = { version = "1.1.3", features = ["use-std"] } 64 65[target.'cfg(target_family = "wasm")'.dependencies] 66getrandom = { version = "0.3.4", features = ["wasm_js"] } 67chrono = { workspace = true, features = ["wasmbind"] } 68getrandom_02 = { package = "getrandom", version = "0.2", features = ["js"] } 69regex-lite = "0.1" 70ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]} 71reqwest = { workspace = true, optional = true, features = [ "json", "gzip", "rustls-tls-manual-roots"] } 72tokio-tungstenite-wasm = { version = "0.4", features = [], optional = true } 73 74[target.'cfg(not(target_arch = "wasm32"))'.dependencies] 75reqwest = { workspace = true, optional = true, features = [ "http2", "gzip", "system-proxy", "rustls-tls"] } 76tokio-util = { version = "0.7.16", features = ["io"] } 77regex = { version = "1.11.3", default-features = false, features = ["std", "perf-literal"] } 78tokio-tungstenite-wasm = { version = "0.4", features = ["rustls-tls-native-roots"], optional = true } 79 80 81[dependencies.ed25519-dalek] 82version = "2" 83optional = true 84default-features = false 85features = ["pkcs8"] 86 87[dependencies.k256] 88version = "0.13" 89optional = true 90default-features = false 91features = ["arithmetic"] 92 93[dependencies.p256] 94workspace = true 95optional = true 96features = ["arithmetic"] 97 98[dev-dependencies] 99tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] } 100futures-lite = "2.6" 101 102[package.metadata.docs.rs] 103features = [ "crypto-k256", "crypto-ed22519", "crypto-p256", "websocket", "zstd", "service-auth", "reqwest-client", "crypto"]