Команда another.im, ранее поддерживавшая форки Conversations и Dino, рада сообщить о первом публичном релизе XMPP-клиента another.im 0.8.0, основанный на библиотеке libtacky.
Что такое libtacky?
Это state-of-art высокоуровневая библиотека для создания соверменных XMPP-клиентов (и компонентов), написанная на Rust и Tcl. Она представляет стандартный JSON API, по аналогии с tdlib для Telegram.
Библиотека берёт на себя всю работу с XMPP на низком уровне: управление соединением, сессией, архивом сообщений (MAM), E2E шифрованием (поддерживается OMEMO версий 0.3 и 0.9, Olm/Megolm и MTProto), работой с аудио/видео (используя WebRTC либо libdatachannel в качестве медиа-бэкенда), а также безопасным хранением самой базы данных приложения с помощью sqlcipher.
Библиотека поддерживает около 130 XEP и покрыта Unit-тестами на >=95% и интеграционными тестами к серверам Prosody и ejabberd, а также постоянно тестируется на совместимость с стандартами XMPP и совместимостью с существующими Jabber-клиентами.
Оригинальным автором является @wusspuss (XMPP-клиент на Tcl/Tk, который заводится даже на Android), затем библиотека стала развиваться в рамках проекта another.im.
Лицензирована под GNU GPLv3.
Эталонный клиент anotherim-js
Клиент написан на TypeScript с использованием Tauri.rs и компилируется в нативное приложение для Linux, Android, Windows и macOS.
Что умеет:
- чаты 1:1 и групповые чаты (MUC);
- поддержка OMEMO версий 0.3 (axolotl) и 0.9 («OMEMO 2») одновременно;
- голосвые и видеозвонки;
- передача файлов;
- работа с Push-уведомлениями (поддерживаются Google и unified push);
- обзор доступных XMPP сервисов (Service Discovery);
- управление ростером и закладками;
- база данных приложения зашифрована, ключ хранится в системном кейчейне.
Нестандартные вещи для Jabber-клиента:
- синхронизация черновиков между устройствами;
- синхронизация состояния чатов (замьючены, прикреплены и т.д.);
- закреплённые сообщения;
- поддержка «Секретных чатов» (OTRv3);
- стикеры и реакции.
И наверняка многое другое — читайте полное описание в репозитории anotherim-js
Есть готовые сборки под все платформы (под macOS будет чуть позже).
Лицензирован под MPL (совместим с GPLv3 для слинкованной libtacky)
Другие клиенты на libtacky
Энтузиасты в качестве эксперимента и just for fun также создали клиент на Motif: anotherim-motif и консольный клиент anotherim-tui.
Также в разработке нативный клиент для iPhone (и macOS): anotherim-swift.
Однако последнее слово остаётся за Apple — обработка заявок в AppStore у них невероятно долгая.
tackygram
tackygram — это полноценный транспорт в сеть Telegram с отличной интеграцией в Jabber.
Поддерживается авторизация по QR-коду или номеру телефона, чаты, групповые чаты, стикеры, файлы, звонки и даже секретные чаты.
Заслуживает отдельной статьи.
Искусственный интеллект
В данном проекте использовался так называемый «искуственный интеллект» (LLM) и команда этого не стесняется: без использования AI-агентов релиза пришлось бы ждать ещё несколько лет.
Мы живём в 2026 году, и воспользоваться современными инструментами вкупе с многолетним опытом разработки в XMPP, авторы считают не зазорным.
В связи с этим, просим понять и простить отвратительные нейрослопные комментарии в коммитах и релиз-ноутсах: на правку некоторых вещей просто не хватает человеческих ресурсов (но эта новость написана без применения ИИ).
Основные ресурсы команда потратила на библиотеку libtacky, а совместимость с стандартами RFC и XEP (а также взаимодействие с другими клиентами на любых серверах) проверяют живые люди.
Используется test-driven разработка: кода тестов (unit- и интеграционных) больше, чем кода библиотеки.
Библиотека протестирована с серверами Prosody, ejabberd и MongooseIM.
Предупреждение
Проект находится на ранней стадии разработки и предоставляется «как есть».
Читайте документацию и исходный код, и никому не верьте.
anotherim-js изначально планировался как демонстрация возможностей библиотеки, однако уже сейчас это полноценная и более функциональная замена Conversations на Android и Dino на десктопе, при этом сохраняя с ним обратную совместимость.





