nul
End-to-end encrypted messaging, voice, and video.
Self-hosted. Zero-knowledge. Built in Rust.
Zero-knowledge
The server is a dumb relay. It never decrypts your messages, files, or calls. Not even the server operator can read your conversations.
Self-hosted
One binary. One config file. Your infrastructure, your rules. No cloud dependency, no vendor lock-in.
Memory-safe
Written entirely in Rust with no OpenSSL dependency. No buffer overflows. No use-after-free. Pure rustls for TLS.
// security
Seven layers between you and everyone else
Every message passes through a cryptographic stack designed to protect against network surveillance, server compromise, and metadata analysis. The server never holds keys to your content.
primitives
// how it works
What happens when you send a message
- 01
You press send
Your message is encrypted locally with a unique key derived from the Double Ratchet — a new key for every single message.
- 02
Padded to a fixed size
Random bytes are appended so every message is the same size on the wire. A "hello" looks identical to a paragraph.
- 03
Signed twice
Your identity key and session key both sign the ciphertext. The recipient can verify it came from you and wasn't tampered with.
- 04
Relayed blind
The server forwards the encrypted blob. It can't read the content, identify the message type, or even tell how long your actual message was.
- 05
Decrypted on arrival
Only the recipient's device holds the key. The message is verified, decrypted, and the ratchet advances — that key is never used again.
// features
Everything you use, nothing you don't trust
Messaging
- Channels and direct messages with full E2E encryption
- Replies, mentions, message editing and deletion
- Full-text search across your message history
- Inline image previews and file sharing up to 100 MB
Voice & video
- Always-on voice channels with voice activity detection
- Video calls and screen sharing at up to 60 fps
- Per-user volume control with speaking indicators
- Opus audio, H.264 video — no transcoding on the server
Communities
- Guild system with categories, roles, and permissions
- Invite codes with configurable expiry and usage limits
- Identity-key-based bans — no IP workarounds
- Audit logging with 90-day retention
// comparison
What you give up: nothing
| nul | Discord | |
|---|---|---|
| End-to-end encryption | ✓ | — |
| Zero-knowledge server | ✓ | — |
| Self-hosted option | ✓ | — |
| Open source | ✓ | — |
| Memory-safe (Rust) | ✓ | — |
| No data mining | ✓ | — |
| Voice channels | ✓ | ✓ |
| Video & screen sharing | ✓ | ✓ |
| Guilds & roles | ✓ | ✓ |
| Desktop app size | ~10 MB | ~150 MB |