I've lately been
insufferable exploring other options for instant messaging now that Google Hangouts is going into that grand Google product limbo in the sky (Or is that cloud? Who can say?) I've been looking at alternatives for instant messaging that aren't SMS for keeping in contact with folks. One of those platforms that I've been playing with is Jami. Jami is an implementation of the Tox protocol EDIT: OpenDHT Protocol which means it's a decentralized messaging platform. What that means is there is no server used for communicating between devices; each device becomes part of a larger distributed messaging platform. This is kind of cool because it means there's no servers that get all of the traffic on the network. The only "centralized" piece is a Etherium blockchain piece as a lookup for which usernames have been taken on the network and what addresses they map to. That's it. It's rather clever how they managed this. They have documentation on the protocol and the application.
I've been playing around with it and I have some thoughts about how it works.
Getting set up is really easy. Since there's no centralized server your device acts as the location for your account and credentials. This means it's critical to back up your file or at least synchronize your account with multiple machines. If none of the machines have your account credentials your account is essentially terminated and you'll need to create a new one. The upside of this is if you're sure you no longer want to use Jami just delete the app and you're done.
Your devices need to be on in order to receive messages. Messages have a Time to Live (TTL) where they will no longer be propagated on the network. Once the TTL expires so does the message.
File transfer needs direct access between both machines, which can get a little tricky with NAT and what-not. We haven't been able to successfully do a file transfer yet. (EDIT: This is likely a bug as Jami does support NAT. I'll need to test this more.)
Since Jami is always on it requires more battery than most messaging applications. And since it's distributed it also requires more data than most messaging applications. And since it routes traffic to other Jami participants you'll want to be aware of your data usage should you decide to use this on a mobile network.
It doesn't support group messages, nor does it handle chat history between different clients. Consider your Jami conversations ephemeral. (EDIT: There is a design draft in the works for group chat and shared contact history, but for now this is isn't working.)
It's released under a GPLv3 license and is part of the GNU project. For me that's a huge win.
Overall I'm quite impressed with Jami. I hope it continues to grow and become more reliable, and gains more participants so that running it on a mobile device is more gentle. It may not be for everyone but having a distributed platform or messaging folks without the need for servers is something to consider in this age of surveillance and corporate bottom-lines.
If you decide to check it out feel free to let me know.