chore: rename project quicnprotochat -> quicproquo (binaries: qpq)
Rename the entire workspace:
- Crate packages: quicnprotochat-{core,proto,server,client,gui,p2p,mobile} -> quicproquo-*
- Binary names: quicnprotochat -> qpq, quicnprotochat-server -> qpq-server,
quicnprotochat-gui -> qpq-gui
- Default files: *-state.bin -> qpq-state.bin, *-server.toml -> qpq-server.toml,
*.db -> qpq.db
- Environment variable prefix: QUICNPROTOCHAT_* -> QPQ_*
- App identifier: chat.quicnproto.gui -> chat.quicproquo.gui
- Proto package: quicnprotochat.bench -> quicproquo.bench
- All documentation, Docker, CI, and script references updated
HKDF domain-separation strings and P2P ALPN remain unchanged for
backward compatibility with existing encrypted state and wire protocol.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Future Research Directions
|
||||
|
||||
This page catalogues technologies and research directions that could strengthen
|
||||
quicnprotochat beyond the current [milestone plan](milestones.md). Each entry
|
||||
quicproquo beyond the current [milestone plan](milestones.md). Each entry
|
||||
includes a brief description, the problem it solves, relevant crates or
|
||||
specifications, and how it maps to the project architecture.
|
||||
|
||||
@@ -21,7 +21,7 @@ delivery.
|
||||
**Solution:** [LibP2P](https://libp2p.io/) and [iroh](https://iroh.computer/)
|
||||
(from n0) provide peer discovery, NAT traversal (hole-punching), and relay
|
||||
fallback. iroh is particularly interesting because it is Rust-native and built on
|
||||
QUIC, aligning with quicnprotochat's existing transport layer.
|
||||
QUIC, aligning with quicproquo's existing transport layer.
|
||||
|
||||
**Architecture impact:** Move from pure client-server to a hybrid topology where
|
||||
peers communicate directly when possible and fall back to server relay when NAT
|
||||
@@ -68,7 +68,7 @@ significantly, so this should be optional.
|
||||
|
||||
### SQLCipher / libsql (Turso)
|
||||
|
||||
**Problem:** At M6, quicnprotochat needs persistent storage for group state, key
|
||||
**Problem:** At M6, quicproquo needs persistent storage for group state, key
|
||||
material, and message queues. Storing private keys in a plaintext SQLite database
|
||||
is insufficient.
|
||||
|
||||
@@ -129,7 +129,7 @@ vulnerable to harvest-now-decrypt-later attacks.
|
||||
hybrid Ed25519 + ML-DSA-65 for credential signatures. The `ml-kem` crate is
|
||||
already vendored in the workspace.
|
||||
|
||||
**Architecture impact:** Custom `OpenMlsCryptoProvider` in `quicnprotochat-core`
|
||||
**Architecture impact:** Custom `OpenMlsCryptoProvider` in `quicproquo-core`
|
||||
implementing the hybrid combiner. This is the M7 milestone -- see
|
||||
[Milestones](milestones.md#m7----post-quantum-planned) and
|
||||
[Hybrid KEM](../protocol-layers/hybrid-kem.md).
|
||||
@@ -202,7 +202,7 @@ DID URIs. The server resolves DIDs to public keys for routing.
|
||||
|
||||
### OPAQUE (aPAKE)
|
||||
|
||||
**Problem:** If quicnprotochat adds password-based account registration, the
|
||||
**Problem:** If quicproquo adds password-based account registration, the
|
||||
server must never see the password -- not even a hash.
|
||||
|
||||
**Solution:** [OPAQUE](https://datatracker.ietf.org/doc/rfc9497/) is an
|
||||
@@ -253,7 +253,7 @@ admin could require proof of organization membership before allowing join.
|
||||
**Problem:** A single server is a single point of failure and a single point of
|
||||
trust. Users on different servers cannot communicate.
|
||||
|
||||
**Solution:** Federation allows multiple quicnprotochat servers to exchange
|
||||
**Solution:** Federation allows multiple quicproquo servers to exchange
|
||||
messages, similar to [Matrix](https://matrix.org/) homeserver federation. Each
|
||||
server manages its own users and relays messages to peer servers.
|
||||
|
||||
@@ -345,10 +345,10 @@ the user base for testing and demonstration.
|
||||
|
||||
**Solution:** [Tauri](https://tauri.app/) or [Dioxus](https://dioxuslabs.com/)
|
||||
provide native cross-platform GUI frameworks in Rust. The
|
||||
`quicnprotochat-core` crate can be shared directly with the GUI client.
|
||||
`quicproquo-core` crate can be shared directly with the GUI client.
|
||||
|
||||
**Architecture impact:** Add a `quicnprotochat-gui` crate that depends on
|
||||
`quicnprotochat-core` and `quicnprotochat-proto`. The GUI drives the same
|
||||
**Architecture impact:** Add a `quicproquo-gui` crate that depends on
|
||||
`quicproquo-core` and `quicproquo-proto`. The GUI drives the same
|
||||
`GroupMember` and RPC logic as the CLI client.
|
||||
|
||||
**Crates:** `tauri`, `dioxus`
|
||||
@@ -361,7 +361,7 @@ provide native cross-platform GUI frameworks in Rust. The
|
||||
[diplomat](https://github.com/nickelc/diplomat) generate idiomatic Swift and
|
||||
Kotlin bindings from Rust definitions.
|
||||
|
||||
**Architecture impact:** Expose `quicnprotochat-core` through a C-compatible FFI
|
||||
**Architecture impact:** Expose `quicproquo-core` through a C-compatible FFI
|
||||
layer. Mobile apps call into the Rust crypto and protocol logic.
|
||||
|
||||
**Crates:** `uniffi`, `diplomat`
|
||||
@@ -387,10 +387,10 @@ considering the current state of the codebase and the [milestone plan](milestone
|
||||
|
||||
| Priority | Technology | Why | Unlocks |
|
||||
|----------|-----------|-----|---------|
|
||||
| 1 | **Post-quantum hybrid KEM** | `ml-kem` is already vendored in the workspace. Completing the hybrid `OpenMlsCryptoProvider` makes quicnprotochat one of the first PQ MLS implementations. | M7 |
|
||||
| 1 | **Post-quantum hybrid KEM** | `ml-kem` is already vendored in the workspace. Completing the hybrid `OpenMlsCryptoProvider` makes quicproquo one of the first PQ MLS implementations. | M7 |
|
||||
| 2 | **SQLCipher persistence** | Encrypted-at-rest storage is the prerequisite for multi-device support, offline usage, and server restart survival. | M6 |
|
||||
| 3 | **OPAQUE auth** | Zero-knowledge password authentication is a massive security uplift for the account system. The server never sees or stores passwords. | Phase 3 (authz) |
|
||||
| 4 | **iroh / LibP2P** | NAT traversal and optional P2P mesh makes quicnprotochat deployable without centralised infrastructure. Aligns with the existing QUIC transport. | Beyond M7 |
|
||||
| 4 | **iroh / LibP2P** | NAT traversal and optional P2P mesh makes quicproquo deployable without centralised infrastructure. Aligns with the existing QUIC transport. | Beyond M7 |
|
||||
| 5 | **Sealed Sender + PIR** | Content encryption is table stakes. Metadata resistance (hiding who talks to whom) is the frontier of private messaging research. | Beyond M7 |
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user