1
0
Fork
You've already forked torchat-rs
0
No description
  • Rust 100%
2026年05月03日 18:10:34 -05:00
.cargo Refactor and add onion service test 2025年01月21日 18:19:45 -06:00
.github/workflows Initial commit copied from voynich 2024年11月29日 18:50:48 -06:00
fixtures Initial commit copied from voynich 2024年11月29日 18:50:48 -06:00
images Identity menus working, plus tooltips! 2025年03月15日 19:02:05 -05:00
src clippy 2026年05月03日 17:23:58 -05:00
.gitignore Initial commit copied from voynich 2024年11月29日 18:50:48 -06:00
Cargo.lock Upgrade version of tor-client-lib 2026年05月03日 18:10:34 -05:00
Cargo.toml Upgrade version of tor-client-lib 2026年05月03日 18:10:34 -05:00
LICENSE-APACHE Initial commit copied from voynich 2024年11月29日 18:50:48 -06:00
LICENSE-MIT Initial commit copied from voynich 2024年11月29日 18:50:48 -06:00
README.md Update README 2025年11月26日 16:02:50 -06:00

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 mostly a way for me to try out new ideas for secure chat, cryptography and the like. It's not intended to be a production-ready application (yet).

Be forewarned.

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...