A better Rust ATProto crate
1

Configure Feed

Select the types of activity you want to include in your feed.

at main 5.2 kB View raw
1[package] 2name = "jacquard-common" 3description = "Core AT Protocol types and utilities for Jacquard" 4edition.workspace = true 5version = "0.12.1" 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 = ["std", "service-auth", "reqwest-client", "crypto", "reqwest-compression"] 16std = [ 17 "dep:tokio", 18 "dep:tokio-util", 19 "dep:regex", 20 "regex?/std", 21 "rand/std", 22 "rand/std_rng", 23 "rand/os_rng", 24 "rand/thread_rng", 25 "serde_json/std", 26 "serde/std", 27 "postcard/use-std", 28 "ciborium?/std", 29 "ciborium-io?/std", 30 "cid/std", 31 "ipld-core/std", 32 "multihash/std", 33 "multibase/std", 34 "serde_ipld_dagcbor/std", 35 "serde_html_form/std", 36 "miette", 37 "dep:bon", 38 "chrono/std", 39 "chrono/clock", 40 "http/std", 41 "bytes/std", 42 "oxilangtag/std", 43 "serde_bytes/std" 44] 45crypto = [] 46crypto-ed25519 = ["crypto", "dep:ed25519-dalek"] 47crypto-k256 = ["crypto", "dep:k256", "k256/ecdsa"] 48crypto-p256 = ["crypto", "dep:p256", "p256/ecdsa"] 49service-auth = ["crypto-k256", "crypto-p256", "dep:signature"] 50reqwest-client = ["std", "dep:reqwest"] 51tracing = ["std", "dep:tracing"] 52streaming = ["n0-future", "futures", "reqwest/stream"] 53websocket = ["streaming", "tokio-tungstenite-wasm", "dep:ciborium", "dep:ciborium-io"] 54zstd = ["dep:zstd"] 55reqwest-compression = ["reqwest/gzip", "reqwest/brotli", "reqwest/deflate"] 56 57[dependencies] 58trait-variant.workspace = true 59bon = { workspace = true, optional = true } 60base64.workspace = true 61phf.workspace = true 62bytes = { workspace = true, features = ["serde"] } 63chrono.workspace = true 64cid.workspace = true 65ipld-core.workspace = true 66oxilangtag = { version = "0.1", default-features = false, features = ["alloc", "serde"] } 67miette = { workspace = true, optional = true } # also need to gate this to std only 68multibase = { version = "0.9.1", default-features = false } 69multihash = { version = "0.19.3", default-features = false, features = ["alloc"] } 70rand = { version = "0.9.2", default-features = false, features = ["alloc"] } 71serde.workspace = true 72serde_html_form.workspace = true # need to check these at workspace level 73serde_json.workspace = true 74smol_str.workspace = true 75thiserror.workspace = true 76rustversion.workspace = true 77unicode-segmentation.workspace = true 78fluent-uri.workspace = true 79http.workspace = true 80serde_bytes.workspace = true 81spin = { version = "0.10", default-features = false, features = ["lazy"] } 82maitake-sync = { version = "0.1", default-features = false } 83hashbrown = "0.15" 84 85reqwest = { workspace = true, optional = true, features = ["json", "charset"] } 86serde_ipld_dagcbor.workspace = true 87signature = { version = "2", optional = true } 88tracing = { workspace = true, optional = true } 89tokio = { workspace = true, default-features = false, features = ["sync"], optional = true } 90 91# Streaming support (optional) 92n0-future = { workspace = true, optional = true } 93futures = { version = "0.3", optional = true, default-features = false, features = ["alloc"] } 94tokio-tungstenite-wasm = { version = "0.4", default-features = false, optional = true } 95ciborium = { version = "0.2.0", default-features = false, optional = true } 96ciborium-io = { version = "0.2.0", default-features = false, optional = true } 97zstd = { version = "0.13", optional = true } 98postcard = { version = "1.1.3" } 99 100# regex-automata for no_std embedded, regex-lite for wasm, full regex with std on native 101regex-automata = { version = "0.4", default-features = false, features = ["alloc", "meta", "nfa-pikevm", "syntax"] } 102regex = { version = "1.11.3", default-features = false, features = ["perf-literal"], optional = true } 103 104[target.'cfg(target_family = "wasm")'.dependencies] 105getrandom = { version = "0.3.4", features = ["wasm_js"] } 106chrono = { workspace = true, features = ["wasmbind"] } 107getrandom_02 = { package = "getrandom", version = "0.2", features = ["js"] } 108regex-lite = "0.1" 109#ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]} 110reqwest = { workspace = true, optional = true, features = [ "json", "gzip", "rustls-tls-manual-roots"] } 111tokio-tungstenite-wasm = { version = "0.4", features = [], optional = true } 112 113[target.'cfg(not(target_arch = "wasm32"))'.dependencies] 114reqwest = { workspace = true, optional = true, features = [ "http2", "gzip", "system-proxy", "rustls-tls"] } 115tokio-util = { version = "0.7.16", features = ["io"], optional = true } 116tokio-tungstenite-wasm = { version = "0.4", features = ["rustls-tls-native-roots"], optional = true } 117 118 119[dependencies.ed25519-dalek] 120version = "2" 121optional = true 122default-features = false 123features = ["pkcs8"] 124 125[dependencies.k256] 126version = "0.13" 127optional = true 128default-features = false 129features = ["arithmetic"] 130 131[dependencies.p256] 132workspace = true 133optional = true 134features = ["arithmetic"] 135 136[dev-dependencies] 137tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] } 138futures-lite = "2.6" 139 140[package.metadata.docs.rs] 141features = [ "crypto-k256", "crypto-ed25519", "crypto-p256", "websocket", "zstd", "service-auth", "reqwest-client", "crypto"]