Fluux Messenger: A fast, modern, cross-platform XMPP client for communities and organizations. https://process-one.net
  • TypeScript 96.9%
  • Rust 2.2%
  • JavaScript 0.5%
  • Shell 0.2%
  • CSS 0.1%
Find a file
Mickaël Rémond b2a323c611
Fix SRV flip and double-connect on reconnect after sleep
Two bugs caused unreliable reconnection after system sleep:

1. SRV flip: The proxy restarted with the bare domain, triggering a
   fresh SRV lookup that could return a different record order
   (STARTTLS instead of DirectTLS), leading to host-unknown errors.
   Fix: Cache the resolved endpoint from the proxy and reuse it on
   reconnect. Falls back to fresh SRV if cached endpoint fails.

2. Double-connect: The Tauri keepalive handler fired during
   reconnection without the wake coordinator lock, causing a second
   triggerReconnect() that aborted the in-progress reconnection.
   Fix: Gate keepalive through tryAcquireWakeLock/releaseWakeLock,
   matching the pattern used by time-gap and visibility handlers.
2026-02-13 11:03:35 +01:00
.devcontainer feat(linux): add Debian packaging and aarch64 support (#51) 2026-01-31 11:56:56 +01:00
.github/workflows feat(ci): auto-populate release notes from RELEASE_NOTES.md 2026-02-12 16:20:04 +01:00
apps/fluux Fix SRV flip and double-connect on reconnect after sleep 2026-02-13 11:03:35 +01:00
assets docs: compress images in readme 2026-01-28 15:55:10 +01:00
docs Fix/background mam catchup (#181) 2026-02-13 10:20:19 +01:00
packages/fluux-sdk Fix SRV flip and double-connect on reconnect after sleep 2026-02-13 11:03:35 +01:00
packaging fix(ci): disable appstream-compose in Flatpak build 2026-02-12 15:51:55 +01:00
scripts feat(packaging): improve Linux packaging with native distro tools (#139) 2026-02-11 10:56:55 +01:00
.gitignore Ignore files from experiments 2026-02-12 10:59:55 +01:00
CHANGELOG.md Fix Changelog 2026-02-12 15:48:22 +01:00
CONTRIBUTING.md docs: fix project structure in CONTRIBUTING.md 2026-01-28 11:42:03 +01:00
fluux-messenger.doap doc: update list of supported extensions 2026-02-10 14:55:43 +01:00
LICENSE Preparing first public release 2026-01-26 15:09:22 +01:00
package-lock.json Refactor i18n to dynamically load locales and optimize tests 2026-02-12 10:02:13 +01:00
package.json release: bump version to 0.13.0 2026-02-12 15:33:05 +01:00
README.md Add Catalan language (#149) 2026-02-12 10:50:43 +01:00
RELEASE_NOTES.md Revise EU language coverage in release notes (#162) 2026-02-12 15:46:40 +01:00
SUPPORTED_XEPS.md doc: update list of supported extensions 2026-02-10 14:55:43 +01:00
tsconfig.base.json Preparing first public release 2026-01-26 15:09:22 +01:00
tsconfig.json Preparing first public release 2026-01-26 15:09:22 +01:00

Fluux Messenger Logo

Fluux Messenger

Release Downloads Repo Size Build Status License: AGPL v3 PRs Welcome

A modern, cross-platform XMPP client for communities and organizations

Table of Contents

Screenshots

Click on any screenshot to view full size

Chat Room XMPP Console
Chat Room XMPP Console
Multi-user Chat XMPP Debug Interface
Language Settings Login Screen Theme System
Language Settings Login Screen Theme System
27 languages including all EU official languages Simple Login Interface Light and dark themes, more to come
Admin Server Commands Chat Rooms Management Users Management
Admin Server Commands Chat Rooms Management Users Management
Manage your server right from your client Moderate your rooms easily User management in your client

Features

  • Modern XMPP Client - React-based UI with TypeScript
  • Cross-platform - Available on web and desktop (Tauri-based)
  • Extensive XMPP Protocol Support - 40+ XEPs implemented, including MAM, MUC, HTTP File Upload, message carbons, and reactions (and more to come)
  • Built-in XMPP Console - Debug interface for developers and power users
  • Multi-user Chat - Complete MUC support with roles, affiliations, @mentions, and bookmarks
  • File Sharing - HTTP uploads with thumbnails, progress indicators, and previews
  • Real-time Messaging - Typing indicators, message corrections, and delivery features
  • Offline Support - IndexedDB storage with automatic sync on reconnect
  • Theme System - Light/dark themes synchronized across devices
  • Internationalization - 26 languages including complete EU coverage (Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Icelandic, Irish, Italian, Latvian, Lithuanian, Maltese, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish)
  • Self-hostable - Connect to any XMPP server, no vendor lock-in
  • Open Source - AGPL-3.0 licensed

Quick Start

Get started with Fluux Messenger in a few simple steps:

  1. Download the latest release for your platform from the releases page. Compatible with Windows, macOS and Linux - choose your preferred format (installer, portable, or package).

  2. Install the application following your platform's standard installation process.

  3. Connect to any XMPP server with your credentials and start chatting!

Need help? Check out our support options below.

Technology Stack

  • Frontend: React 18 + TypeScript
  • Desktop: Tauri 2.x (Rust-based, lightweight)
  • Styling: Tailwind CSS
  • State Management: Zustand + XState
  • Build System: Vite + Vitest
  • XMPP: @xmpp/client + @fluux/sdk
  • Storage: IndexedDB with idb

Support and Community

We have many ideas and exciting additions planned for Fluux Messenger! We welcome all questions, feedback, and bug reports.

  • GitHub Issues - Use Issues to report bugs, request features, or track tasks. We use Issues as our lightweight roadmap for upcoming improvements and are always open to new ideas - don't hesitate to propose yours!
  • GitHub Discussions - Use Discussions for questions, ideas, or general conversations that don't require formal tracking. Great for brainstorming, getting help without opening an Issue, or suggesting documentation improvements.
  • XMPP Chatroom - Join fluux-messenger@conference.process-one.net for live chat with the community and maintainers.

Frequently Asked Questions

Have suggestions for this FAQ? Feel free to ask questions or propose additions in our Q&A Discussions.

Which XMPP servers are compatible with Fluux Messenger?

We aim to create an XMPP client that respects standards, but currently the project has been tested exclusively with ejabberd. We're eager to receive feedback on compatibility with other servers. If you test Fluux Messenger with a different XMPP server, please share your experience in the Discussions!

Will there be other installations methods? Can I run it on my own server?

Yes. It is already technically possible to host Fluux Messenger on your own web server. After running a quick npm ci in the appropriate directory and serving the correct build folder, you can access it as a web application. This also makes it possible to run it as a PWA, including on mobile devices, directly from your own server. Documentation for this setup is still missing and will be added later.

Looking ahead, we also plan to make Fluux Messenger available on F-Droid, and possibly on the Google Play Store as well.

Contributing

Contributions are welcome! See CONTRIBUTING for detailed guidelines.

For getting started with development, you can check out our Developer Guide.

License

Fluux Messenger is licensed under the GNU Affero General Public License v3.0 or later. See LICENSE

Star History

Star History Chart


Built with ❤️ by ProcessOne.