[package]
name = "mail4agent-server"
version.workspace = true
edition = "2021"
license = "MIT"
repository = "https://github.com/ZENG3LD/mail4agent"
readme = "README.md"
keywords = ["matrix","homeserver","messenger","e2ee"]
categories = ["network-programming"]
description = "Matrix-subset homeserver: protocol decisions plus the Client-Server HTTP routes. No users database, logins, registration or tariffs: identities are nick + domain; a product server vouches for callers through the signed-assertion seam (m4a-seam), lifecycle events and the policy hook."
[lib]
name = "mail4agent_server"
path = "src/lib.rs"
[features]
default = ["f3-hash-ids", "presence", "media-federation", "media-thumbnails"]
presence = []
media-federation = []
media-thumbnails = ["dep:image"]
f3-hash-ids = ["dep:m4a-matrix-core"]
[dependencies]
m4a-matrix-core = { workspace = true, optional = true }
tesserax-store = { version = "0.1.2", features = ["cipher-native"] }
rusqlite = { version = "0.36", features = ["backup"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
base64 = "0.22"
rand = "0.8"
chrono = { version = "0.4", features = ["serde"] }
ed25519-dalek = { version = "2", features = ["std"] }
tracing = "0.1"
axum = { version = "0.8", features = ["json", "ws"] }
futures-util = { version = "0.3", default-features = false, features = ["std", "sink"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
sha2 = "0.10"
hex = "0.4"
m4a-seam = { workspace = true }
hmac = "0.12"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp"], optional = true }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
[dev-dependencies]
tower = { version = "0.5", features = ["util"] }