A rust implementation of skywatch-phash
1[package]
2name = "skywatch-phash-rs"
3version = "0.2.0"
4edition = "2024"
5authors = ["Giulia <skywatch@skywatch.blue"]
6description = "Perceptual hash-based image moderation for Bluesky (Rust rewrite)"
7license = "MIT"
8
9[dependencies]
10# Async runtime
11tokio = { version = "1", features = ["full"] }
12futures-util = "0.3"
13
14# ATProto client (Jacquard)
15jacquard = "0.8.0"
16jacquard-api = "0.8.0"
17jacquard-common = { version = "0.8.0", features = ["websocket"] }
18jacquard-repo = "0.8.0"
19
20# Serialization
21serde = { version = "1.0", features = ["derive"] }
22serde_json = "1.0"
23
24# HTTP client
25reqwest = { version = "0.12", features = ["json"] }
26
27# Redis
28redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] }
29
30# Image processing
31image = "0.25"
32image_hasher = "3.0"
33
34# Error handling
35miette = { version = "7.6", features = ["fancy"] }
36thiserror = "2.0"
37
38# Logging
39tracing = "0.1"
40tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
41
42# Config
43dotenvy = "0.15"
44
45# Utilities
46chrono = "0.4"
47url = "2.5"
48futures = "0.3"
49
50# Rate limiting
51governor = "0.8"
52
53[dev-dependencies]
54mockito = "1"
55tokio-test = "0.4"
56
57[[bin]]
58name = "skywatch-phash"
59path = "src/main.rs"
60
61[profile.release]
62opt-level = 3
63lto = true
64codegen-units = 1
65strip = true
66
67[profile.dev]
68opt-level = 0