forked from
nonbinary.computer/jacquard
A better Rust ATProto crate
1[workspace]
2resolver = "2"
3members = ["crates/jacquard", "crates/jacquard-common", "crates/jacquard-api", "crates/jacquard-lexgen", "crates/jacquard-lexicon", "crates/jacquard-derive", "crates/jacquard-repo", "crates/jacquard-codegen-tests", "crates/mini-moka-wasm"]
4
5
6[workspace.package]
7edition = "2024"
8version = "0.12.0-beta.2"
9authors = ["Orual <orual@nonbinary.computer>"]
10#repository = "https://github.com/rsform/jacquard"
11repository = "https://tangled.org/nonbinary.computer/jacquard"
12keywords = ["atproto", "at", "bluesky", "api", "client"]
13categories = ["api-bindings", "web-programming::http-client"]
14readme = "README.md"
15exclude = [".direnv"]
16homepage = "https://tangled.org/nonbinary.computer/jacquard"
17license = "MPL-2.0"
18
19description = "Simple and powerful AT Protocol client library for Rust"
20
21# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
22
23[workspace.dependencies]
24# CLI
25clap = { version = "4.5", features = ["derive"] }
26clap_complete = "4.5"
27clap_mangen = "0.2"
28
29# Serialization
30serde = { version = "1.0", default-features = false, features = ["derive", "alloc"] }
31serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
32serde_with = { version = "3.14", default-features = false, features = ["alloc", "macros"] }
33serde_html_form = { version = "0.3", default-features = false }
34serde_ipld_dagcbor = { version = "0.6", default-features = false }
35serde_repr = { version = "0.1" }
36serde_bytes = { version = "0.11", default-features = false }
37facet = "0.6"
38facet-json = "0.6"
39cfg-if = "1.0"
40
41# Error handling
42miette = "7.6"
43thiserror = { version = "2.0", default-features = false }
44
45# trait stuff
46trait-variant = "0.1.2"
47rustversion = "1.0"
48unicode-segmentation = "1.12"
49
50
51bon = "3.8.0"
52
53# Data types
54bytes = { version = "1.11", default-features = false }
55smol_str = { version = "0.3", features = ["serde"] }
56fluent-uri = { version = "0.4.1", default-features = false, features = ["serde", "alloc", "impl-error"] }
57cid = { version = "0.11.1", default-features = false, features = ["serde", "alloc"] }
58ipld-core = { version = "0.4.2", default-features = false, features = ["serde"] }
59multihash = { version = "0.19", default-features = false, features = ["alloc"] }
60dashmap = "6.1"
61mini-moka = "0.10"
62indexmap = { version = "*", default-features = false, features = ["alloc"] }
63smallvec = { version = "1", features = ["const_generics"] }
64
65# Proc macros
66proc-macro2 = "1.0"
67quote = "1.0"
68syn = "2.0"
69heck = "0.5"
70itertools = "0.14"
71prettyplease = "0.2"
72
73# HTTP
74http = { version = "1.4", default-features = false }
75reqwest = { version = "0.12", default-features = false }
76
77# Async and runtimes
78tokio = { version = "1", default-features = false }
79n0-future = "0.1"
80
81# Observability
82tracing = "0.1"
83
84# Encoding and crypto building blocks
85base64 = { version = "0.22", default-features = false, features = ["alloc"] }
86rand_core = { version = "0.6.4", default-features = false, features = [
87 "alloc",
88] }
89sha2 = "0.10"
90
91# Time
92chrono = { version = "0.4", default-features = false, features = ["serde"] }
93
94# Crypto curves and JOSE
95p256 = "0.13"
96jose-jwk = "0.1"
97
98# Text processing
99regex = { version = "1.12", default-features = false }
100webpage = { version = "2.0", default-features = false }
101phf = { version = "0.11", features = ["macros"] }