Censorship-Resistant P2P Chat & File Transfer
AzadiConnect is a cross-platform application that enables secure, anonymous peer-to-peer communication over the Tor network. Designed for users in restricted environments, it provides end-to-end encrypted messaging with built-in censorship circumvention.
آزادی به معنای ارتباط بدون سانسور است. (Azadi means communication without censorship.)
- 🔒 End-to-End Encryption — All traffic encrypted by Tor Hidden Services (v3 onions)
- 🌐 Anonymous Identity — Each user gets a unique
.onionaddress - 💬 Real-Time Chat — P2P messaging over Tor
- 📎 File Transfer — Send files up to 7MB (Base64 encoded)
- 🌨️ Snowflake Transport — Bypass censorship using WebRTC proxies
- 🌍 Bilingual UI — English and Farsi (فارسی) with RTL support
1. Install Tor:
# Linux (Ubuntu/Debian) sudo apt install tor # Linux (Fedora) sudo dnf install tor # macOS brew install tor # Windows: Download from https://www.torproject.org/download/ # Extract, find tor.exe in: Tor Browser\Browser\TorBrowser\Tor\tor.exe # Extract, find tor.exe in: Tor Browser\Browser\TorBrowser\Tor\tor.exe 2. Linux (.deb):
Download the latest .deb package from Releases.
# Install with apt (handles dependencies automatically) sudo apt install ./AzadiConnect-linux-amd64.deb3. Install Snowflake (Optional — for censored regions):
Download from: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/releases
# Create resources directory and install mkdir -p src/azadiconnect/resources cp ~/Downloads/snowflake-client_linux_amd64 src/azadiconnect/resources/snowflake-client chmod +x src/azadiconnect/resources/snowflake-client# Clone and enter directory cd toga_file_share # Create virtual environment python -m venv venv source venv/bin/activate # Linux/macOS # OR: venv\Scripts\activate # Windows # Install dependencies pip install briefcase # Run in development mode briefcase devtoga_file_share/ ├── README.md # This file ├── pyproject.toml # Project config & dependencies ├── tests/ # Unit tests │ └── test_core.py └── src/azadiconnect/ ├── app.py # Main UI (Toga) ├── crypto.py # ECC key generation ├── language_manager.py # EN/FA localization ├── network.py # Connection state machine ├── p2p_service.py # P2P TCP over SOCKS5 ├── tor_manager.py # Tor process & Hidden Service ├── locales/ # Translation files │ ├── en.json │ └── fa.json └── resources/ # Snowflake binary location # Activate virtual environment source venv/bin/activate # Run unit tests pytest tests/ -v# Build native package briefcase build # Package for distribution briefcase package┌─────────────────────────────────────────────────────────────┐ │ Toga UI (app.py) │ │ ┌─────────┐ ┌────────────────────────────┐ ┌──────────┐ │ │ │ Tabs │ │ Chat Interface │ │ Settings │ │ │ │ EN | FA │ │ [📎] [Message Input] [Send]│ │ .onion │ │ │ └─────────┘ └────────────────────────────┘ └──────────┘ │ └────────────────────────┬────────────────────────────────────┘ │ ┌────────────────────────▼────────────────────────────────────┐ │ NetworkManager │ │ State: DISCONNECTED → STARTING_TOR → READY │ │ Routes messages between UI and P2PService │ └────────────────────────┬────────────────────────────────────┘ │ ┌────────────────────────▼────────────────────────────────────┐ │ P2PService │ │ Server: TCP on 127.0.0.1:8080 (receives from Hidden Svc) │ │ Client: SOCKS5 → Tor → peer.onion:80 │ └────────────────────────┬────────────────────────────────────┘ │ ┌────────────────────────▼────────────────────────────────────┐ │ TorManager │ │ Binary detection → Config → Bootstrap → Hidden Service │ │ Optional: Snowflake pluggable transport │ └─────────────────────────────────────────────────────────────┘ | Issue | Solution |
|---|---|
| "Mock Mode" appears | Ensure tor is installed and in PATH |
| Snowflake not activating | Check binary at src/azadiconnect/resources/snowflake-client |
| Connection timeout | Tor can take 30-60 seconds; check internet |
| File transfer fails | Max size ~7MB; check console for errors |
- Identity: IP hidden via Tor onion routing
- Transport: Encrypted by Tor Hidden Services (v3)
- Communication: Only peers can read messages
- Local data is memory-only (not persisted)
- No public key verification between peers
- Forward secrecy relies on Tor transport
- Verify peer's
.onionaddress through a secure channel - Don't share your
.onionaddress publicly - Keep Tor and Snowflake binaries updated
MIT License. See LICENSE file.
This software is provided for educational and research purposes. It is designed to enable secure communication in restricted environments. The developers are not responsible for misuse of this software. Use responsibly and in accordance with applicable laws.
Made with ❤️ for freedom of communication