a2aproject / a2aproject/a2a-rs

feature: add SLIMRPC, WebSocket, and stdio transport bindings

オープン
#12 コメント 0 件 リアクション 0 件 担当者 1 名 @muscariello が担当を希望しています GitHub で見る
enhancement
主要言語
Rust
スター
75
フォーク
19
平均マージ
11時間 27分
マージ済み PR(30日)
21

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。