Skip to content

feat: Add schemars feature to ic_principal (and release 0.1.3) - #727

Merged
lwshang merged 4 commits into
masterfrom
spofford/feature_schemars
May 5, 2026
Merged

feat: Add schemars feature to ic_principal (and release 0.1.3)#727
lwshang merged 4 commits into
masterfrom
spofford/feature_schemars

Conversation

@adamspofford-dfinity

Copy link
Copy Markdown
Contributor

No description provided.

@adamspofford-dfinity
adamspofford-dfinity requested a review from a team as a code ownerMay 5, 2026 16:31
@github-actions

github-actionsBot commented May 5, 2026

Copy link
Copy Markdown
NameMax Mem (Kb)EncodeDecode
blob4_2244_207_4602_121_399
btreemap75_456529_878_08110_161_391_774
double_option1281_322_312 ($\textcolor{green}{-0.00\%}$)26_918_233
large_variant3201_039_286 ($\textcolor{green}{-0.09\%}$)20_306_431
multi_arg64551_676 ($\textcolor{green}{-0.02\%}$)6_282_713
nns1922_006_5755_524_217 ($\textcolor{red}{0.12\%}$)
nns_list_neurons1_1526_597_767 ($\textcolor{green}{-0.02\%}$)209_177_470 ($\textcolor{green}{-0.00\%}$)
nns_list_proposal1_2166_964_970 ($\textcolor{green}{-0.16\%}$)54_994_264 ($\textcolor{red}{0.00\%}$)
option_list128727_58316_198_353
result_variant1921_378_947 ($\textcolor{red}{0.01\%}$)16_140_563
subtype_decode5122_664_961 ($\textcolor{green}{-0.04\%}$)49_294_454 ($\textcolor{green}{-0.00\%}$)
text6_3364_204_3127_877_260
variant_list128722_43115_635_685
vec_int1612_4808_404_598249_585_711
vec_nat11_00866_046_873276_028_299
vec_nat3224_76816_793_206243_294_536
vec_nat6449_34433_570_406251_683_398
vec_service64689_58394_753_660
wide_record1_1523_265_428 ($\textcolor{green}{-0.10\%}$)44_558_340 ($\textcolor{green}{-0.00\%}$)
  • Parser cost: 15_587_223
  • Extra args: 2_861_930
Click to see raw report
---------------------------------------------------
Benchmark: blob
total:
instructions: 6.33 M (no change)
heap_increase: 66 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 4.21 M (no change)
heap_increase: 66 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 2.12 M (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: btreemap
total:
instructions: 10.69 B (no change)
heap_increase: 1179 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 529.88 M (no change)
heap_increase: 159 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 10.16 B (no change)
heap_increase: 1020 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: double_option
total:
instructions: 28.24 M (-0.00%) (change within noise threshold)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 1.32 M (-0.00%) (change within noise threshold)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 26.92 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: extra_args
total:
instructions: 2.86 M (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: large_variant
total:
instructions: 21.35 M (-0.00%) (change within noise threshold)
heap_increase: 5 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 1.04 M (-0.09%) (change within noise threshold)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 20.31 M (no change)
heap_increase: 3 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: multi_arg
total:
instructions: 6.84 M (-0.00%) (change within noise threshold)
heap_increase: 1 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 551.68 K (-0.02%) (change within noise threshold)
heap_increase: 1 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 6.28 M (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: nns
total:
instructions: 23.95 M (0.03%) (change within noise threshold)
heap_increase: 3 pages (no change)
stable_memory_increase: 0 pages (no change)
0. Parsing (scope):
calls: 1 (no change)
instructions: 15.59 M (no change)
heap_increase: 3 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 2.01 M (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 5.52 M (0.12%) (change within noise threshold)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: nns_list_neurons
total:
instructions: 215.78 M (-0.00%) (change within noise threshold)
heap_increase: 18 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 6.60 M (-0.02%) (change within noise threshold)
heap_increase: 18 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 209.18 M (-0.00%) (change within noise threshold)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: nns_list_proposal
total:
instructions: 61.96 M (-0.02%) (change within noise threshold)
heap_increase: 19 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 6.96 M (-0.16%) (change within noise threshold)
heap_increase: 5 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 54.99 M (0.00%) (change within noise threshold)
heap_increase: 14 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: option_list
total:
instructions: 16.93 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 727.58 K (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 16.20 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: result_variant
total:
instructions: 17.52 M (0.00%) (change within noise threshold)
heap_increase: 3 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 1.38 M (0.01%) (change within noise threshold)
heap_increase: 1 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 16.14 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: subtype_decode
total:
instructions: 51.96 M (-0.00%) (change within noise threshold)
heap_increase: 8 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 2.66 M (-0.04%) (change within noise threshold)
heap_increase: 8 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 49.29 M (-0.00%) (change within noise threshold)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: text
total:
instructions: 12.08 M (no change)
heap_increase: 99 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 4.20 M (no change)
heap_increase: 66 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 7.88 M (no change)
heap_increase: 33 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: variant_list
total:
instructions: 16.36 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 722.43 K (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 15.64 M (no change)
heap_increase: 2 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: vec_int16
total:
instructions: 257.99 M (no change)
heap_increase: 195 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 8.40 M (no change)
heap_increase: 130 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 249.59 M (no change)
heap_increase: 65 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: vec_nat
total:
instructions: 342.08 M (no change)
heap_increase: 172 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 66.05 M (no change)
heap_increase: 33 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 276.03 M (no change)
heap_increase: 139 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: vec_nat32
total:
instructions: 260.09 M (no change)
heap_increase: 387 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 16.79 M (no change)
heap_increase: 258 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 243.29 M (no change)
heap_increase: 129 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: vec_nat64
total:
instructions: 285.26 M (no change)
heap_increase: 771 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 33.57 M (no change)
heap_increase: 514 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 251.68 M (no change)
heap_increase: 257 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: vec_service
total:
instructions: 95.45 M (no change)
heap_increase: 1 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 689.58 K (no change)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 94.75 M (no change)
heap_increase: 1 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Benchmark: wide_record
total:
instructions: 47.83 M (-0.01%) (change within noise threshold)
heap_increase: 18 pages (no change)
stable_memory_increase: 0 pages (no change)
1. Encoding (scope):
calls: 1 (no change)
instructions: 3.27 M (-0.10%) (change within noise threshold)
heap_increase: 18 pages (no change)
stable_memory_increase: 0 pages (no change)
2. Decoding (scope):
calls: 1 (no change)
instructions: 44.56 M (-0.00%) (change within noise threshold)
heap_increase: 0 pages (no change)
stable_memory_increase: 0 pages (no change)
---------------------------------------------------
Summary:
instructions:
status: No significant changes 👍
counts: [total 20 | regressed 0 | improved 0 | new 0 | unchanged 20]
change: [max +7.05K | p75 0 | median 0 | p25 -320 | min -10.89K]
change %: [max +0.03% | p75 0.00% | median 0.00% | p25 -0.00% | min -0.02%]
heap_increase:
status: No significant changes 👍
counts: [total 20 | regressed 0 | improved 0 | new 0 | unchanged 20]
change: [max 0 | p75 0 | median 0 | p25 0 | min 0]
change %: [max 0.00% | p75 0.00% | median 0.00% | p25 0.00% | min 0.00%]
stable_memory_increase:
status: No significant changes 👍
counts: [total 20 | regressed 0 | improved 0 | new 0 | unchanged 20]
change: [max 0 | p75 0 | median 0 | p25 0 | min 0]
change %: [max 0.00% | p75 0.00% | median 0.00% | p25 0.00% | min 0.00%]
---------------------------------------------------
Successfully persisted results to canbench_results.yml

@adamspofford-dfinityadamspofford-dfinity changed the title feat: Add schemars feature to ic_principalfeat: Add schemars feature to ic_principal (and release 0.1.3)May 5, 2026
@lwshang
lwshang merged commit bf4a997 into masterMay 5, 2026
11 checks passed
@lwshang
lwshang deleted the spofford/feature_schemars branch May 5, 2026 17:40
Sign up for freeto 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.

2 participants

@adamspofford-dfinity@lwshang