[package] name = "church-core" version = "0.1.0" edition = "2021" description = "Shared Rust crate for church application APIs and data models" authors = ["Benjamin Slingo "] license = "MIT" [dependencies] # HTTP client (using rustls to avoid OpenSSL cross-compilation issues) reqwest = { version = "0.11", features = ["json", "multipart", "stream", "rustls-tls"], default-features = false } tokio = { version = "1.0", features = ["full"] } # JSON handling serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Date/time handling chrono = { version = "0.4", features = ["serde"] } # Error handling thiserror = "1.0" anyhow = "1.0" # Caching and utilities moka = { version = "0.12", features = ["future"] } async-trait = "0.1" rand = "0.8" urlencoding = "2.1" # UUID generation uuid = { version = "1.0", features = ["v4", "serde"] } # Base64 encoding for image caching base64 = "0.21" # Regular expressions regex = "1.10" # System calls for iOS device detection libc = "0.2" # HTML processing html2text = "0.12" # UniFFI for mobile bindings uniffi = { version = "0.27", features = ["tokio"] } # Build dependencies [build-dependencies] uniffi = { version = "0.27", features = ["build"], optional = true } uniffi_bindgen = { version = "0.27", features = ["clap"] } # Bin dependencies [dependencies.uniffi_bindgen_dep] package = "uniffi_bindgen" version = "0.27" optional = true # Testing dependencies [dev-dependencies] tokio-test = "0.4" mockito = "0.31" serde_json = "1.0" tempfile = "3.8" pretty_assertions = "1.4" [features] default = ["native"] native = [] ffi = ["uniffi/tokio"] uniffi = ["ffi", "uniffi/build"] [lib] crate-type = ["cdylib", "rlib"] [[bin]] name = "church-core-test" path = "src/bin/test.rs"