сообщения больше не выполняется полный scan/rewrite архива для expiry. Очистка остаётся в maintenance и перед MAM-запросами; append и crash checkpoint до fanout сохранены. - Неизменённые native config/persistent index не перезаписываются при каждом сообщении. Удалённые файлы восстанавливаются, ошибки экспорта повторяются. - CSI больше не сохраняет SM snapshot при отсутствии изменения durable очереди. Изменённая очередь сохраняется до отправки; при ошибке записи очередь откатывается. - Личные сообщения, IQ и входящая федерация к аккаунтам больше не захватывают общий MUC mutex, ожидая несвязанную работу с комнатными архивами. - Добавлены регрессии native exports/archive scanning/CSI rollback и реальный TLS latency check в verify-local.sh, автоматически включённый и в CI. Измерения и границы подтверждения: [docs/MESSAGE-LATENCY.md](docs/MESSAGE-LATENCY.md). Результаты итогового прогона: [docs/VALIDATION-0.8.1.md](docs/VALIDATION-0.8.1.md). - Личные сообщения и SM ACK больше не ждут сетевую отправку push. Уведомления отправляются через очередь1024 с максимум8параллельных маршрутов; worker и его задачи отменяются при завершении serve. Ошибки очереди/маршрута логируются. - Offline сообщение сохраняется до публикации push, чтобы проснувшийся клиент мог сразу получить его. Подтверждена очередь при первом TLS stream push gateway. - По умолчанию CSI считает важными bodyless OMEMO legacy/2, delivery receipts и chat markers. Явный список `csi_important_payloads` заменяет расширенные defaults. Низкоприоритетный headline по-прежнему буферизуется. Policy обновляется и при SM resume. - Выбор адресатов и carbons фильтрует владельцев до захвата session mutex; зависшая сессия чужого аккаунта не задерживает этот путь. Duplicate SM ACK без изменения durable counters/queue не переписывает snapshot. - Bind2 и MAM metadata IQ читают только первый/последний native record вместо сканирования всей истории. Индекс не требуется; recovery/лимиты записи сохранены. - Добавлен `message-processing-slow`: обработка message дольше250мс, поля duration_ms/route, без payload/токенов. Это время обработки сервером, не peer receipt. - Новые сетевые регрессии включены в verify-local.sh/GitHub CI. Причины, изменение CSI policy, измерения и ограничения: [docs/PERSONAL-MESSAGE-LATENCY.md](docs/PERSONAL-MESSAGE-LATENCY.md).
47 lines
1.3 KiB
TOML
47 lines
1.3 KiB
TOML
[package]
|
|
name = "rust-xmpp"
|
|
version = "0.8.2"
|
|
edition = "2024"
|
|
description = "Experimental Rust XMPP server with Prosody-compatible storage"
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
anyhow = "1"
|
|
mlua = { version = "0.12", features = ["lua54", "vendored", "serde"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml_ng = "0.10"
|
|
toml = "0.9"
|
|
glob = "0.3"
|
|
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "sync", "time", "signal", "fs"] }
|
|
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"] }
|
|
rustls-pemfile = "2"
|
|
roxmltree = "0.21"
|
|
base64 = "0.22"
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
hmac = "0.12"
|
|
pbkdf2 = "0.12"
|
|
hex = "0.4"
|
|
subtle = "2"
|
|
stringprep = "0.1"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
chrono = { version = "0.4", default-features = false, features = ["std", "clock"] }
|
|
|
|
axum = { version = "0.8", features = ["ws"] }
|
|
futures-util = "0.3"
|
|
tokio-util = { version = "0.7", features = ["io"] }
|
|
http-body-util = "0.1"
|
|
hyper = { version = "1", features = ["client", "http1"] }
|
|
hyper-util = { version = "0.1", features = ["server-auto", "tokio", "service"] }
|
|
|
|
socket2 = "0.6"
|
|
|
|
hickory-resolver = { version = "0.24", features = ["tokio-runtime", "system-config"] }
|
|
rustls-native-certs = "0.8"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|