synpad 0.1.0

A full-featured Matrix chat client built with Dioxus
[package]
name = "synpad"
version = "0.1.0"
edition = "2024"
rust-version = "1.93"
description = "A full-featured Matrix chat client built with Dioxus"
license = "AGPL-3.0-only"
readme = "README.md"
repository = "https://github.com/taidge/synpad"
homepage = "https://github.com/taidge/synpad"
documentation = "https://docs.rs/synpad"
keywords = ["matrix", "chat", "dioxus", "desktop", "e2ee"]
categories = ["gui", "network-programming"]

[dependencies]
# UI Framework
dioxus = { version = "0.7.3", features = ["router"] }

# Matrix SDK
matrix-sdk = { version = "0.16.0", default-features = false, features = [
    "e2e-encryption",
    "automatic-room-key-forwarding",
    "markdown",
    "qrcode",
    "sqlite",
    "rustls-tls",
    "bundled-sqlite",
    "sso-login",
] }
matrix-sdk-ui = { version = "0.16.0", default-features = false, features = [
    "rustls-tls",
] }
# Use ruma types re-exported from matrix-sdk to avoid version conflicts
# ruma = "0.12"  # removed - use matrix_sdk::ruma instead

# Async runtime
tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "sync"] }
futures-util = "0.3.32"

# State observation
eyeball = { version = "0.8", features = ["tracing"] }
eyeball-im = { version = "0.8", features = ["tracing"] }
imbl = { version = "7.0.0", features = ["serde"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Error handling
anyhow = "1.0.102"
thiserror = "2"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Time
chrono = { version = "0.4.44", features = ["serde"] }

# URL handling
url = "2"
linkify = "0.10"

# HTML/Markdown
comrak = { version = "0.50", default-features = false }
ammonia = "4"

# Image handling
blurhash = "0.2"
image = "0.25"
qrcode = "0.14"
quircs = "0.10"

# File dialogs & MIME
rfd = { version = "0.17.2", optional = true }
mime = "0.3"
mime_guess = "2"
cpal = { version = "0.17.3", optional = true }
hound = { version = "3.5.1", optional = true }

# Misc utilities
uuid = { version = "1.22.0", features = ["v4"] }
rand = "0.10"
unicode-segmentation = "1"
dirs = "6"
urlencoding = "2"

[[bin]]
name = "synpad"
path = "src/main.rs"

[[bin]]
name = "test_sdk"
path = "src/bin/test_sdk.rs"

[features]
default = ["desktop"]
desktop = ["dioxus/desktop", "dep:rfd", "dep:cpal", "dep:hound"]
web = ["dioxus/web", "dep:rfd"]
mobile = ["dioxus/mobile", "dep:cpal", "dep:hound"]

[profile.release]
opt-level = "z"
lto = true
strip = true