a2aproject / a2aproject/a2a-rs
feature: add SLIMRPC, WebSocket, and stdio transport bindings
- Lingua principale
- Rust
- Stelle
- 75
- Fork
- 19
- Merge medio
- 11h 27m
- PR unite (30g)
- 21
Descrizione
Type: Feature
## Summary
Add first-class SLIMRPC, WebSocket, and stdio transport bindings across the A2A Rust workspace.
## Why
The workspace currently supports JSON-RPC over HTTP, REST / HTTP+JSON, gRPC, and SSE streaming. This feature tracks the next transport expansion across the existing transport seams: protocol constants in the core crate, client transport registration in the factory, transport-agnostic server wrappers around RequestHandler, and end-to-end transport coverage in the helloworld example.
## Tasks
- [ ] #13 task: add SLIMRPC transport binding
- [ ] #14 task: add WebSocket transport binding
- [ ] #15 task: add stdio transport binding
## Scope / plan
- [ ] Extend protocol inventory and negotiation surfaces for SLIMRPC, WebSocket, and stdio
- [ ] Add client transport implementations and registration paths for all three bindings
- [ ] Add corresponding server wrappers or runtime helpers where the binding is server-facing or subprocess-backed
- [ ] Define consistent ServiceParams propagation, streaming semantics, and A2AError mapping across the three bindings
- [ ] Extend end-to-end transport coverage and docs for each binding
## Acceptance criteria
- All three bindings have explicit protocol identifiers and documented negotiation behavior
- Client negotiation can select the new bindings alongside existing JSON-RPC, REST, and gRPC support
- Server-facing bindings bridge into RequestHandler without changing executor or task-store semantics
- End-to-end coverage demonstrates parity for key unary, streaming, and error paths
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
The issue references extending protocol constants in the core crate, client transport registration in the factory, and transport-agnostic server wrappers around RequestHandler. Start by examining the existing transport implementations (JSON-RPC, REST, gRPC, SSE) in the workspace to understand the seams. The helloworld example should be extended for end-to-end coverage. Look for protocol inventory and negotiation surfaces to update.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- api, backend
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 20/100