Темы



another.im 0.8.0 - кроссплатформенный Jabber-клиент

Коротко сгенерировано ИИ по тексту статьи
  • Команда another.im выпустила первый публичный релиз XMPP-клиента 0.8.0 на базе библиотеки libtacky.
  • Клиент на TypeScript и Tauri предназначен для Linux, Android, Windows и macOS; сборка для macOS появится позже.
  • Клиент поддерживает OMEMO 0.3 и 0.9, голосовые и видеозвонки, передачу файлов, синхронизацию черновиков и закреплённые сообщения.

Почему это важно: Авторы называют anotherim-js более функциональной заменой Conversations на Android и Dino на десктопе, сохраняя обратную совместимость.

good-penguin.png

Команда 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 на десктопе, при этом сохраняя с ним обратную совместимость.

>>> Исходный код и готовые сборки: dev.another.im

©  Linux.org.ru