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:
@@ -6,7 +6,7 @@
|
||||
|
||||
## Context
|
||||
|
||||
quicnprotochat needs an efficient, typed wire format for client-server communication. The format must support:
|
||||
quicproquo needs an efficient, typed wire format for client-server communication. The format must support:
|
||||
|
||||
1. **Typed messages** with compile-time schema enforcement to eliminate hand-rolled serialisation bugs.
|
||||
2. **Schema evolution** so that new fields and methods can be added without breaking existing clients.
|
||||
@@ -105,7 +105,7 @@ The Cap'n Proto schemas are stored in the `schemas/` directory:
|
||||
|
||||
### Costs and trade-offs
|
||||
|
||||
- **Build-time code generation.** The `capnpc` compiler must run during the build (via `build.rs` in `quicnprotochat-proto`). This adds a build dependency and increases compile times slightly.
|
||||
- **Build-time code generation.** The `capnpc` compiler must run during the build (via `build.rs` in `quicproquo-proto`). This adds a build dependency and increases compile times slightly.
|
||||
- **Learning curve.** Cap'n Proto's builder/reader API is different from typical `serde`-based Rust serialisation. Developers must learn the Cap'n Proto programming model (builders for construction, readers for traversal, owned messages for storage).
|
||||
- **Generated code verbosity.** The generated Rust code is verbose and not intended to be read directly. Application code interacts with it through the builder/reader traits.
|
||||
- **Smaller ecosystem than Protobuf.** Cap'n Proto has fewer users, fewer tutorials, and fewer third-party tools than Protobuf. However, the core Rust crates are well-maintained.
|
||||
@@ -114,7 +114,7 @@ The Cap'n Proto schemas are stored in the `schemas/` directory:
|
||||
### Residual risks
|
||||
|
||||
- **Crate maintenance.** The `capnp` and `capnp-rpc` crates are maintained primarily by David Renshaw. If maintenance lapses, the project would need to fork or switch serialisation formats. Mitigated by the crates' maturity and the relatively stable Cap'n Proto specification.
|
||||
- **RPC limitations.** The Rust `capnp-rpc` crate implements Level 1 of the Cap'n Proto RPC protocol. Level 3 features (three-party handoffs) are not supported. This has not been a limitation for quicnprotochat's client-server architecture.
|
||||
- **RPC limitations.** The Rust `capnp-rpc` crate implements Level 1 of the Cap'n Proto RPC protocol. Level 3 features (three-party handoffs) are not supported. This has not been a limitation for quicproquo's client-server architecture.
|
||||
|
||||
---
|
||||
|
||||
@@ -126,8 +126,8 @@ The Cap'n Proto schemas are stored in the `schemas/` directory:
|
||||
| `schemas/auth.capnp` | AuthenticationService RPC interface |
|
||||
| `schemas/delivery.capnp` | DeliveryService RPC interface |
|
||||
| `schemas/node.capnp` | NodeService unified RPC interface |
|
||||
| `crates/quicnprotochat-proto/build.rs` | Build script that invokes `capnpc` for code generation |
|
||||
| `crates/quicnprotochat-proto/src/lib.rs` | Re-exports generated Cap'n Proto modules |
|
||||
| `crates/quicproquo-proto/build.rs` | Build script that invokes `capnpc` for code generation |
|
||||
| `crates/quicproquo-proto/src/lib.rs` | Re-exports generated Cap'n Proto modules |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user