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:
2026-03-01 20:11:51 +01:00
parent 553de3a2b7
commit 853ca4fec0
152 changed files with 4070 additions and 788 deletions

View File

@@ -12,44 +12,44 @@ WORKDIR /build
# Copy manifests first so dependency layers are cached independently of source.
COPY Cargo.toml Cargo.lock ./
COPY crates/quicnprotochat-core/Cargo.toml crates/quicnprotochat-core/Cargo.toml
COPY crates/quicnprotochat-proto/Cargo.toml crates/quicnprotochat-proto/Cargo.toml
COPY crates/quicnprotochat-server/Cargo.toml crates/quicnprotochat-server/Cargo.toml
COPY crates/quicnprotochat-client/Cargo.toml crates/quicnprotochat-client/Cargo.toml
COPY crates/quicnprotochat-p2p/Cargo.toml crates/quicnprotochat-p2p/Cargo.toml
COPY crates/quicproquo-core/Cargo.toml crates/quicproquo-core/Cargo.toml
COPY crates/quicproquo-proto/Cargo.toml crates/quicproquo-proto/Cargo.toml
COPY crates/qpq-server/Cargo.toml crates/qpq-server/Cargo.toml
COPY crates/quicproquo-client/Cargo.toml crates/quicproquo-client/Cargo.toml
COPY crates/quicproquo-p2p/Cargo.toml crates/quicproquo-p2p/Cargo.toml
# Create dummy source files so `cargo build` can resolve the dependency graph
# and cache the compiled dependencies before copying real source.
RUN mkdir -p \
crates/quicnprotochat-core/src \
crates/quicnprotochat-proto/src \
crates/quicnprotochat-server/src \
crates/quicnprotochat-client/src \
crates/quicnprotochat-p2p/src \
&& echo 'fn main() {}' > crates/quicnprotochat-server/src/main.rs \
&& echo 'fn main() {}' > crates/quicnprotochat-client/src/main.rs \
&& touch crates/quicnprotochat-core/src/lib.rs \
&& touch crates/quicnprotochat-proto/src/lib.rs \
&& touch crates/quicnprotochat-p2p/src/lib.rs
crates/quicproquo-core/src \
crates/quicproquo-proto/src \
crates/qpq-server/src \
crates/quicproquo-client/src \
crates/quicproquo-p2p/src \
&& echo 'fn main() {}' > crates/qpq-server/src/main.rs \
&& echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \
&& touch crates/quicproquo-core/src/lib.rs \
&& touch crates/quicproquo-proto/src/lib.rs \
&& touch crates/quicproquo-p2p/src/lib.rs
# Schemas must exist before the proto crate's build.rs runs.
COPY schemas/ schemas/
# Build dependencies only (source stubs mean this layer is cache-friendly).
RUN cargo build --release --bin quicnprotochat-server 2>/dev/null || true
RUN cargo build --release --bin qpq-server 2>/dev/null || true
# Copy real source and build for real.
COPY crates/ crates/
# Touch source to force re-compilation after copying real crates.
RUN touch \
crates/quicnprotochat-core/src/lib.rs \
crates/quicnprotochat-proto/src/lib.rs \
crates/quicnprotochat-p2p/src/lib.rs \
crates/quicnprotochat-server/src/main.rs \
crates/quicnprotochat-client/src/main.rs
crates/quicproquo-core/src/lib.rs \
crates/quicproquo-proto/src/lib.rs \
crates/quicproquo-p2p/src/lib.rs \
crates/qpq-server/src/main.rs \
crates/quicproquo-client/src/main.rs
RUN cargo build --release --bin quicnprotochat-server
RUN cargo build --release --bin qpq-server
# ── Stage 2: Runtime ──────────────────────────────────────────────────────────
#
@@ -62,14 +62,14 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /build/target/release/quicnprotochat-server /usr/local/bin/quicnprotochat-server
COPY --from=builder /build/target/release/qpq-server /usr/local/bin/qpq-server
EXPOSE 7000
ENV RUST_LOG=info \
QUICNPROTOCHAT_LISTEN=0.0.0.0:7000
QPQ_LISTEN=0.0.0.0:7000
# Run as a non-root user.
USER nobody
CMD ["quicnprotochat-server"]
CMD ["qpq-server"]

View File

@@ -12,45 +12,45 @@ WORKDIR /build
# Copy manifests first so dependency layers are cached independently of source.
COPY Cargo.toml Cargo.lock ./
COPY crates/quicnprotochat-core/Cargo.toml crates/quicnprotochat-core/Cargo.toml
COPY crates/quicnprotochat-proto/Cargo.toml crates/quicnprotochat-proto/Cargo.toml
COPY crates/quicnprotochat-server/Cargo.toml crates/quicnprotochat-server/Cargo.toml
COPY crates/quicnprotochat-client/Cargo.toml crates/quicnprotochat-client/Cargo.toml
COPY crates/quicnprotochat-p2p/Cargo.toml crates/quicnprotochat-p2p/Cargo.toml
COPY crates/quicproquo-core/Cargo.toml crates/quicproquo-core/Cargo.toml
COPY crates/quicproquo-proto/Cargo.toml crates/quicproquo-proto/Cargo.toml
COPY crates/qpq-server/Cargo.toml crates/qpq-server/Cargo.toml
COPY crates/quicproquo-client/Cargo.toml crates/quicproquo-client/Cargo.toml
COPY crates/quicproquo-p2p/Cargo.toml crates/quicproquo-p2p/Cargo.toml
# Create dummy source files so `cargo build` can resolve the dependency graph
# and cache the compiled dependencies before copying real source.
RUN mkdir -p \
crates/quicnprotochat-core/src \
crates/quicnprotochat-proto/src \
crates/quicnprotochat-server/src \
crates/quicnprotochat-client/src \
crates/quicnprotochat-p2p/src \
&& echo 'fn main() {}' > crates/quicnprotochat-server/src/main.rs \
&& echo 'fn main() {}' > crates/quicnprotochat-client/src/main.rs \
&& touch crates/quicnprotochat-core/src/lib.rs \
&& touch crates/quicnprotochat-proto/src/lib.rs \
&& touch crates/quicnprotochat-p2p/src/lib.rs
crates/quicproquo-core/src \
crates/quicproquo-proto/src \
crates/qpq-server/src \
crates/quicproquo-client/src \
crates/quicproquo-p2p/src \
&& echo 'fn main() {}' > crates/qpq-server/src/main.rs \
&& echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \
&& touch crates/quicproquo-core/src/lib.rs \
&& touch crates/quicproquo-proto/src/lib.rs \
&& touch crates/quicproquo-p2p/src/lib.rs
# Schemas must exist before the proto crate's build.rs runs.
COPY schemas/ schemas/
# Build dependencies only (source stubs mean this layer is cache-friendly).
# The GUI crate is not included, so workspace resolution may fail — || true handles it.
RUN cargo build --release --bin quicnprotochat-server --bin quicnprotochat 2>/dev/null || true
RUN cargo build --release --bin qpq-server --bin qpq 2>/dev/null || true
# Copy real source and build for real.
COPY crates/ crates/
# Touch source to force re-compilation after copying real crates.
RUN touch \
crates/quicnprotochat-core/src/lib.rs \
crates/quicnprotochat-proto/src/lib.rs \
crates/quicnprotochat-p2p/src/lib.rs \
crates/quicnprotochat-server/src/main.rs \
crates/quicnprotochat-client/src/main.rs
crates/quicproquo-core/src/lib.rs \
crates/quicproquo-proto/src/lib.rs \
crates/quicproquo-p2p/src/lib.rs \
crates/qpq-server/src/main.rs \
crates/quicproquo-client/src/main.rs
RUN cargo build --release --bin quicnprotochat-server --bin quicnprotochat
RUN cargo build --release --bin qpq-server --bin qpq
# ── Stage 2: Runtime ──────────────────────────────────────────────────────────
#
@@ -61,8 +61,8 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /build/target/release/quicnprotochat-server /usr/local/bin/quicnprotochat-server
COPY --from=builder /build/target/release/quicnprotochat /usr/local/bin/quicnprotochat
COPY --from=builder /build/target/release/qpq-server /usr/local/bin/qpq-server
COPY --from=builder /build/target/release/qpq /usr/local/bin/qpq
RUN mkdir -p /chat

View File

@@ -14,7 +14,7 @@ services:
context: ..
dockerfile: docker/Dockerfile.chat-test
command: >-
quicnprotochat-server
qpq-server
--listen 0.0.0.0:7000
--data-dir /data
--tls-cert /data/server-cert.der
@@ -43,10 +43,10 @@ services:
entrypoint: ["sleep", "infinity"]
environment:
RUST_LOG: warn
QUICNPROTOCHAT_ACCESS_TOKEN: devtoken
QUICNPROTOCHAT_CA_CERT: /data/server-cert.der
QUICNPROTOCHAT_SERVER_NAME: localhost
QUICNPROTOCHAT_SERVER: "server:7000"
QPQ_ACCESS_TOKEN: devtoken
QPQ_CA_CERT: /data/server-cert.der
QPQ_SERVER_NAME: localhost
QPQ_SERVER: "server:7000"
volumes:
- server-data:/data:ro
working_dir: /chat
@@ -65,10 +65,10 @@ services:
entrypoint: ["sleep", "infinity"]
environment:
RUST_LOG: warn
QUICNPROTOCHAT_ACCESS_TOKEN: devtoken
QUICNPROTOCHAT_CA_CERT: /data/server-cert.der
QUICNPROTOCHAT_SERVER_NAME: localhost
QUICNPROTOCHAT_SERVER: "server:7000"
QPQ_ACCESS_TOKEN: devtoken
QPQ_CA_CERT: /data/server-cert.der
QPQ_SERVER_NAME: localhost
QPQ_SERVER: "server:7000"
volumes:
- server-data:/data:ro
working_dir: /chat