torchat

Crates.iotorchat
lib.rstorchat
version0.1.0
created_at2025-08-13 00:26:23.23859+00
updated_at2025-08-13 00:26:23.23859+00
descriptionLibrary for creating anonymous, end-to-end encrypted and authenticated chat applications
homepage
repositoryhttps://codeberg.org/jacklund/torchat-rs.git
max_upload_size
id1793103
size350,639
Jack Lund (jacklund)

documentation

README

Torchat-rs

Pure Rust implementation of anonymous, authenticated, encrypted, peer-to-peer chat using Tor and iced.

Why Would I Need This?

We live in a world where, more and more, our personal communications, what we look at, read, who we talk to, are under surveillance, not just from governments, but from the social media companies. What we browse, who we talk to, what we talk about are increasingly under scrutiny. Governments are increasingly getting access to that information and acting on it, arresting, imprisoning, even deporting people for having the "wrong" opinions and interests.

Most "encrypted" chat applications (with the exception of Signal - if you're not using Signal, you really should be) are either vulnerable to attack, or are designed to allow the company that owns it to decrypt and share your chats when requested by a government.

Torchat uses encryption and protocols which have been demonstrated to be secure. It's peer-to-peer, so there is no central server which has any data of any kind about who is talking to whom. And, because it uses Tor onion services, your identity and location (IP address) are protected.

How Does it Work?

It allows you to create "identities" using Tor onion services. These services become what people connect to to talk to you. Since it's an onion service, your location and identity is completely hidden by the Tor network (hence, anonymous). The cryptographic private key used to create the onion service becomes your "identity" as far as the people in the chat are concerned. The connection to the peers you chat with is authenticated using that key, ensuring the people you chat with that it is, in fact, you (whether they know who you actually are or not is entirely up to you). The connection between peers is encrypted using the noise protocol.

You can also have as many identities as you like, you can use different identities for different contexts, or for different groups of people you want to talk to.

IMPORTANT SAFETY NOTE

Note that this is an early version of Torchat, and it has not been audited for security vulnerabilities, so, for now, you should use it at your own risk.

Installation

Torchat-rs requires you to install Tor on your system, either via your OS's package manager or from the Tor site.

As far as installing torchat itself, for the moment, you'll need to build it yourself. It currently builds on Linux only, although the plan is to port it to other platforms once I get the time. You'll need to install Rust first, then:

git clone https://github.com/jacklund/torchat-rs.git
cd torchat-rs
cargo build
cargo run

Roadmap

  • Get UI working with iced
  • Create onion service for chat session
  • Use noise protocol for authenticated encryption
  • Make UI less clunky
  • Store identities using password encryption
  • Store contacts using password encryption
  • Add group chat
  • Port code to build on Mac and Windows
  • Set up official builds

Technical Details

Forthcoming...

Commit count: 0

cargo fmt