SonicDrop is a metadata-free, asynchronous messaging protocol built on a Distributed Hash Table (DHT) overlay. Trust is established through an air-gapped ultrasonic handshake; messages use deterministic addressing, onion routing, and epoch-based recovery.
The reference implementation is the Rust crate in sonicdrop-rs/. For how the code maps to modules and data flows, read ARCHITECTURE.md. The protocol specification is in SonicDrop.md (with implementation notes where behavior is fixed in code).
https://github.com/AdetsGithub/SonicDrop/raw/main/sonicdrop_demo.mp4
- Rust toolchain (1.88+ recommended; see
sonicdrop-rs/Cargo.toml/rust-versionif set) - System libraries used by the crate (OpenSSL dev headers, ALSA dev for audio,
protobuf-compilerforbuild.rs)
cd sonicdrop-rs
cargo test
cargo build --releaseRun a unified node (after initializing state - see sonicdrop-rs/RUNBOOK.md):
./target/release/sonicdrop-rs run-node-unified 0.0.0.0:4001Environment variables for networking and relay policy are documented in sonicdrop-rs/RUNBOOK.md and sonicdrop-rs/src/config.rs.
See sonicdrop-rs/Dockerfile and sonicdrop-rs/docker-compose.yml.
| Document | Purpose |
|---|---|
SonicDrop.md |
Protocol specification (aligned with sonicdrop-rs where noted) |
ARCHITECTURE.md |
Rust crate architecture and codebase map |
SECURITY.md |
Threat model and cryptographic inventory for the Rust stack |
sonicdrop-rs/SPEC_GAP_CHECKLIST.md |
Spec vs implementation audit |
sonicdrop-rs/RUNBOOK.md |
Operations and CLI |
See repository root for license terms if applicable.