Convey

A modern, lightweight IRC client built in Rust — with end-to-end encrypted secure channels, voice chat, and P2P messaging.

What is Convey?

Convey is an ultra-modern IRC client written in Rust with a native desktop GUI. Beyond standard IRC, it introduces NAIS Secure Channels — an end-to-end encrypted overlay that uses IRC only for peer discovery and presence signaling while routing all message content through direct P2P connections or encrypted relay hubs. No encrypted payloads ever traverse the IRC server.

🔒

End-to-End Encryption

Secure channels with forward secrecy powered by X3DH key exchange, Double Ratchet, and MLS group protocol. Zero trust — relay hubs only ever see ciphertext.

🎙

Encrypted Voice Chat

Peer-to-peer voice communication with Opus codec, noise filtering, and full encryption — all routed through the same secure transport layer.

Built in Rust

Async from top to bottom with Tokio. Native desktop UI via Dioxus. Fast, safe, and lightweight with minimal resource usage.

🖱

NAT Traversal

ICE, STUN, and TURN support with QUIC/UDP direct P2P connections. Graceful fallback to encrypted relay when direct connectivity isn't possible.

💻

Cross-Platform

First-class Windows, Linux, and Android support. Native look and feel on every platform with a single Rust codebase.

📜

Open Source

Licensed under Apache 2.0. Full source code available, auditable cryptography, and community-driven development.

📸

Privacy-First Image Sharing

Built-in Convey image paste board strips EXIF metadata, generates tokenized URLs, and deduplicates uploads — self-hostable and privacy-respecting.

🌐

Federated Relay Hubs

Decentralized relay infrastructure with federated hubs. Run your own hub or use community-operated ones — all traffic remains encrypted end-to-end.

How It Works

Convey separates discovery from content delivery. IRC handles presence and peer discovery while all encrypted message content flows through a separate, secure transport layer.

1

Connect to IRC

Join any IRC network as usual. Standard channels and messaging work exactly like any other IRC client.

2

Discover Peers

When you join a secure channel, Convey uses IRC signaling (CTCP) to find other secure channel participants and exchange connection info.

3

Establish P2P

Direct QUIC/UDP connections are negotiated with ICE/STUN/TURN for NAT traversal. If P2P fails, traffic is relayed through an encrypted hub.

4

Communicate Securely

Messages, voice, and files flow through the encrypted transport — never through the IRC server. MLS provides group forward secrecy.

Download

Grab the latest release for your platform.

Or browse all releases on GitHub Releases.

Frequently Asked Questions

What makes Convey different from other IRC clients?

Convey layers NAIS Secure Channels on top of standard IRC. While you can use it as a regular IRC client, enabling a secure channel creates an encrypted overlay — IRC is only used for peer discovery, and all message content flows through direct P2P connections or encrypted relay hubs. No plaintext ever hits the IRC server for secure channels.

What encryption does Convey use?

Convey uses a layered encryption approach: X3DH (Extended Triple Diffie-Hellman) for initial key exchange, Double Ratchet for per-peer forward secrecy, and MLS (Messaging Layer Security) for group key management. Transport is secured with QUIC (TLS 1.3). All cryptographic primitives use auditable, well-established libraries: X25519, Ed25519, ChaCha20-Poly1305, and HKDF-SHA256.

Can relay hub operators read my messages?

No. Relay hubs operate on a zero-trust model — they only ever see ciphertext. Messages are encrypted end-to-end before leaving your device. Even if a hub is compromised, past and future messages remain safe thanks to forward secrecy.

Do I need to run my own relay hub?

No. Convey attempts direct P2P connections first using ICE/STUN/TURN for NAT traversal. Relay hubs are only used as a fallback when direct connectivity isn't possible. You can use community-operated hubs, or run your own — the relay-hub is included in the source.

Does the voice chat work the same way?

Yes. Voice chat uses the same encrypted transport as text messages — Opus-encoded audio with noise filtering, fully encrypted and routed through the secure P2P or relay layer. Voice is never sent through the IRC server.

What platforms are supported?

Convey runs on Windows (x86_64), Linux (x86_64), and Android (ARM64). The UI is built with Dioxus, giving native performance on all platforms from a single Rust codebase.

Can I still use regular IRC channels?

Absolutely. Convey is a fully-featured IRC client first. Standard IRC channels, private messages, and all the usual IRC features work normally. Secure channels are an opt-in addition — you choose when to use them.

How does image sharing work?

Convey includes an integrated image paste board service (Convey Images) that strips EXIF metadata, generates randomized tokenized URLs, and deduplicates uploads. You can self-host it or use a community instance. Shared images go through the paste board service so they're accessible via URL in both regular and secure channels.

Is Convey really free and open source?

Yes. Convey is licensed under Apache 2.0. The full source code — including the client, relay hub, secure channel service, and image paste board — is available on GitHub. All cryptography is auditable and uses well-known libraries.

How do I build from source?

Clone the repository and run cargo build --release. Convey is a standard Rust project with a Cargo workspace. See the README for detailed build instructions and dependencies.