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