a2aproject / a2aproject/a2a-rs

feature: add SLIMRPC, WebSocket, and stdio transport bindings

Aperta
#12 0 commenti 0 reazioni 1 assegnatario Rivendicata da @muscariello Vedi su GitHub
enhancement
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.