Skip to content

feat(core/cbor): add single-pass cbor serde#2183

Open
kuhe wants to merge 1 commit into
mainfrom
kuhe/feat/cbor
Open

feat(core/cbor): add single-pass cbor serde#2183
kuhe wants to merge 1 commit into
mainfrom
kuhe/feat/cbor

Conversation

@kuhe

@kuhe kuhe commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Add single-pass ShapeSerializer and ShapeDeserializer for CBOR, combining Smithy data-model prep with the encoding pass.

Serialization Results

Test Case CBOR Size JSON Size CBOR multi ms CBOR single ms JSON ms Single vs Multi Single vs JSON
list<string(0,180)> 469 kb 482 kb 53 ms 24 ms 68 ms 2.19x 2.79x
list<float> 270 kb 675 kb 220 ms 27 ms 308 ms 8.24x 11.55x
list<int> 253 kb 458 kb 693 ms 92 ms 277 ms 7.54x 3.01x
list<long int> 250 kb 549 kb 360 ms 56 ms 245 ms 6.46x 4.40x
map<string, string> 438 kb 455 kb 42 ms 30 ms 75 ms 1.41x 2.54x
map<string, long int> 38 kb 49 kb 25 ms 12 ms 22 ms 2.08x 1.81x
list<struct> PutMetricData-like 363 kb 459 kb 344 ms 121 ms 385 ms 2.84x 3.17x
struct PutMetricData realistic 1.7 mb 2.2 mb 1846 ms 459 ms 1814 ms 4.02x 3.95x
list<struct> non-ASCII keys 399 kb 483 kb 239 ms 93 ms 280 ms 2.56x 3.00x
list<struct> with blobs 263 kb 353 kb 140 ms 70 ms 116 ms 2.01x 1.66x
list<struct> with timestamps 229 kb 345 kb 227 ms 83 ms 167 ms 2.75x 2.02x

Deserialization Results

Test Case Data Size CBOR multi ms CBOR single ms JSON ms Single vs Multi Single vs JSON
list<string(0,180)> 468 kb 34 ms 24 ms 25 ms 1.45x 1.08x
list<float> 270 kb 83 ms 32 ms 235 ms 2.57x 7.28x
list<int> 253 kb 246 ms 97 ms 311 ms 2.54x 3.21x
list<long int> 250 kb 126 ms 55 ms 194 ms 2.28x 3.52x
map<string, string> 439 kb 45 ms 37 ms 37 ms 1.21x 1.01x
map<string, long int> 38 kb 28 ms 21 ms 29 ms 1.33x 1.41x
list<struct> PutMetricData-like 363 kb 360 ms 163 ms 392 ms 2.21x 2.41x
struct PutMetricData realistic 1.7 mb 2082 ms 609 ms 2096 ms 3.42x 3.44x
list<struct> non-ASCII keys 399 kb 444 ms 133 ms 269 ms 3.33x 2.02x
list<struct> with blobs 263 kb 103 ms 54 ms 196 ms 1.92x 3.65x
list<struct> with timestamps 229 kb 203 ms 100 ms 208 ms 2.03x 2.07x

@kuhe
kuhe requested a review from a team as a code owner July 24, 2026 19:56
@kuhe
kuhe force-pushed the kuhe/feat/cbor branch from 633ff58 to 55f58cf Compare July 24, 2026 20:17
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