Tox: Text, voice, and video chats without a central server
Peer Group
The Tox protocol uses file-sharing techniques for messaging and audio-video chats, which gives users a greater degree of privacy and freedom.
The popular messaging application WhatsApp has recently alienated many users with its new terms of service and privacy policy. It's a situation that once again illustrates that when you put yourself in the hands of a proprietary service, you put yourself at the mercy of the operator. If you are dissatisfied with a change, either you grudgingly continue using the service, or you move to a different application with similar features.
In the case of WhatsApp, there are quite a few alternatives, and many were suddenly overrun with WhatsApp users looking for another option. This article looks at the different categories of messaging services, and then delves into one particular option – using peer-to-peer messaging apps based on the Tox protocol.
Open Source Clients
Signal [1], Threema [2], and Telegram [3] are widely regarded as good alternatives to WhatsApp, partly on the grounds that they operate more freely and openly than the Facebook service. This typically means releasing the app source code under open source licenses and disclosing the underlying protocol so that other app developers can develop alternative clients (see Table 1).
Table 1
Instant Messengers Compared
Service | Server | Client(s) | Protocol | E2EE* |
---|---|---|---|---|
Centralized |
||||
|
Proprietary |
Proprietary |
Proprietary |
Yes |
Signal |
Open source |
Open source |
Signal |
Yes |
Threema |
Proprietary |
Open source |
App Remote Protocol |
Yes |
Telegram |
Proprietary |
Open source |
MTProto 2.0 |
Yes |
Federated |
||||
Dino |
Open source |
Open source |
XMPP |
Yes |
Quicksy |
Open source |
Open source |
XMPP |
Yes |
Element |
Open source |
Open source |
Matrix |
Yes |
Peer-to-Peer |
||||
Briar |
None |
Open source |
Bramble |
Yes |
Jami |
None |
Open source |
OpenDHT |
Yes |
Tox |
None |
Open source |
Tox |
Yes |
*E2EE = end-to-end encryption |
However, discussions of social media alternatives often leave out one very important component: the server. All providers keep a watchful eye on the server and therefore on the data. Telegram and Threema do not disclose the source code for the server. Signal does provide the source code for the server under a free license, so users could theoretically build their own Signal servers. However, the software is designed in such a way that the different instances cannot talk to each other. If the same principle applied to email, then users of one service (such as Yahoo Mail) would not be able to send messages to those of another service (e.g., Gmail).
Federated Systems
True freedom exists only if the service discloses the source code of the server and client(s) and the underlying protocols. In addition, the network systems must operate in a federated manner, that is, in a distributed manner (federation). However, this kind of freedom goes against the business interests of commercial providers. Therefore, none of the major providers offer this level of freedom. What remains are services and programs such as Dino [4] and Quicksy [5], which are based on the classic XMPP (formerly Jabber) [6], and applications such as Element, which is based on the Matrix [7] open communications protocol.
Peer-to-Peer Networks
Instant messengers can do without any kind of a central authority. They work in a similar way to file-sharing programs like eDonkey or BitTorrent. Messages or voice and video chats travel directly from computer to computer (peer-to-peer) over the network. The contacts are organized with the help of a distributed hash table (DHT). End-to-end encryption ensures that privacy is maintained and that only the sender and the recipient can read the messages.
In this category, the selection of programs is thinned out even further. The last tools standing are Briar [8], Jami [9], and Tox [10]. Briar is available exclusively for Android-based smartphones and tablets. I have already covered Jami in detail in a previous issue [11], so now it is time for a closer look at Tox.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Wine 10 Includes Plenty to Excite Users
With its latest release, Wine has the usual crop of bug fixes and improvements, along with some exciting new features.
-
Linux Kernel 6.13 Offers Improvements for AMD/Apple Users
The latest Linux kernel is now available, and it includes plenty of improvements, especially for those who use AMD or Apple-based systems.
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.