@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,93 @@
1
+ {
2
+ "generatedAt": "2026-05-03T20:48:05.236Z",
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.945,
18
+ "decodeUsPerOp": 1.04,
19
+ "encodeOpsPerSecond": 1058254.699,
20
+ "decodeOpsPerSecond": 961897.508
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 20.36,
28
+ "decodeUsPerOp": 3.31,
29
+ "encodeOpsPerSecond": 49115.053,
30
+ "decodeOpsPerSecond": 302136.346
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 3.071,
38
+ "decodeUsPerOp": 2.954,
39
+ "encodeOpsPerSecond": 325661.402,
40
+ "decodeOpsPerSecond": 338556.435
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 51.596,
48
+ "decodeUsPerOp": 10.618,
49
+ "encodeOpsPerSecond": 19381.433,
50
+ "decodeOpsPerSecond": 94175.748
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.918,
58
+ "decodeUsPerOp": 3.729,
59
+ "encodeOpsPerSecond": 342744.398,
60
+ "decodeOpsPerSecond": 268148.002
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 34.613,
68
+ "decodeUsPerOp": 5.296,
69
+ "encodeOpsPerSecond": 28890.576,
70
+ "decodeOpsPerSecond": 188833.412
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 8.781,
78
+ "decodeUsPerOp": 5.415,
79
+ "encodeOpsPerSecond": 113877.172,
80
+ "decodeOpsPerSecond": 184666.331
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 23.885,
88
+ "decodeUsPerOp": 5.455,
89
+ "encodeOpsPerSecond": 41868.151,
90
+ "decodeOpsPerSecond": 183327.632
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-03T20:48:41.772Z",
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": 1.241,
18
+ "decodeUsPerOp": 0.926,
19
+ "encodeOpsPerSecond": 805735.483,
20
+ "decodeOpsPerSecond": 1079956.525
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 7.926,
28
+ "decodeUsPerOp": 3.192,
29
+ "encodeOpsPerSecond": 126170.547,
30
+ "decodeOpsPerSecond": 313273.806
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.808,
38
+ "decodeUsPerOp": 1.226,
39
+ "encodeOpsPerSecond": 553056.264,
40
+ "decodeOpsPerSecond": 815697.145
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 10.058,
48
+ "decodeUsPerOp": 3.584,
49
+ "encodeOpsPerSecond": 99422.34,
50
+ "decodeOpsPerSecond": 279043.286
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 3.28,
58
+ "decodeUsPerOp": 1.999,
59
+ "encodeOpsPerSecond": 304896.705,
60
+ "decodeOpsPerSecond": 500279.606
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 12.631,
68
+ "decodeUsPerOp": 3.857,
69
+ "encodeOpsPerSecond": 79172.492,
70
+ "decodeOpsPerSecond": 259300.305
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 9.099,
78
+ "decodeUsPerOp": 5.333,
79
+ "encodeOpsPerSecond": 109906.404,
80
+ "decodeOpsPerSecond": 187527.265
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 70.32,
88
+ "decodeUsPerOp": 32.694,
89
+ "encodeOpsPerSecond": 14220.743,
90
+ "decodeOpsPerSecond": 30586.958
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-03T20:48:50.408Z",
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.823,
18
+ "decodeUsPerOp": 0.849,
19
+ "encodeOpsPerSecond": 1214875.224,
20
+ "decodeOpsPerSecond": 1178517.465
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 6.636,
28
+ "decodeUsPerOp": 2.736,
29
+ "encodeOpsPerSecond": 150689.344,
30
+ "decodeOpsPerSecond": 365533.576
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.047,
38
+ "decodeUsPerOp": 1.19,
39
+ "encodeOpsPerSecond": 954792.668,
40
+ "decodeOpsPerSecond": 840014.882
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 8.517,
48
+ "decodeUsPerOp": 3.227,
49
+ "encodeOpsPerSecond": 117413.15,
50
+ "decodeOpsPerSecond": 309867.204
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.558,
58
+ "decodeUsPerOp": 1.68,
59
+ "encodeOpsPerSecond": 390956.381,
60
+ "decodeOpsPerSecond": 595390.31
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 9.834,
68
+ "decodeUsPerOp": 2.89,
69
+ "encodeOpsPerSecond": 101686.19,
70
+ "decodeOpsPerSecond": 346045.583
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.964,
78
+ "decodeUsPerOp": 4.336,
79
+ "encodeOpsPerSecond": 125561.839,
80
+ "decodeOpsPerSecond": 230645.791
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 16.419,
88
+ "decodeUsPerOp": 4.858,
89
+ "encodeOpsPerSecond": 60904.149,
90
+ "decodeOpsPerSecond": 205841.824
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T00:01:26.082Z",
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": 1.045,
18
+ "decodeUsPerOp": 0.839,
19
+ "encodeOpsPerSecond": 957366.828,
20
+ "decodeOpsPerSecond": 1191980.64
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 6.54,
28
+ "decodeUsPerOp": 2.84,
29
+ "encodeOpsPerSecond": 152894.326,
30
+ "decodeOpsPerSecond": 352069.548
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.051,
38
+ "decodeUsPerOp": 1.049,
39
+ "encodeOpsPerSecond": 951619.023,
40
+ "decodeOpsPerSecond": 952858.107
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.718,
48
+ "decodeUsPerOp": 2.984,
49
+ "encodeOpsPerSecond": 129560.798,
50
+ "decodeOpsPerSecond": 335153.316
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.808,
58
+ "decodeUsPerOp": 1.87,
59
+ "encodeOpsPerSecond": 356093.361,
60
+ "decodeOpsPerSecond": 534621.272
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 9.624,
68
+ "decodeUsPerOp": 3.44,
69
+ "encodeOpsPerSecond": 103911.468,
70
+ "decodeOpsPerSecond": 290703.041
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.871,
78
+ "decodeUsPerOp": 4.646,
79
+ "encodeOpsPerSecond": 127056.531,
80
+ "decodeOpsPerSecond": 215239.856
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 16.322,
88
+ "decodeUsPerOp": 4.979,
89
+ "encodeOpsPerSecond": 61268.333,
90
+ "decodeOpsPerSecond": 200839.247
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T00:03:08.773Z",
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.928,
18
+ "decodeUsPerOp": 0.998,
19
+ "encodeOpsPerSecond": 1077222.296,
20
+ "decodeOpsPerSecond": 1002359.153
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 9.007,
28
+ "decodeUsPerOp": 5.207,
29
+ "encodeOpsPerSecond": 111021.021,
30
+ "decodeOpsPerSecond": 192040.512
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.653,
38
+ "decodeUsPerOp": 1.536,
39
+ "encodeOpsPerSecond": 605105.273,
40
+ "decodeOpsPerSecond": 650963.39
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 10.03,
48
+ "decodeUsPerOp": 3.831,
49
+ "encodeOpsPerSecond": 99703.346,
50
+ "decodeOpsPerSecond": 260999.94
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 3.829,
58
+ "decodeUsPerOp": 2.066,
59
+ "encodeOpsPerSecond": 261178.001,
60
+ "decodeOpsPerSecond": 484047.372
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 9.683,
68
+ "decodeUsPerOp": 3.768,
69
+ "encodeOpsPerSecond": 103270.991,
70
+ "decodeOpsPerSecond": 265385.597
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.781,
78
+ "decodeUsPerOp": 4.407,
79
+ "encodeOpsPerSecond": 128521.079,
80
+ "decodeOpsPerSecond": 226927.648
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 15.02,
88
+ "decodeUsPerOp": 5.285,
89
+ "encodeOpsPerSecond": 66578.233,
90
+ "decodeOpsPerSecond": 189230.026
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T04:49:48.095Z",
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.699,
18
+ "decodeUsPerOp": 0.919,
19
+ "encodeOpsPerSecond": 1430299.025,
20
+ "decodeOpsPerSecond": 1088642.498
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 14.596,
28
+ "decodeUsPerOp": 6.356,
29
+ "encodeOpsPerSecond": 68512.311,
30
+ "decodeOpsPerSecond": 157319.99
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.064,
38
+ "decodeUsPerOp": 1.604,
39
+ "encodeOpsPerSecond": 939471.54,
40
+ "decodeOpsPerSecond": 623283.322
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 8.651,
48
+ "decodeUsPerOp": 3.528,
49
+ "encodeOpsPerSecond": 115589.439,
50
+ "decodeOpsPerSecond": 283478.909
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 3.22,
58
+ "decodeUsPerOp": 2.35,
59
+ "encodeOpsPerSecond": 310539.409,
60
+ "decodeOpsPerSecond": 425588.056
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 11.62,
68
+ "decodeUsPerOp": 4.266,
69
+ "encodeOpsPerSecond": 86056.38,
70
+ "decodeOpsPerSecond": 234420.205
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 9.924,
78
+ "decodeUsPerOp": 4.988,
79
+ "encodeOpsPerSecond": 100761.947,
80
+ "decodeOpsPerSecond": 200475.395
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 17.771,
88
+ "decodeUsPerOp": 5.788,
89
+ "encodeOpsPerSecond": 56271.464,
90
+ "decodeOpsPerSecond": 172775.869
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T04:51:03.918Z",
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": 1.323,
18
+ "decodeUsPerOp": 0.913,
19
+ "encodeOpsPerSecond": 755765.07,
20
+ "decodeOpsPerSecond": 1094818.269
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 6.114,
28
+ "decodeUsPerOp": 2.741,
29
+ "encodeOpsPerSecond": 163565.407,
30
+ "decodeOpsPerSecond": 364886.212
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.057,
38
+ "decodeUsPerOp": 0.991,
39
+ "encodeOpsPerSecond": 945700.345,
40
+ "decodeOpsPerSecond": 1008693.73
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 6.829,
48
+ "decodeUsPerOp": 2.715,
49
+ "encodeOpsPerSecond": 146433.951,
50
+ "decodeOpsPerSecond": 368287.134
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.515,
58
+ "decodeUsPerOp": 1.63,
59
+ "encodeOpsPerSecond": 397591.138,
60
+ "decodeOpsPerSecond": 613473.861
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 7.976,
68
+ "decodeUsPerOp": 3.04,
69
+ "encodeOpsPerSecond": 125371.768,
70
+ "decodeOpsPerSecond": 328898.542
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 7.543,
78
+ "decodeUsPerOp": 4.043,
79
+ "encodeOpsPerSecond": 132567.175,
80
+ "decodeOpsPerSecond": 247335.461
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 15.794,
88
+ "decodeUsPerOp": 4.481,
89
+ "encodeOpsPerSecond": 63314.967,
90
+ "decodeOpsPerSecond": 223182.398
91
+ }
92
+ ]
93
+ }