Distributed E2EE messenger, native (Flutter+Rust). Built for users, not robots.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Distributed, encrypted communication. No central servers or APIs. No accounts.
When I started working on Hollow back in February, I didn't think how large this project would become. It all began with a random thought during school about having a fully peer-to-peer messenger where you're in control of all your data. Then I started planning, researching, locking in the tech stack, and grinding more than full-time to build it.檢視完整 README ↗Hollow is fully distributed, end-to-end encrypted communication software. There are no central servers that store your messages or files. Members of a server collectively host it. The relay forwards encrypted blobs between peers. It cannot read or modify them, and it never writes them to disk.
Your identity is a cryptographic keypair. Zero registrations. One recovery phrase, or an export of your identity into a .hollow file, and you own your account forever.
The relay can't read messages, files, profiles or calls. It can't forge anything either, because every frame it forwards is signed by the device that sent it. To deliver messages it handles some routing details: a random ID for each device, the IP address every server you connect to sees, which device IDs share a room under random room codes, when data is sent and how much, and a phone's push token. None of it includes your name, phone number or what you wrote, and all of it stays in memory and is never logged to disk. The whitepaper lists exactly what the relay sees and covers the threat model.
If you find a vulnerability, please report it privately as described in SECURITY.md.
| Platform | Links |
|---|---|
| Windows (10+) | .exe / .zip |
| macOS (12+) | .dmg |
| Linux | Flatpak / .tar.gz |
| Android (7+) | .apk |
| iOS (16+) | TestFlight |
What changed in each version is on the releases page.
Hollow works with a relay you host yourself, for a network of your own. Only the people connected to your relay can reach each other, and the official network is not involved. You need a small Ubuntu or Debian server with a public IP address. The address can be a free DuckDNS name, so there is nothing to buy beyond the server.
A guided setup does the work. It checks the machine, asks a few questions, shows you its plan, then installs the relay, gets the certificate and hardens the server:
git clone --recurse-submodules https://github.com/VitalikPro13/HOLLOW.git
cd HOLLOW
sudo bash relay-uws/install.sh
When it finishes, point the app at your relay in Settings, under Network. Later, sudo hollow-relay-setup shows the relay's status and offers updates and settings. relay-uws/SELF_HOSTING.md is the full guide, including Docker, setting it up by hand and taking over a relay you already run. If you run one already, its operator changelog lists what changed.
The relay is written in C++ on uWebSockets. It handles TLS 1.3 itself, with no reverse proxy, and fits about 572,000 concurrent connections on an $8/month VPS (BENCHMARK.md).
When I started working on Hollow back in February, I didn't think how large this project would become. It all began with a random thought during school about having a fully peer-to-peer messenger where you're in control of all your data. Then I started planning, researching, locking in the tech stack, and grinding more than full-time to build it.
You can look at the old commits. I tried libp2p that kept failing and then the layout has been rebuilt too. Claude was basically my development tool that always helped me. I might not be the best programmer, but I have engineering thinking and creativity to know what needs to be built and how. Every architecture decision was mine, I traced every bug/performance issue and then we fixed it together, but I'm the one who's in control of what I release. And I'm not planning to publish unusable software that works like total garbage.
As for Hollow, I made it open-source because I want people to have software they can trust, own a copy of, and run themselves. It should be accessible to every regular user who just wants to chat with their friends, with everything working out of the box and have actual privacy/security that's easily verifiable. This is the reason why I adopted modern E2EE protocols and built custom implementations to create the messenger I would want to use myself.
Hollow won't have paywalls. Ever. No matter how much money someone is willing to pay, Hollow will stay open for everybody. Contributors are welcome because we can come together on a single matter that is taken away from us every single day: privacy and ownership. You deserve it. Don't let anybody tell you otherwise.
Thank you for reading, and as always, let's strive for better software together.
-- Vitalii Rovinskyi (AnonListen / VitalikPro13)
Contributions are welcome. See CONTRIBUTING.md for setup instructions, coding conventions, and how to submit a pull request.
Hollow is Flutter (Dart) for the interface and Rust for networking, cryptography and storage, joined by flutter_rust_bridge. Local data lives in SQLCipher, an encrypted SQLite. BUILDING.md has what each platform needs and how to build it, for Windows, macOS, Linux, Android and iOS.
Copyright (C) 2025-2026 Vitalii Rovinskyi [email protected]
The Hollow client and core library are licensed under the GNU Affero General Public License v3.0. The relay server (relay-uws/) is licensed under the MIT License.
The AGPL lets anyone, companies included, use, modify and run Hollow for free. If you share a modified version, or let people use one over a network, you publish its source.
Organizations that want support, custom development, a hosted relay, or terms other than the AGPL can write to [email protected].
The Hollow name, logo, and branding are trademarks of AnonListen and are not covered by the open-source license.
Hollow is funded by the community, not by selling your data. Any support is appreciated.