feat: v2 Phase 1 — foundation, proto schemas, RPC framework, SDK skeleton
New workspace structure with 9 crates. Adds: - proto/qpq/v1/*.proto: 11 protobuf schemas covering all 33 RPC methods - quicproquo-proto: dual codegen (capnp legacy + prost v2) - quicproquo-rpc: QUIC RPC framework (framing, server, client, middleware) - quicproquo-sdk: client SDK (QpqClient, events, conversation store) - quicproquo-server/domain/: protocol-agnostic domain types and services - justfile: build commands Wire format: [method_id:u16][req_id:u32][len:u32][protobuf] per QUIC stream. All 151 existing tests pass. Backward compatible with v1 capnp code.
This commit is contained in:
@@ -1,22 +1,28 @@
|
||||
[package]
|
||||
name = "quicproquo-proto"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Cap'n Proto schemas, generated types, and serialisation helpers for quicproquo. No crypto, no I/O."
|
||||
license = "MIT"
|
||||
name = "quicproquo-proto"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
description = "Protocol types for quicproquo — v1 Cap'n Proto (legacy) + v2 Protobuf (prost)"
|
||||
|
||||
# build.rs invokes capnpc to generate Rust source from .capnp schemas.
|
||||
build = "build.rs"
|
||||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
# v1 legacy (Cap'n Proto) — used by existing server/client until rewrite
|
||||
capnp = { workspace = true }
|
||||
|
||||
# v2 (Protobuf via prost) — new RPC types
|
||||
prost = { workspace = true }
|
||||
prost-types = { workspace = true }
|
||||
bytes = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
capnpc = { workspace = true }
|
||||
prost-build = { workspace = true }
|
||||
protobuf-src = "2"
|
||||
|
||||
[lints.rust]
|
||||
unsafe_code = "warn"
|
||||
|
||||
[lints.clippy]
|
||||
# Generated Cap'n Proto code uses patterns that trigger clippy lints.
|
||||
unwrap_used = "allow"
|
||||
|
||||
[build-dependencies]
|
||||
capnpc = { workspace = true }
|
||||
|
||||
Reference in New Issue
Block a user