Files
rust-xmpp/docs/CHANGELOG-0.4.0.md
2026-10-20 15:59:55 +07:00

3.8 KiB

0.4.0

Экспериментальная версия; полная взаимозаменяемость с Prosody не заявляется.

  • SASL2 Bind2: опциональный модуль sasl2_bind2 (alias bind2), inline SM, CSI, Carbons, MAM metadata, случайные ресурсы и замена сессии того же аккаунта с тем же валидным UUIDv4 устройства. SASL2 inline resume пока нет.
  • PubSub/PEP: full-JID blocklist во всех путях доставки и replay, соблюдение include_payload при replay, native deliver_notifications/deliver_payloads, независимые правила notify_retract, корректные publish-options ошибки и сравнение native строковых лимитов max_items.
  • MUC: защита от понижения/исключения равного модератора без admin/owner, сохранность бинарной occupant_id_salt и приоритет native _affiliations. Нативные MUC-блокировки домена запрещают вход и исключают текущих участников.
  • Федерация: общий deadline аутентификации, проверка положения TLS/SASL features в XML, нормализация регистра доменов, проверка DNS labels и безопасное переподключение до передачи stanza актору записи.
  • Push: только текст настоящего body/subject в namespace сообщения включается в summary/importance; содержимое чужих XML extensions не раскрывается.
  • Сообщения: fallback отсутствующего full JID на активные ресурсы, native правила headline/error/groupchat; offline-доставка bodyless receipts и no-permanent-store без сохранения последнего в MAM.
  • HTTP: обрезка допустимого byte range до конца файла, квоты просроченных незагруженных слотов, синхронизация PUT с очисткой, регистронезависимый Bearer и сохранение XML namespaces WebSocket/BOSH. Поддержаны URL с завершающим слешем и WS CORS OPTIONS. BOSH продолжает обработку RID после HTTP disconnect, сохраняет ответ для повторного запроса и не выполняет stanza дважды. Число обработчиков и время выполнения ограничены.
  • Каталог данных блокируется между процессами Rust, включая CLI create-user. Блокировка не защищает от одновременно работающей Prosody.
  • Нагрузочный сценарий поддерживает несколько аккаунтов и несколько раундов сообщений; проверяется также адрес реального отправителя.
  • bash scripts/verify-local.sh повторяет сборку и доступные локальные протокольные проверки. HTTP-тест требует Python package websockets.

Изменений формата пользовательских файлов не требуется. Существующий конфиг не включает Bind2 автоматически. Для переключения рабочего сервера всё ещё требуются проверка копии данных и проверки целевых клиентов/окружения; актуальные пределы перечислены в COMPATIBILITY.md.