P2P project sharing for linXiv: iroh transport + Keyhive capabilities + Beelay encrypted sync. The full protocol stack is implemented and tested behind feature flags so linXiv is ready the day Keyhive stabilizes.
Warning
This code is a personal implementation of a pre-alpha technology, always review code yourself before relying on it for any confidentiality or security reasons.
| Module | Flag | What |
|---|---|---|
sync |
(default) | Persistent device identity, ALPN linxiv/sync/0, pasteable share tickets, plain automerge sync. Ship-quality fallback path. |
auth |
auth-keyhive |
keyhive_core 0.5.0: per-project groups, signed delegations (Role::{Relay,Read,Edit,Admin}), revocation + PCS rotation, dual cross-signed device keys, access-check hook. |
beelay |
sync-beelay |
beelay-core alpha moves keyhive-encrypted automerge changes as opaque commits over iroh, plus an iroh-blobs path for encrypted file transfer. |
cargo test # phase 1 (3)
cargo test --features auth-keyhive # + capability layer (15)
cargo test --features sync-beelay # + encrypted sync e2e (14, +1 ignored)
cargo test --features sync-beelay --release -- --ignored # 5/25 MiB blob timingsTests are offline (no relay/discovery). tests/beelay.rs::e2e_toy_project is
the gate: create → delegate → sync → edit both sides → revoke → new content
"undecryptable".
Built on top of Ink & Switch's Keyhive and Beelay research, and n0's iroh transport. Thank you both for generously open-sourcing incredible software.