klieo-a2a
Durable A2A v1.0 protocol layer atop klieo-bus traits.
Part of the klieo Rust agent framework.
Quickstart — laptop-dev
[]
= { = "3", = ["test-fixtures"] }
use Arc;
use ;
#
A2aDispatcher::local(handler) bakes in AllowAnonymous + a fresh
in-process MemoryBus pubsub. Gated behind the test-fixtures
feature (CWE-1188): production builds without the feature cannot reach
the permissive authenticator. For production wire your own
Authenticator via A2aDispatcher::builder() (see HTTP/SSE section
below).
Cargo features
| Feature | Default | Purpose |
|---|---|---|
http |
off | HTTP/SSE transport per A2A v1.0 §9.4.2 (single POST /a2a endpoint). See HTTP/SSE section below. |
conformance |
off | Exposes pub mod conformance — the conformance test suite + harness cargo-klieo consumes. |
test-fixtures |
off | Exposes EchoHandler (no-auth in-mem) for the conformance suite. Activates klieo-auth-common/test-fixtures so AllowAnonymous is reachable. Never in production. |
Status
3.x — stable. See docs/SEMVER.md.
HTTP/SSE transport
klieo-a2a ships an HTTP/SSE transport behind the http
cargo feature. Single POST /a2a endpoint per A2A v1.0
§9.4.2 with JSON-or-SSE response negotiation based on
JSON-RPC method.
[]
= { = "3", = ["http"] }
= "3"
use AllowAnonymous;
use EchoHandler;
use A2aHttpServer;
use A2aTaskStore;
use A2aDispatcher;
use Arc;
use CancellationToken;
async
Streaming methods. SendStreamingMessage and
SubscribeToTask return text/event-stream; all other
methods return application/json.
Security boundary. The HTTP layer adds no authentication
beyond what the configured Authenticator enforces on the
JSON-RPC payload. Bind 127.0.0.1 and front with an
auth-enforcing reverse proxy for any non-localhost
deployment. Plain HTTP only — terminate TLS at the proxy.
See docs/adr/adr-013-a2a-http-sse-transport.md
for the design rationale and out-of-scope items.
License
MIT — see LICENSE.