@7h3/protocol 0.1.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/.dockerignore +19 -0
  2. package/.github/dependabot.yml +32 -0
  3. package/.github/workflows/ci.yml +31 -0
  4. package/.github/workflows/publish.yml +59 -0
  5. package/.github/workflows/scorecard.yml +37 -0
  6. package/7h3.example.yaml +125 -0
  7. package/CHANGELOG.md +92 -0
  8. package/CONTRIBUTING.md +82 -0
  9. package/Dockerfile +73 -0
  10. package/GOVERNANCE.md +62 -0
  11. package/README.md +323 -6
  12. package/SECURITY.md +70 -0
  13. package/bench-results/replay-cache-full-1777891033256.json +10 -0
  14. package/bench-results/replay-cache-full-1777896317488.json +10 -0
  15. package/bench-results/replay-cache-full-1777900993184.json +10 -0
  16. package/bench-results/replay-cache-full-1777901019285.json +10 -0
  17. package/bench-results/replay-cache-quick-1777870170126.json +10 -0
  18. package/bench-results/signature-profiles-quick-1775875160079.json +85 -0
  19. package/bench-results/signature-profiles-quick-1775983539716.json +85 -0
  20. package/bench-results/signature-profiles-quick-1776237913190.json +85 -0
  21. package/bench-results/wire-codecs-full-1777891019803.json +93 -0
  22. package/bench-results/wire-codecs-full-1777896260964.json +93 -0
  23. package/bench-results/wire-codecs-full-1777901004247.json +93 -0
  24. package/bench-results/wire-codecs-quick-1775972879056.json +93 -0
  25. package/bench-results/wire-codecs-quick-1775983541111.json +93 -0
  26. package/bench-results/wire-codecs-quick-1776237914299.json +93 -0
  27. package/bench-results/wire-codecs-quick-1777841285236.json +93 -0
  28. package/bench-results/wire-codecs-quick-1777841321772.json +93 -0
  29. package/bench-results/wire-codecs-quick-1777841330408.json +93 -0
  30. package/bench-results/wire-codecs-quick-1777852886082.json +93 -0
  31. package/bench-results/wire-codecs-quick-1777852988773.json +93 -0
  32. package/bench-results/wire-codecs-quick-1777870188095.json +93 -0
  33. package/bench-results/wire-codecs-quick-1777870263918.json +93 -0
  34. package/bench-results/wire-codecs-quick-1777870455034.json +93 -0
  35. package/bench-results/wire-codecs-quick-1778816163081.json +93 -0
  36. package/bench-results/wire-codecs-quick-1778843936130.json +93 -0
  37. package/bin/7h3.ts +385 -0
  38. package/conformance/7h3_v0_1.json +77 -0
  39. package/conformance/7h3_v0_1_binary.json +20 -0
  40. package/conformance/aip_v0_1_binary.json +20 -0
  41. package/docker-compose.yaml +77 -0
  42. package/docs/ADOPTION_PLAN.md +120 -0
  43. package/docs/AGENTS.md +77 -0
  44. package/docs/AIP_RFC_v0.1.md +97 -0
  45. package/docs/AI_DECISION_CARD.md +122 -0
  46. package/docs/AI_RUNTIME_POLICY.json +126 -0
  47. package/docs/AI_RUNTIME_POLICY.yaml +110 -0
  48. package/docs/BACKPRESSURE_TUNING.md +65 -0
  49. package/docs/BENCHMARK_CLAIM_MATRIX.md +42 -0
  50. package/docs/BENCHMARK_REPORT_TEMPLATE.md +169 -0
  51. package/docs/BINARY_CODEC_BENCH.md +23 -0
  52. package/docs/CLEAN_CLONE_RUNBOOK.md +36 -0
  53. package/docs/CLOCK_SKEW_POLICY.md +30 -0
  54. package/docs/DISTRIBUTED_REPLAY.md +142 -0
  55. package/docs/FUZZ_CAMPAIGN.md +121 -0
  56. package/docs/GATEWAY.md +195 -0
  57. package/docs/KEY_MANAGEMENT_POLICY.md +53 -0
  58. package/docs/KEY_REVOCATION.md +69 -0
  59. package/docs/MCP_WRAPPER.md +159 -0
  60. package/docs/MIGRATION_GUIDE.md +40 -0
  61. package/docs/OPERATORS.md +184 -0
  62. package/docs/PERF_REGRESSION_POLICY.md +34 -0
  63. package/docs/PROJECT_EXAMINATION_2026-05-31.md +219 -0
  64. package/docs/RELEASE_BENCHMARK_REPORT_2026-05-15.md +135 -0
  65. package/docs/RELEASE_GATE.md +25 -0
  66. package/docs/RELEASE_NOTES_v0.1.0.md +54 -0
  67. package/docs/SECURITY_REVIEW_2026-06-05.md +165 -0
  68. package/docs/TELEMETRY.md +41 -0
  69. package/docs/THREAT_MODEL.md +89 -0
  70. package/docs/VERSIONING_POLICY.md +30 -0
  71. package/docs/assets/banner.png +0 -0
  72. package/eslint.config.js +15 -0
  73. package/fuzz/ts/harness-decode.ts +136 -0
  74. package/fuzz/ts/harness-verify.ts +121 -0
  75. package/fuzz/ts/run.ts +35 -0
  76. package/mcp-server/README.md +38 -0
  77. package/mcp-server/package-lock.json +1187 -0
  78. package/mcp-server/package.json +35 -0
  79. package/mcp-server/src/index.ts +236 -0
  80. package/mcp-server/tsconfig.json +14 -0
  81. package/package.json +79 -13
  82. package/scripts/aip-framework-quickstart.ts +110 -0
  83. package/scripts/aip-mcp-gateway.ts +38 -0
  84. package/scripts/aip-mcp-wrap-demo.ts +72 -0
  85. package/scripts/aip-quickstart.ts +60 -0
  86. package/scripts/bench-diff.ts +118 -0
  87. package/scripts/bench-protocol-e2e.ts +937 -0
  88. package/scripts/bench-protocol-openloop.ts +1397 -0
  89. package/scripts/bench-replay-cache.ts +76 -0
  90. package/scripts/bench-signature-profiles.ts +180 -0
  91. package/scripts/bench-wire-codecs.ts +161 -0
  92. package/scripts/build-binary-conformance.ts +36 -0
  93. package/scripts/build-release-dashboard.ts +175 -0
  94. package/scripts/canary-rollout.ts +38 -0
  95. package/scripts/mcpGatewayCli.test.ts +116 -0
  96. package/scripts/prepare-aip-package.ts +88 -0
  97. package/scripts/regen-conformance-sigs.ts +18 -0
  98. package/scripts/release-gate.ts +19 -0
  99. package/scripts/validate-runtime-policy.ts +18 -0
  100. package/sdk/browser/index.test.ts +162 -0
  101. package/sdk/browser/index.ts +257 -0
  102. package/sdk/browser/package.json +13 -0
  103. package/sdk/go/go.mod +3 -0
  104. package/sdk/go/http.go +135 -0
  105. package/sdk/go/protocol.go +324 -0
  106. package/sdk/go/protocol_test.go +334 -0
  107. package/sdk/go/webhook.go +136 -0
  108. package/sdk/python/README.md +18 -0
  109. package/sdk/python/protocol_7h3/__init__.py +46 -0
  110. package/sdk/python/protocol_7h3/http.py +212 -0
  111. package/sdk/python/protocol_7h3/keys.py +149 -0
  112. package/sdk/python/protocol_7h3/protocol.py +525 -0
  113. package/sdk/python/protocol_7h3/queue.py +118 -0
  114. package/sdk/python/protocol_7h3/webhook.py +116 -0
  115. package/sdk/python/pyproject.toml +40 -0
  116. package/sdk/python/tests/test_conformance.py +110 -0
  117. package/sdk/python/tests/test_http.py +305 -0
  118. package/sdk/python/tests/test_keys.py +417 -0
  119. package/sdk/python/tests/test_queue.py +120 -0
  120. package/sdk/python/tests/test_webhook.py +345 -0
  121. package/sdk/rust/Cargo.lock +371 -0
  122. package/sdk/rust/Cargo.toml +25 -0
  123. package/sdk/rust/README.md +31 -0
  124. package/sdk/rust/fuzz/Cargo.toml +29 -0
  125. package/sdk/rust/fuzz/fuzz_targets/fuzz_canonicalize.rs +46 -0
  126. package/sdk/rust/fuzz/fuzz_targets/fuzz_decode.rs +11 -0
  127. package/sdk/rust/src/bin/aip_mcp_gateway.rs +59 -0
  128. package/sdk/rust/src/http.rs +145 -0
  129. package/sdk/rust/src/keys.rs +161 -0
  130. package/sdk/rust/src/lib.rs +688 -0
  131. package/sdk/rust/src/queue.rs +79 -0
  132. package/sdk/rust/src/webhook.rs +86 -0
  133. package/sdk/rust/tests/conformance.rs +148 -0
  134. package/sdk/rust/tests/gateway.rs +130 -0
  135. package/sdk/rust/tests/http_webhook_queue.rs +201 -0
  136. package/sdk/rust/tests/keys.rs +189 -0
  137. package/src/agentAdapter.test.ts +48 -0
  138. package/src/agentAdapter.ts +56 -0
  139. package/src/auditLog.test.ts +145 -0
  140. package/src/auditLog.ts +147 -0
  141. package/src/conformance.test.ts +136 -0
  142. package/src/conformanceVectors.ts +99 -0
  143. package/src/frameworkAdapters.test.ts +290 -0
  144. package/src/frameworkAdapters.ts +261 -0
  145. package/src/gateway.test.ts +343 -0
  146. package/src/gateway.ts +171 -0
  147. package/src/grpcBinding.test.ts +211 -0
  148. package/src/grpcBinding.ts +103 -0
  149. package/src/httpBinding.test.ts +376 -0
  150. package/src/httpBinding.ts +163 -0
  151. package/src/index.ts +32 -0
  152. package/src/keyInfra.test.ts +278 -0
  153. package/src/keyInfra.ts +228 -0
  154. package/src/keyRegistry.ts +59 -0
  155. package/src/keyRotation.test.ts +78 -0
  156. package/src/keyRotation.ts +72 -0
  157. package/src/mcpGateway.test.ts +129 -0
  158. package/src/mcpGateway.ts +250 -0
  159. package/src/mcpTransports.test.ts +92 -0
  160. package/src/mcpTransports.ts +169 -0
  161. package/src/mcpWrapper.test.ts +179 -0
  162. package/src/mcpWrapper.ts +206 -0
  163. package/src/policyEnforcer.test.ts +99 -0
  164. package/src/policyEnforcer.ts +169 -0
  165. package/src/policyTelemetryFeedback.test.ts +25 -0
  166. package/src/policyTelemetryFeedback.ts +38 -0
  167. package/src/protocol.bench.ts +37 -0
  168. package/src/protocol.test.ts +155 -0
  169. package/src/protocol.ts +413 -0
  170. package/src/protocolAgent.test.ts +105 -0
  171. package/src/protocolAgent.ts +169 -0
  172. package/src/protocolBinary.test.ts +165 -0
  173. package/src/protocolBinary.ts +312 -0
  174. package/src/protocolCapabilities.ts +70 -0
  175. package/src/protocolFuzz.advanced.test.ts +235 -0
  176. package/src/protocolFuzz.test.ts +111 -0
  177. package/src/protocolNegative.test.ts +97 -0
  178. package/src/protocolReplay.test.ts +71 -0
  179. package/src/protocolReplay.ts +194 -0
  180. package/src/protocolTransport.test.ts +556 -0
  181. package/src/protocolTransport.ts +483 -0
  182. package/src/queueBinding.test.ts +130 -0
  183. package/src/queueBinding.ts +102 -0
  184. package/src/rateLimiter.test.ts +96 -0
  185. package/src/rateLimiter.ts +46 -0
  186. package/src/redisClient.ts +140 -0
  187. package/src/redisIntegration.test.ts +134 -0
  188. package/src/replayStores.test.ts +141 -0
  189. package/src/replayStores.ts +82 -0
  190. package/src/revocation.test.ts +98 -0
  191. package/src/revocation.ts +0 -0
  192. package/src/routePolicy.test.ts +87 -0
  193. package/src/routePolicy.ts +72 -0
  194. package/src/runtimePolicy.test.ts +49 -0
  195. package/src/runtimePolicy.ts +81 -0
  196. package/src/runtimePolicyManager.test.ts +29 -0
  197. package/src/runtimePolicyManager.ts +50 -0
  198. package/src/runtimePolicyPresets.ts +43 -0
  199. package/src/signedResponse.test.ts +111 -0
  200. package/src/signedResponse.ts +83 -0
  201. package/src/webhookBinding.test.ts +144 -0
  202. package/src/webhookBinding.ts +115 -0
  203. package/src/wsBinding.test.ts +221 -0
  204. package/src/wsBinding.ts +100 -0
  205. package/tsconfig.json +15 -0
  206. package/tsconfig.lib.json +23 -0
  207. package/vite.lib.config.ts +16 -0
  208. package/agentAdapter.d.ts +0 -26
  209. package/conformanceVectors.d.ts +0 -20
  210. package/frameworkAdapters.d.ts +0 -72
  211. package/index.d.ts +0 -20
  212. package/index.js +0 -1702
  213. package/keyRotation.d.ts +0 -20
  214. package/mcpGateway.d.ts +0 -37
  215. package/mcpTransports.d.ts +0 -62
  216. package/mcpWrapper.d.ts +0 -83
  217. package/policyEnforcer.d.ts +0 -50
  218. package/policyTelemetryFeedback.d.ts +0 -11
  219. package/protocol.d.ts +0 -66
  220. package/protocolAgent.d.ts +0 -58
  221. package/protocolBinary.d.ts +0 -8
  222. package/protocolCapabilities.d.ts +0 -24
  223. package/protocolReplay.d.ts +0 -35
  224. package/protocolTransport.d.ts +0 -73
  225. package/redisClient.d.ts +0 -49
  226. package/replayStores.d.ts +0 -32
  227. package/revocation.d.ts +0 -71
  228. package/runtimePolicy.d.ts +0 -24
  229. package/runtimePolicyManager.d.ts +0 -15
  230. package/runtimePolicyPresets.d.ts +0 -11
@@ -0,0 +1,85 @@
1
+ {
2
+ "generatedAt": "2026-04-15T07:25:13.190Z",
3
+ "profile": "quick",
4
+ "iterations": 2000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "quick",
14
+ "payloadBytes": 256,
15
+ "algorithm": "HS256",
16
+ "signUsPerOp": 22.028,
17
+ "verifyUsPerOp": 16.82,
18
+ "signOpsPerSecond": 45396.554,
19
+ "verifyOpsPerSecond": 59452.295
20
+ },
21
+ {
22
+ "profile": "quick",
23
+ "payloadBytes": 256,
24
+ "algorithm": "ED25519",
25
+ "signUsPerOp": 46.164,
26
+ "verifyUsPerOp": 103.618,
27
+ "signOpsPerSecond": 21662.042,
28
+ "verifyOpsPerSecond": 9650.834
29
+ },
30
+ {
31
+ "profile": "quick",
32
+ "payloadBytes": 1024,
33
+ "algorithm": "HS256",
34
+ "signUsPerOp": 12.433,
35
+ "verifyUsPerOp": 12.785,
36
+ "signOpsPerSecond": 80430.499,
37
+ "verifyOpsPerSecond": 78216.853
38
+ },
39
+ {
40
+ "profile": "quick",
41
+ "payloadBytes": 1024,
42
+ "algorithm": "ED25519",
43
+ "signUsPerOp": 37.853,
44
+ "verifyUsPerOp": 98.984,
45
+ "signOpsPerSecond": 26417.71,
46
+ "verifyOpsPerSecond": 10102.674
47
+ },
48
+ {
49
+ "profile": "quick",
50
+ "payloadBytes": 4096,
51
+ "algorithm": "HS256",
52
+ "signUsPerOp": 31.288,
53
+ "verifyUsPerOp": 21.144,
54
+ "signOpsPerSecond": 31961.127,
55
+ "verifyOpsPerSecond": 47295.763
56
+ },
57
+ {
58
+ "profile": "quick",
59
+ "payloadBytes": 4096,
60
+ "algorithm": "ED25519",
61
+ "signUsPerOp": 52.753,
62
+ "verifyUsPerOp": 108.71,
63
+ "signOpsPerSecond": 18956.391,
64
+ "verifyOpsPerSecond": 9198.782
65
+ },
66
+ {
67
+ "profile": "quick",
68
+ "payloadBytes": 16384,
69
+ "algorithm": "HS256",
70
+ "signUsPerOp": 36.642,
71
+ "verifyUsPerOp": 32.576,
72
+ "signOpsPerSecond": 27290.862,
73
+ "verifyOpsPerSecond": 30697.597
74
+ },
75
+ {
76
+ "profile": "quick",
77
+ "payloadBytes": 16384,
78
+ "algorithm": "ED25519",
79
+ "signUsPerOp": 93.648,
80
+ "verifyUsPerOp": 140.267,
81
+ "signOpsPerSecond": 10678.28,
82
+ "verifyOpsPerSecond": 7129.262
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T10:36:59.803Z",
3
+ "profile": "full",
4
+ "iterations": 100000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "full",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.871,
18
+ "decodeUsPerOp": 0.846,
19
+ "encodeOpsPerSecond": 1147888.7,
20
+ "decodeOpsPerSecond": 1182094.018
21
+ },
22
+ {
23
+ "profile": "full",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 6.03,
28
+ "decodeUsPerOp": 2.594,
29
+ "encodeOpsPerSecond": 165840.776,
30
+ "decodeOpsPerSecond": 385485.005
31
+ },
32
+ {
33
+ "profile": "full",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.011,
38
+ "decodeUsPerOp": 0.979,
39
+ "encodeOpsPerSecond": 989524.233,
40
+ "decodeOpsPerSecond": 1021032.577
41
+ },
42
+ {
43
+ "profile": "full",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.83,
48
+ "decodeUsPerOp": 2.143,
49
+ "encodeOpsPerSecond": 127710.375,
50
+ "decodeOpsPerSecond": 466610.385
51
+ },
52
+ {
53
+ "profile": "full",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.405,
58
+ "decodeUsPerOp": 1.454,
59
+ "encodeOpsPerSecond": 415830.048,
60
+ "decodeOpsPerSecond": 687659.376
61
+ },
62
+ {
63
+ "profile": "full",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 8.232,
68
+ "decodeUsPerOp": 3.499,
69
+ "encodeOpsPerSecond": 121470.1,
70
+ "decodeOpsPerSecond": 285787.277
71
+ },
72
+ {
73
+ "profile": "full",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.041,
78
+ "decodeUsPerOp": 6.088,
79
+ "encodeOpsPerSecond": 142021.041,
80
+ "decodeOpsPerSecond": 164249.051
81
+ },
82
+ {
83
+ "profile": "full",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 12.829,
88
+ "decodeUsPerOp": 4.781,
89
+ "encodeOpsPerSecond": 77948.266,
90
+ "decodeOpsPerSecond": 209141.901
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T12:04:20.964Z",
3
+ "profile": "full",
4
+ "iterations": 100000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "full",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.725,
18
+ "decodeUsPerOp": 0.854,
19
+ "encodeOpsPerSecond": 1379340.728,
20
+ "decodeOpsPerSecond": 1171266.376
21
+ },
22
+ {
23
+ "profile": "full",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 5.926,
28
+ "decodeUsPerOp": 2.479,
29
+ "encodeOpsPerSecond": 168754.579,
30
+ "decodeOpsPerSecond": 403328.781
31
+ },
32
+ {
33
+ "profile": "full",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.169,
38
+ "decodeUsPerOp": 1.086,
39
+ "encodeOpsPerSecond": 855546.881,
40
+ "decodeOpsPerSecond": 921166.777
41
+ },
42
+ {
43
+ "profile": "full",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.344,
48
+ "decodeUsPerOp": 2.558,
49
+ "encodeOpsPerSecond": 136162.207,
50
+ "decodeOpsPerSecond": 390905.125
51
+ },
52
+ {
53
+ "profile": "full",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.744,
58
+ "decodeUsPerOp": 1.614,
59
+ "encodeOpsPerSecond": 364451.4,
60
+ "decodeOpsPerSecond": 619485.948
61
+ },
62
+ {
63
+ "profile": "full",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 8.049,
68
+ "decodeUsPerOp": 2.825,
69
+ "encodeOpsPerSecond": 124237.744,
70
+ "decodeOpsPerSecond": 354024.566
71
+ },
72
+ {
73
+ "profile": "full",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.81,
78
+ "decodeUsPerOp": 4.271,
79
+ "encodeOpsPerSecond": 128044.375,
80
+ "decodeOpsPerSecond": 234138.851
81
+ },
82
+ {
83
+ "profile": "full",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 13.755,
88
+ "decodeUsPerOp": 4.153,
89
+ "encodeOpsPerSecond": 72701.905,
90
+ "decodeOpsPerSecond": 240791.753
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T13:23:24.247Z",
3
+ "profile": "full",
4
+ "iterations": 100000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "full",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.624,
18
+ "decodeUsPerOp": 0.702,
19
+ "encodeOpsPerSecond": 1602360.829,
20
+ "decodeOpsPerSecond": 1423500.452
21
+ },
22
+ {
23
+ "profile": "full",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 4.988,
28
+ "decodeUsPerOp": 2.053,
29
+ "encodeOpsPerSecond": 200491.897,
30
+ "decodeOpsPerSecond": 487198.326
31
+ },
32
+ {
33
+ "profile": "full",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 0.869,
38
+ "decodeUsPerOp": 0.846,
39
+ "encodeOpsPerSecond": 1150110.357,
40
+ "decodeOpsPerSecond": 1182337.332
41
+ },
42
+ {
43
+ "profile": "full",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.191,
48
+ "decodeUsPerOp": 2.513,
49
+ "encodeOpsPerSecond": 139070.874,
50
+ "decodeOpsPerSecond": 398006.723
51
+ },
52
+ {
53
+ "profile": "full",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.528,
58
+ "decodeUsPerOp": 1.705,
59
+ "encodeOpsPerSecond": 395510.237,
60
+ "decodeOpsPerSecond": 586432.501
61
+ },
62
+ {
63
+ "profile": "full",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 8.741,
68
+ "decodeUsPerOp": 2.829,
69
+ "encodeOpsPerSecond": 114399.142,
70
+ "decodeOpsPerSecond": 353500.956
71
+ },
72
+ {
73
+ "profile": "full",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.262,
78
+ "decodeUsPerOp": 3.881,
79
+ "encodeOpsPerSecond": 137696.221,
80
+ "decodeOpsPerSecond": 257643.134
81
+ },
82
+ {
83
+ "profile": "full",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 12.18,
88
+ "decodeUsPerOp": 3.845,
89
+ "encodeOpsPerSecond": 82104.791,
90
+ "decodeOpsPerSecond": 260069.289
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-04-12T05:47:59.056Z",
3
+ "profile": "quick",
4
+ "iterations": 10000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "quick",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.722,
18
+ "decodeUsPerOp": 0.831,
19
+ "encodeOpsPerSecond": 1384192.248,
20
+ "decodeOpsPerSecond": 1203082.924
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 11.787,
28
+ "decodeUsPerOp": 3.753,
29
+ "encodeOpsPerSecond": 84839.831,
30
+ "decodeOpsPerSecond": 266428.373
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.091,
38
+ "decodeUsPerOp": 0.901,
39
+ "encodeOpsPerSecond": 916988.767,
40
+ "decodeOpsPerSecond": 1110391.084
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 13.665,
48
+ "decodeUsPerOp": 3.484,
49
+ "encodeOpsPerSecond": 73179.25,
50
+ "decodeOpsPerSecond": 287001.669
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.627,
58
+ "decodeUsPerOp": 1.584,
59
+ "encodeOpsPerSecond": 380627.984,
60
+ "decodeOpsPerSecond": 631393.251
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 12.434,
68
+ "decodeUsPerOp": 3.392,
69
+ "encodeOpsPerSecond": 80422.378,
70
+ "decodeOpsPerSecond": 294813.928
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 6.822,
78
+ "decodeUsPerOp": 3.738,
79
+ "encodeOpsPerSecond": 146585.744,
80
+ "decodeOpsPerSecond": 267517.408
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 18.949,
88
+ "decodeUsPerOp": 4.828,
89
+ "encodeOpsPerSecond": 52772.566,
90
+ "decodeOpsPerSecond": 207123.658
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-04-12T08:45:41.111Z",
3
+ "profile": "quick",
4
+ "iterations": 10000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "quick",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.955,
18
+ "decodeUsPerOp": 0.981,
19
+ "encodeOpsPerSecond": 1047168.446,
20
+ "decodeOpsPerSecond": 1018860.431
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 13.107,
28
+ "decodeUsPerOp": 3.523,
29
+ "encodeOpsPerSecond": 76298.016,
30
+ "decodeOpsPerSecond": 283853.488
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 0.97,
38
+ "decodeUsPerOp": 1.017,
39
+ "encodeOpsPerSecond": 1031094.936,
40
+ "decodeOpsPerSecond": 983338.219
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 13.291,
48
+ "decodeUsPerOp": 4.091,
49
+ "encodeOpsPerSecond": 75239.652,
50
+ "decodeOpsPerSecond": 244425.062
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 6.148,
58
+ "decodeUsPerOp": 2.719,
59
+ "encodeOpsPerSecond": 162667.164,
60
+ "decodeOpsPerSecond": 367802.996
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 17.346,
68
+ "decodeUsPerOp": 4.78,
69
+ "encodeOpsPerSecond": 57651.144,
70
+ "decodeOpsPerSecond": 209189.257
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 10.404,
78
+ "decodeUsPerOp": 5.64,
79
+ "encodeOpsPerSecond": 96117.653,
80
+ "decodeOpsPerSecond": 177306.26
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 23.479,
88
+ "decodeUsPerOp": 5.727,
89
+ "encodeOpsPerSecond": 42591.86,
90
+ "decodeOpsPerSecond": 174599.776
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-04-15T07:25:14.299Z",
3
+ "profile": "quick",
4
+ "iterations": 10000,
5
+ "payloadSizes": [
6
+ 256,
7
+ 1024,
8
+ 4096,
9
+ 16384
10
+ ],
11
+ "results": [
12
+ {
13
+ "profile": "quick",
14
+ "payloadBytes": 256,
15
+ "format": "compact-json",
16
+ "encodedBytes": 498,
17
+ "encodeUsPerOp": 0.883,
18
+ "decodeUsPerOp": 1.046,
19
+ "encodeOpsPerSecond": 1132758.119,
20
+ "decodeOpsPerSecond": 955712.749
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 11.727,
28
+ "decodeUsPerOp": 3.991,
29
+ "encodeOpsPerSecond": 85275.786,
30
+ "decodeOpsPerSecond": 250536.712
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 0.925,
38
+ "decodeUsPerOp": 0.89,
39
+ "encodeOpsPerSecond": 1081547.257,
40
+ "decodeOpsPerSecond": 1123312.532
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 11.603,
48
+ "decodeUsPerOp": 3.307,
49
+ "encodeOpsPerSecond": 86183.343,
50
+ "decodeOpsPerSecond": 302362.028
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.615,
58
+ "decodeUsPerOp": 1.551,
59
+ "encodeOpsPerSecond": 382375.663,
60
+ "decodeOpsPerSecond": 644687.258
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 13.106,
68
+ "decodeUsPerOp": 3.407,
69
+ "encodeOpsPerSecond": 76300.487,
70
+ "decodeOpsPerSecond": 293541.563
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.167,
78
+ "decodeUsPerOp": 3.888,
79
+ "encodeOpsPerSecond": 139534.283,
80
+ "decodeOpsPerSecond": 257181.484
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 18.561,
88
+ "decodeUsPerOp": 4.747,
89
+ "encodeOpsPerSecond": 53875.198,
90
+ "decodeOpsPerSecond": 210651.398
91
+ }
92
+ ]
93
+ }