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.

ProtocolStageClient conformanceServer conformance
restJson1PreviewRequests 142/142 (100%)
Responses 108/108 (100%)
Requests 132/132 (100%)
Responses 92/92 (100%)
Malformed 655/655 (100%)
simpleRestJsonPreviewRequests 23/23 (100%)
Responses 20/20 (100%)
Requests 23/23 (100%)
Responses 20/20 (100%)
rpcv2CborPreviewRequests 29/29 (100%)
Responses 43/43 (100%)
Requests 37/37 (100%)
Responses 27/27 (100%)
rpcv2JsonPreviewRequests 34/34 (100%)
Responses 39/39 (100%)
Requests 35/35 (100%)
Responses 33/33 (100%)
grpcExperimentalEnd-to-end examplesEnd-to-end examples
awsJson1_1Early previewRequests 57/57 (100%)
Responses 62/62 (100%)
Client only
awsJson1_0Early previewRuntime support, no conformance projectClient only
awsQueryPreviewRequests 38/38 (100%)
Responses 39/39 (100%)
Client only
ec2QueryPreviewRequests 30/30 (100%)
Responses 29/29 (100%)
Client only
restXmlPreviewRequests 109/109 (100%)
Responses 84/84 (100%)
Client only

Generated endpoint resolvers run the official @endpointTests cases. Each case resolves its parameters directly, and each of its operation inputs through the operation’s parameter bindings.

FixturesCasesOperation inputs
Rules engine standard library95/95 (100%)16/16 (100%)
aws.* functions37/37 (100%)None
DynamoDB548/548 (100%)267/267 (100%)
Lambda71/71 (100%)None
S3393/393 (100%)215/215 (100%)
S3 Control134/134 (100%)187/187 (100%)
STS69/69 (100%)18/18 (100%)

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.
  • rpcv2Json passes every applicable official request and response case on both generated surfaces. The official suite has no event-stream cases; JSON event streams are covered by unit tests.
  • 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.
  • The endpoint rules fixtures are the smithy-rules-engine-tests models, the aws.* function test models of smithy-aws-endpoints, and the published models of five AWS services chosen for their built-ins and auth scheme properties.
  • 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.

  • Stable every applicable official conformance case passes on every generated surface, and the generated API changes only with care for existing users.
  • Preview useful end-to-end support with meaningful conformance coverage. Some protocol features or convenience APIs are still incomplete, and the generated API can still change.
  • 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.