Skip to content

Protocol Status

This page is the source of truth for protocol maturity and conformance. The individual protocol pages describe behavior without repeating status labels or test totals.

ProtocolSurfacesStageClient conformanceServer conformance
aws.protocols#restJson1Client and serverPreviewRequests 142/142 (100%), responses 108/108 (100%)Requests 132/132 (100%), responses 92/92 (100%), malformed 655/655 (100%)
aws.protocols#awsJson1_1ClientEarly previewRequests 57/57 (100%), responses 62/62 (100%)N/A
aws.protocols#awsJson1_0ClientEarly previewRuntime support, no conformance projectN/A
aws.protocols#awsQueryClientPreviewRequests 38/38 (100%), responses 39/39 (100%)N/A
aws.protocols#ec2QueryClientPreviewRequests 30/30 (100%), responses 29/29 (100%)N/A
aws.protocols#restXmlClientPreviewRequests 109/109 (100%), responses 84/84 (100%)N/A
smithy.protocols#rpcv2CborClient and serverPreviewRequests 29/29 (100%), responses 43/43 (100%)Requests 37/37 (100%), responses 27/27 (100%)
alloy#simpleRestJsonClient and serverPreviewRequests 23/23 (100%), responses 20/20 (100%)Requests 23/23 (100%), responses 20/20 (100%)
alloy.proto#grpcClient and serverExperimentalEnd-to-end examplesEnd-to-end examples

Each fraction is:

passing executable official cases / official cases applicable to that surface

Client and server totals are separate because Smithy test cases declare an appliesTo direction. A server-only case does not enter the client denominator, and a client-only case does not enter the server denominator.

Cases listed in a conformance project’s known-gap set remain in the denominator but not the numerator. Local regression fixtures run in the suites but do not count as official conformance.

  • restJson1 passes every applicable official request, response, modeled-error, and malformed-request case on both generated surfaces.
  • The restJson1 server passes all 655 applicable httpMalformedRequestTests. These cases verify structured responses for requests that cannot be deserialized or validated.
  • Auxiliary fixture services without a generated handler are excluded from the restJson1 server denominator. Local response regression cases are also excluded from the official totals.
  • simpleRestJson passes every case in Alloy’s protocol suite on both generated surfaces.
  • rpcv2Cbor passes every applicable official request and response case on both generated surfaces.
  • AWS Query, EC2 Query, and restXml pass every applicable official client request and response case.
  • AWS JSON 1.1 passes every applicable official client request and response case. AwsJson10Protocol has runtime support but no separate conformance project.
  • gRPC is not part of Smithy’s HTTP protocol test suite. Its codec and transport tests cover complex messages, numeric encodings, collections, oneofs, documents, errors, trailers, and all three streaming modes. Grpc.Net interoperability is demonstrated by runnable examples but is not yet an automated cross-implementation test matrix.

See Validation for malformed request behavior.

  • Preview: useful end-to-end support with meaningful conformance coverage. Some protocol features or convenience APIs are still incomplete.
  • Early preview: a narrower verified slice. Check the conformance totals and known limitations before adopting it.
  • Experimental: the API and supported model surface can still change.

Each conformance project has a ConformanceRateTests.ReportConformanceRate test. Run it after just codegen and copy the emitted totals to this page.

The fixtures come from the pinned Smithy and Alloy protocol-test model JARs. The upstream restJson1 sources are in the Smithy repository.