Messenger Comparison Table
This is not intended to be an extremely comprehensive list, but enough to get a grasp on the situation.
The only client for now that we recommend is Conversations, a top notch XMPP client, fully supports the OMEMO XEP, is easy on the battery, and doesn't force you into a walled garden. It is not the easiest thing getting your friends and family to switch apps, so at the very least any apps with end-to-end encryption (E2EE) support should always be preferred over apps without.
Remember to always verify your partner's E2EE keys when possible, as it is arguably useless otherwise.
For a much larger list of messengers see these overviews by Kuketz', by @eylenburg, or by *IM*, and their "Why Not?" list.
Last updated: 2024/04/15
Name | FOSS Client | Non-Free Dependencies | FOSS Server | Protocol | Federated | Decentralized | Encryption | E2EE by Default | E2EE uses PFS | E2EE is Quantum Resistant | Desktop Client | Web Client | File Sharing | Voice Calling | Video Calling | Multi-Device Support | Offline Messaging | Phone Number |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Conversations | GPLv3 | F-Droid: No, Play: Yes | Yes: prosody/ejabberd | XMPP | Yes | Yes | TLS + OMEMO E2EE | In private chats | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Not needed |
Element | Apache | F-Droid: No, Play: Yes | Yes: synapse | Matrix | Yes | Yes | TLS + Olm/Megolm E2EE | In private chats | 1:1 chats only? | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Not needed |
Signal | GPLv3 | Play/Website: Yes, GMS | Code over wall | Custom | No | No | TLS + Signal E2EE | Always | Yes | Yes | Yes | No | Yes | Yes | Yes | With Phone | Yes | As identifier |
SimpleX | AGPLv3 | No | Yes: SimpleXMQ SMP | Custom | Yes | Yes | Custom E2EE | Always | Yes | Yes | Yes | No | Yes | Yes | Yes | WIP | Yes | Not needed |
Jami/Ring | GPLv3 | F-Droid: No, Play: Yes | Yes: opendht | Custom | N/A | Yes | TLS + Custom E2EE | Always | Unknown | No | Yes | No | Yes | Yes | Yes | Yes | No | Not needed |
Session | GPLv3 | F-Droid: No, Play: Yes | Unclear | Custom | N/A | Yes | Custom E2EE | In private chats | No | No | Yes | No | Yes | WIP | WIP | Yes | Yes | Not needed |
Delta Chat | GPLv3 | F-Droid: No, Play: Yes | N/A | Yes | Yes | TLS + OpenPGP E2EE | To contacts with AutoCrypt | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Not needed | |
Briar | GPLv3 | No | N/A | Custom | N/A | Yes | Custom E2EE | Always | Yes | No | WIP | No | Images Only | No | No | No | via Mailbox on 2nd device | Not needed |
Silence (deprecated) | GPLv3 | No | N/A | SMS | Yes | Yes | Signal E2EE | To contacts with Silence | Yes | No | No | No | Images Only | No | No | N/A | Maybe | As identifier |
Wire | GPLv3 | F-Droid: No, Play: Yes | Yes | Custom | No | No | TLS + Custom E2EE | Always | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Not needed |
Threema | AGPLv3 | F-Droid*: No, Play: Yes | No | Custom | No | No | TLS + Custom E2EE | Always | Yes | No | Yes | Yes | Yes | Yes | Yes | With Phone | Yes | Not needed |
Telegram | GPLv2 | F-Droid: No, Play: Yes | No | Custom | No | No | TLS + Custom E2EE | No | Per 100/msgs in secret chats | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | As identifier |
No | Yes | No | Custom | No | No | TLS + Signal E2EE | Always | Yes | No | Yes | Yes | Yes | Yes | Yes | With Phone | Yes | As identifier | |
Facebook Messenger | No | Yes | No | Custom | No | No | TLS + Signal E2EE | For 1:1 | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | For signup |
Google Chat | No | Yes | No | Custom | No | No | TLS | No | N/A | N/A | No | Yes | Yes | Yes | Yes | Yes | Yes | For signup |
Skype | No | Yes | No | Custom | No | No | TLS + Custom E2EE | No | Unknown | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | For signup |
Criteria:
- Offline messaging is the ability for a party to send a message to an offline party, go offline themself, and the other party to later receive the message when back online while the sending party was still offline.