Skip to content

refactor: introduce cached schema extension metadata - #359

Draft
jterapin wants to merge 11 commits into
mainfrom
serde-opt/1-serde
Draft

refactor: introduce cached schema extension metadata#359
jterapin wants to merge 11 commits into
mainfrom
serde-opt/1-serde

Conversation

@jterapin

@jterapin jterapin commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Context

Shape and member metadata is currently resolved through multiple lookups and separate cache entries. This causes parsers, builders, and protocol code to rediscover related metadata.

What changed

  • Added cached, array-backed extension metadata for Schema, JSON, XML, CBOR, and HTTP.
  • Preserved raw traits on shapes and members for dynamic-client support.
  • Added explicit for(shape) and for_member(member) resolution paths.
  • Centralized outer extension slots while keeping inner slots local to each extension.
  • Bundled target classes, member metadata, traits, wire names, and indexes.
  • Standardized list/map member construction through add_member.
  • Regenerated the smithy-ruby weather and shapes projections.
  • Added the initial HTTP extension metadata foundation.

Out of scope

  • Migrating all remaining protocol and codec consumers.
  • Codec-specific hot-path optimizations.
  • Broad staging service regeneration.

Testing

  • Focused Schema, JSON, XML, CBOR, and HTTP specs pass:
    613 examples, 0 failures.
  • Regenerated projections load successfully.
  • RuboCop passes for the affected files.

@jterapin jterapin changed the title perf: tighten smithy serde hot paths (1/3) refactor: introduce cached schema extension metadata Sep 8, 2026
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.

1 participant