Skip to content

create smithy plugin to generate BDD ruleset - #3880

Open
sbiscigl wants to merge 2 commits into
mainfrom
generate-bdd-rulesset
Open

create smithy plugin to generate BDD ruleset#3880
sbiscigl wants to merge 2 commits into
mainfrom
generate-bdd-rulesset

Conversation

@sbiscigl

Copy link
Copy Markdown
Collaborator

Issue #, if available:

#2880

Description of changes:

Adds a flag --use-smithy-bdd-endpoints that will enable a smithy plugin to generate a BDD rules set representation and swap clients to use a BDD endpoint provider by default. from preliminary testing we see a large reduction in client contruction time and endpoints resolution time in the S3 Client

Benchmark JSON BDD Δ Speedup
s3 client construction 750,135 ns 30,639 ns −95.9% 24.5×
steady state resolve on virtual addressing 6,006 ns 3,312 ns −44.9% 1.81×

This PR will NOT trigger generation, a follow up PR will swap the default value, and move clients to the new endpoint provider.

Check all that applies:

  • Did a review by yourself.
  • Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • Checked if this PR is a breaking (APIs have been changed) change.
  • Checked if this PR will not introduce cross-platform inconsistent behavior.
  • Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • Linux
  • Windows
  • Android
  • MacOS
  • IOS
  • Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@sbiscigl
sbiscigl marked this pull request as ready for review July 27, 2026 17:56
@sbiscigl
sbiscigl force-pushed the generate-bdd-rulesset branch 6 times, most recently from 5b2d183 to 7f5708e Compare July 27, 2026 20:47
Comment thread tools/scripts/codegen/smithy_cpp_gen.py Outdated
Comment thread tools/scripts/codegen/smithy_cpp_gen.py
private static String sanitize(String s) {
return s.replace(" ", "").replace("-", "").replace("_", "")
.replace("Amazon", "").replace("AWS", "").replace("/", "");
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're duplicating functionality here. ServiceNameUtilJava.sanitizeServiceAbbreviation does this already

@sbiscigl
sbiscigl force-pushed the generate-bdd-rulesset branch from 7f5708e to 6b3cbc7 Compare July 30, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants