[package]
name = "atproto-devtool"
version = "0.1.0"
authors = ["Jack Grigg <thestr4d@gmail.com>"]
edition = "2024"
rust-version = "1.85"
description = "A multitool for the atproto developer ecosystem"
repository = "https://tangled.org/str4d.xyz/atproto-devtool"
license = "MIT OR Apache-2.0"
keywords = ["atmosphere", "bluesky"]
categories = [
    "command-line-utilities",
    "development-tools::testing",
    "web-programming",
]

[dependencies]
async-trait = "0.1"
atrium-api = "0.25"
# Used to decode the atproto JSON `{"$bytes": "<base64>"}` wrapper that appears
# in label `sig` fields, since atrium-api's generated types assume CBOR byte
# strings.
base64 = "0.22"
atrium-xrpc-client = { version = "0.5", default-features = false, features = ["reqwest"] }
bytes = "1.10"
ciborium = "0.2"
clap = { version = "4.6", features = ["derive"] }
futures-util = { version = "0.3", default-features = false, features = ["std"] }
hickory-resolver = "0.25"
humantime = "2.1"
k256 = { version = "0.13", features = ["ecdsa"] }
miette = { version = "7.6", features = ["fancy"] }
multibase = "0.9"
p256 = { version = "0.13", features = ["ecdsa"] }
percent-encoding = "2.3"
reqwest = { version = "0.13", default-features = false, features = ["rustls", "json", "gzip"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.11"
thiserror = "2.0"
tokio = { version = "1.51", features = ["rt", "macros", "time", "net"] }
tokio-tungstenite = { version = "0.29", default-features = false, features = ["connect", "rustls-tls-native-roots"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
url = "2.5"

[dev-dependencies]
assert_cmd = "2.0"
insta = "1.47"
tokio = { version = "1.51", features = ["rt", "macros", "test-util", "time"] }

[lints.clippy]
uninlined_format_args = "deny"
