Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

bentsku
Copy link
Contributor

@bentsku bentsku commented Sep 4, 2025

Motivation

This PR is part of a bigger initiative to implement support for the new Smithy Protocol smithy-rpc-v2-cbor, as well as the new Botocore multi-protocol support for single services (before, a service could only define one protocol).

This PR is the first step in adding support for the smithy-rpc-v2-cbor protocol via our parsers and serializers.

By adding support for this new protocol, Botocore also implemented CBOR serialization and parsing. We can rely on that to implement our own custom body parsing/serializing in the CBOR format.

Currently in Botocore, only the services using the smithy-rpc-v2-cbor protocol uses this implementation (like arc-region-switch, and soon cloudwatch).

Internally, we know that the Kinesis service can respond using CBOR, but with a json-protocol based type of response. This PR implements and internalize the CBOR body parsing and serializing, and try to use this protocol to parser/serialize Kinesis requests & responses. In some follow-up to this initiative, we could also implement better handling of CBOR for Kinesis.

This PR is better reviewed by looking at its direct follow-up, #13125. It builds on this to properly implement the smithy-rpc-v2-cbor protocol entirely.

Changes

  • internalize CBOR body parsing/serializing via the BaseCBORRequestParser and BaseCBORResponseSerializer
  • validate that the CBOR serde works properly by trying it against our known Kinesis tests
  • implements a CBOR parser based on the BaseCBORRequestParser and the JSONResponseSerializer to try out against Kinesis

@bentsku bentsku added this to the 4.9 milestone Sep 4, 2025
@bentsku bentsku self-assigned this Sep 4, 2025
@bentsku bentsku added area: asf semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases skip-docs Pull request does not require documentation changes labels Sep 4, 2025
Copy link

github-actions bot commented Sep 4, 2025

S3 Image Test Results (AMD64 / ARM64)

    2 files    2 suites   8m 24s ⏱️
  532 tests 480 ✅  52 💤 0 ❌
1 064 runs  960 ✅ 104 💤 0 ❌

Results for commit a2853d1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Sep 4, 2025

Test Results - Preflight, Unit

22 149 tests   20 411 ✅  6m 32s ⏱️
     1 suites   1 738 💤
     1 files         0 ❌

Results for commit a2853d1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Sep 4, 2025

Test Results (amd64) - Acceptance

7 tests   5 ✅  3m 8s ⏱️
1 suites  2 💤
1 files    0 ❌

Results for commit a2853d1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Sep 4, 2025

Test Results (amd64) - Integration, Bootstrap

    5 files      5 suites   2h 35m 36s ⏱️
5 035 tests 4 544 ✅ 491 💤 0 ❌
5 041 runs  4 544 ✅ 497 💤 0 ❌

Results for commit a2853d1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Sep 4, 2025

LocalStack Community integration with Pro

    2 files      2 suites   1h 55m 48s ⏱️
4 661 tests 4 330 ✅ 331 💤 0 ❌
4 663 runs  4 330 ✅ 333 💤 0 ❌

Results for commit a2853d1.

♻️ This comment has been updated with latest results.

@bentsku bentsku force-pushed the cbor-parser-serializer branch from 81df418 to 530069d Compare September 10, 2025 21:44
@localstack-bot
Copy link
Contributor

Currently, only patch changes are allowed on main. Your PR labels (area: asf, semver: minor, skip-docs) indicate that it cannot be merged into the main at this time.

@bentsku bentsku force-pushed the cbor-parser-serializer branch from 9809182 to a2853d1 Compare September 15, 2025 21:36
@bentsku bentsku marked this pull request as ready for review September 15, 2025 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: asf semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases skip-docs Pull request does not require documentation changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants