Skip to main content
This page is the detail behind the compatibility claims on What’s New: what’s actually interop-tested today, what’s “coming,” and how the Java SDK’s feature set compares to its peers. Both tables are re-verified against each SDK’s own source, not carried forward from memory; each cell’s source is named below it.

Cross-SDK interop matrix

The Java SDK’s integration-testing suite runs real client and agent processes in each language against each other, over every transport each one supports, and checks what they print. It’s not part of the release build (./mvnw verify never runs it); it runs in CI (cross-sdk.yml, nightly and on demand) and locally via integration-testing/scripts/run-all.sh. Each framework’s own client is verified too, over HTTP (the one client transport the framework smoke matrix drives today), except Spring Boot (WebFlux): its smoke cell is agent-only, no client leg yet.
Every framework row above comes from the framework smoke matrix (integration-testing/smoke.json), the release gate for the framework integrations, landed at ffc3b74 and green in CI on every main commit since (most recently run 37263353533, on 57e0b55, the commit that added the Spring Boot (WebFlux) cells). It replaces the narrower, hand-written cells an earlier round of this page described.
Each peer SDK is tested against its own main (master for Kotlin) branch, not a pinned release, so this matrix reflects an actively moving target on both sides. Each Java-to-peer cell runs 75 catalogue steps (integration-testing/steps.json) covering initialization and capability negotiation, session lifecycle (new, load, list, resume, close, delete), prompts and streamed updates of every content type, tool calls and permission requests, file system and terminal operations, elicitation (form and URL modes), session config options, cancellation (session/cancel and $/cancel_request), and extension methods; one further step (session.fork) runs separately, since session fork is @UnstableAcpApi. The framework cells above are narrower than the peer-SDK cells: a TypeScript client against each framework’s own sample agent, running the framework smoke matrix’s own step list (initialization and capability negotiation, session lifecycle, a streamed message, permission requests, form-mode elicitation, cancellation, one extension method, and connection close, on every transport each framework serves), not the full 75-step catalogue the peer-SDK cells run.

Feature comparison across the ACP SDKs

How this Java SDK’s 0.80.0 feature set compares to the TypeScript, Python, Rust and Kotlin SDKs, each checked against its own current main (master for Kotlin), not a pinned release. No peer SDK documents all of the rows above; each has its own strengths; Rust’s cancellation and ordering docs and Python’s web-transport page are both worth reading regardless of which SDK you use. Checked against: TypeScript SDK commit 605f3e0a (v1.7.0, 2026-10-02); Python SDK commit 9d07d787 (1.0.0rc2, 2026-09-21); Rust SDK commit 65347cfb (v2.2.0, 2026-10-02); Kotlin SDK commit 3af219ae (v0.32.0, 2026-10-01, branch master). An SDK’s own main moves; re-check before relying on an exact cell.

What's New

The short form of this page’s interop matrix, in context

ACP Resources

The spec site, the other language SDKs, and the wider ecosystem