Lowkey Documentation
Technical documentation for Lowkey, a decentralized peer-to-peer file sharing platform built with Rust and libp2p.
Documentation Index
Architecture Overview
System design, components, data flow, and threading model.
Chunk Transfer Protocol
Production-ready P2P chunk fetching with Request-Response and DHT provider discovery.
P2P Networking
libp2p protocols: Kademlia DHT, Gossipsub, Request-Response, Relay.
Storage Model
Content-addressed storage, chunking, manifests, and quota management.
Privacy Modes
Normal, Relay-Only, and Tor configurations for different privacy needs.
Desktop Application
Tauri 2 architecture, React frontend, IPC bindings, and streaming.
Quick Start
Build from Source
# Clone repository
git clone https://github.com/anthropics/lowkey.git
cd lowkey
# Build engine (Rust)
cargo build -p lowkey-engine
# Build desktop app (Tauri + React)
cd apps/desktop
npm install
npm run tauri:build
Run Development Mode
cd apps/desktop
npm run tauri:dev # Hot reload development
Core Technologies
| Layer | Technology | Purpose |
|---|---|---|
| Networking | libp2p 0.56 |
P2P protocols (Kademlia, Gossipsub, Request-Response) |
| Transport | TCP + Noise + Yamux | Encrypted multiplexed connections |
| Content Addressing | BLAKE3 | 256-bit cryptographic hashing |
| Encoding | CBOR | Binary message serialization |
| Desktop | Tauri 2 + React | Cross-platform GUI |
| Streaming | Axum | HTTP Range-request streaming |
What's New in v0.2.7
Version 0.2.7 introduces a production-ready Request-Response protocol for reliable P2P chunk transfer:
- DHT Provider Discovery - Peers announce themselves as chunk providers
- Direct Unicast Requests - O(1) traffic instead of O(n) broadcast
- CBOR Binary Encoding - 33% bandwidth savings over base64
- Gossipsub Fallback - Legacy compatibility when providers unavailable
Performance Improvements
| Metric | Before (Gossipsub) | After (Request-Response) |
|---|---|---|
| 2-peer reliability | ~0% (mesh timing) | ~99% |
| Mesh formation required | Yes (10-30s) | No |
| Traffic per chunk | O(n) broadcast | O(1) unicast |
| Encoding overhead | 33% (base64) | ~5% (CBOR) |