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:
72
proto/qpq/v1/delivery.proto
Normal file
72
proto/qpq/v1/delivery.proto
Normal file
@@ -0,0 +1,72 @@
|
||||
syntax = "proto3";
|
||||
package qpq.v1;
|
||||
|
||||
// Delivery service: enqueue, fetch, peek, ack, batch (6 methods).
|
||||
// Method IDs: 200-205.
|
||||
|
||||
message Envelope {
|
||||
uint64 seq = 1;
|
||||
bytes data = 2;
|
||||
}
|
||||
|
||||
message EnqueueRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes payload = 2;
|
||||
bytes channel_id = 3;
|
||||
uint32 ttl_secs = 4;
|
||||
}
|
||||
|
||||
message EnqueueResponse {
|
||||
uint64 seq = 1;
|
||||
bytes delivery_proof = 2;
|
||||
}
|
||||
|
||||
message FetchRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint32 limit = 3;
|
||||
}
|
||||
|
||||
message FetchResponse {
|
||||
repeated Envelope payloads = 1;
|
||||
}
|
||||
|
||||
message FetchWaitRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint64 timeout_ms = 3;
|
||||
uint32 limit = 4;
|
||||
}
|
||||
|
||||
message FetchWaitResponse {
|
||||
repeated Envelope payloads = 1;
|
||||
}
|
||||
|
||||
message PeekRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint32 limit = 3;
|
||||
}
|
||||
|
||||
message PeekResponse {
|
||||
repeated Envelope payloads = 1;
|
||||
}
|
||||
|
||||
message AckRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint64 seq_up_to = 3;
|
||||
}
|
||||
|
||||
message AckResponse {}
|
||||
|
||||
message BatchEnqueueRequest {
|
||||
repeated bytes recipient_keys = 1;
|
||||
bytes payload = 2;
|
||||
bytes channel_id = 3;
|
||||
uint32 ttl_secs = 4;
|
||||
}
|
||||
|
||||
message BatchEnqueueResponse {
|
||||
repeated uint64 seqs = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user