@7h3/protocol 0.1.2 → 0.5.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 (276) 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 +152 -0
  8. package/CONTRIBUTING.md +82 -0
  9. package/Dockerfile +73 -0
  10. package/GOVERNANCE.md +62 -0
  11. package/README.md +1317 -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 +406 -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-github.png +0 -0
  72. package/docs/assets/banner.png +0 -0
  73. package/docs/assets/banner.svg +123 -0
  74. package/eslint.config.js +15 -0
  75. package/fuzz/ts/harness-decode.ts +136 -0
  76. package/fuzz/ts/harness-verify.ts +121 -0
  77. package/fuzz/ts/run.ts +35 -0
  78. package/mcp-server/README.md +38 -0
  79. package/mcp-server/package-lock.json +1187 -0
  80. package/mcp-server/package.json +35 -0
  81. package/mcp-server/src/index.ts +236 -0
  82. package/mcp-server/tsconfig.json +14 -0
  83. package/package.json +121 -13
  84. package/scripts/aip-framework-quickstart.ts +110 -0
  85. package/scripts/aip-mcp-gateway.ts +38 -0
  86. package/scripts/aip-mcp-wrap-demo.ts +72 -0
  87. package/scripts/aip-quickstart.ts +60 -0
  88. package/scripts/bench-diff.ts +118 -0
  89. package/scripts/bench-protocol-e2e.ts +937 -0
  90. package/scripts/bench-protocol-openloop.ts +1397 -0
  91. package/scripts/bench-replay-cache.ts +76 -0
  92. package/scripts/bench-signature-profiles.ts +180 -0
  93. package/scripts/bench-wire-codecs.ts +161 -0
  94. package/scripts/build-binary-conformance.ts +36 -0
  95. package/scripts/build-release-dashboard.ts +175 -0
  96. package/scripts/canary-rollout.ts +38 -0
  97. package/scripts/mcpGatewayCli.test.ts +116 -0
  98. package/scripts/prepare-aip-package.ts +88 -0
  99. package/scripts/regen-conformance-sigs.ts +18 -0
  100. package/scripts/release-gate.ts +19 -0
  101. package/scripts/validate-runtime-policy.ts +18 -0
  102. package/sdk/browser/index.test.ts +162 -0
  103. package/sdk/browser/index.ts +257 -0
  104. package/sdk/browser/package.json +13 -0
  105. package/sdk/go/cbor.go +551 -0
  106. package/sdk/go/cbor_test.go +232 -0
  107. package/sdk/go/encryption.go +280 -0
  108. package/sdk/go/encryption_test.go +318 -0
  109. package/sdk/go/go.mod +7 -0
  110. package/sdk/go/go.sum +4 -0
  111. package/sdk/go/http.go +135 -0
  112. package/sdk/go/protocol.go +324 -0
  113. package/sdk/go/protocol_test.go +334 -0
  114. package/sdk/go/replay.go +121 -0
  115. package/sdk/go/replay_test.go +149 -0
  116. package/sdk/go/webhook.go +136 -0
  117. package/sdk/pq/package-lock.json +1358 -0
  118. package/sdk/pq/package.json +42 -0
  119. package/sdk/pq/src/index.test.ts +143 -0
  120. package/sdk/pq/src/index.ts +166 -0
  121. package/sdk/pq/tsconfig.json +14 -0
  122. package/sdk/pq/vitest.config.ts +7 -0
  123. package/sdk/python/README.md +18 -0
  124. package/sdk/python/protocol_7h3/__init__.py +46 -0
  125. package/sdk/python/protocol_7h3/encryption.py +252 -0
  126. package/sdk/python/protocol_7h3/http.py +212 -0
  127. package/sdk/python/protocol_7h3/keys.py +149 -0
  128. package/sdk/python/protocol_7h3/pq.py +244 -0
  129. package/sdk/python/protocol_7h3/protocol.py +525 -0
  130. package/sdk/python/protocol_7h3/queue.py +118 -0
  131. package/sdk/python/protocol_7h3/replay.py +98 -0
  132. package/sdk/python/protocol_7h3/webhook.py +116 -0
  133. package/sdk/python/pyproject.toml +40 -0
  134. package/sdk/python/tests/test_conformance.py +110 -0
  135. package/sdk/python/tests/test_encryption.py +206 -0
  136. package/sdk/python/tests/test_http.py +305 -0
  137. package/sdk/python/tests/test_keys.py +417 -0
  138. package/sdk/python/tests/test_queue.py +120 -0
  139. package/sdk/python/tests/test_webhook.py +345 -0
  140. package/sdk/rust/Cargo.lock +371 -0
  141. package/sdk/rust/Cargo.toml +25 -0
  142. package/sdk/rust/README.md +31 -0
  143. package/sdk/rust/fuzz/Cargo.toml +29 -0
  144. package/sdk/rust/fuzz/fuzz_targets/fuzz_canonicalize.rs +46 -0
  145. package/sdk/rust/fuzz/fuzz_targets/fuzz_decode.rs +11 -0
  146. package/sdk/rust/src/bin/aip_mcp_gateway.rs +59 -0
  147. package/sdk/rust/src/http.rs +145 -0
  148. package/sdk/rust/src/keys.rs +161 -0
  149. package/sdk/rust/src/lib.rs +688 -0
  150. package/sdk/rust/src/queue.rs +79 -0
  151. package/sdk/rust/src/webhook.rs +86 -0
  152. package/sdk/rust/tests/conformance.rs +148 -0
  153. package/sdk/rust/tests/gateway.rs +130 -0
  154. package/sdk/rust/tests/http_webhook_queue.rs +201 -0
  155. package/sdk/rust/tests/keys.rs +189 -0
  156. package/sdk/threshold/index.d.ts +68 -0
  157. package/sdk/threshold/index.d.ts.map +1 -0
  158. package/sdk/threshold/index.js +254 -0
  159. package/sdk/threshold/package-lock.json +1361 -0
  160. package/sdk/threshold/package.json +39 -0
  161. package/sdk/threshold/src/index.d.ts +68 -0
  162. package/sdk/threshold/src/index.d.ts.map +1 -0
  163. package/sdk/threshold/src/index.js +254 -0
  164. package/sdk/threshold/src/index.test.ts +238 -0
  165. package/sdk/threshold/src/index.ts +355 -0
  166. package/sdk/threshold/tsconfig.json +19 -0
  167. package/sdk/threshold/vitest.config.ts +12 -0
  168. package/src/agentAdapter.test.ts +48 -0
  169. package/src/agentAdapter.ts +56 -0
  170. package/src/auditLog.test.ts +145 -0
  171. package/src/auditLog.ts +147 -0
  172. package/src/capability.test.ts +504 -0
  173. package/src/capability.ts +380 -0
  174. package/src/cborCodec.test.ts +263 -0
  175. package/src/cborCodec.ts +339 -0
  176. package/src/conformance.test.ts +136 -0
  177. package/src/conformanceVectors.ts +99 -0
  178. package/src/encryption.test.ts +206 -0
  179. package/src/encryption.ts +245 -0
  180. package/src/envelopeCbor.ts +140 -0
  181. package/src/frameworkAdapters.test.ts +290 -0
  182. package/src/frameworkAdapters.ts +261 -0
  183. package/src/gateway.test.ts +343 -0
  184. package/src/gateway.ts +246 -0
  185. package/src/grpcBinding.test.ts +211 -0
  186. package/src/grpcBinding.ts +103 -0
  187. package/src/httpBinding.test.ts +376 -0
  188. package/src/httpBinding.ts +189 -0
  189. package/src/index.ts +39 -0
  190. package/src/keyInfra.test.ts +278 -0
  191. package/src/keyInfra.ts +228 -0
  192. package/src/keyRegistry.ts +59 -0
  193. package/src/keyRotation.test.ts +78 -0
  194. package/src/keyRotation.ts +72 -0
  195. package/src/mcpGateway.test.ts +129 -0
  196. package/src/mcpGateway.ts +250 -0
  197. package/src/mcpTransports.test.ts +92 -0
  198. package/src/mcpTransports.ts +169 -0
  199. package/src/mcpWrapper.test.ts +179 -0
  200. package/src/mcpWrapper.ts +206 -0
  201. package/src/otel.ts +136 -0
  202. package/src/policyEnforcer.test.ts +99 -0
  203. package/src/policyEnforcer.ts +169 -0
  204. package/src/policyTelemetryFeedback.test.ts +25 -0
  205. package/src/policyTelemetryFeedback.ts +38 -0
  206. package/src/protocol.bench.ts +37 -0
  207. package/{protocol.d.ts → src/protocol.d.ts} +2 -1
  208. package/src/protocol.d.ts.map +1 -0
  209. package/src/protocol.js +294 -0
  210. package/src/protocol.test.ts +155 -0
  211. package/src/protocol.ts +414 -0
  212. package/src/protocolAgent.test.ts +105 -0
  213. package/src/protocolAgent.ts +169 -0
  214. package/src/protocolBinary.test.ts +165 -0
  215. package/src/protocolBinary.ts +312 -0
  216. package/src/protocolCapabilities.ts +70 -0
  217. package/src/protocolFuzz.advanced.test.ts +235 -0
  218. package/src/protocolFuzz.test.ts +111 -0
  219. package/src/protocolNegative.test.ts +97 -0
  220. package/src/protocolReplay.test.ts +71 -0
  221. package/src/protocolReplay.ts +194 -0
  222. package/src/protocolTransport.test.ts +556 -0
  223. package/src/protocolTransport.ts +483 -0
  224. package/src/queueBinding.test.ts +130 -0
  225. package/src/queueBinding.ts +102 -0
  226. package/src/rateLimiter.test.ts +96 -0
  227. package/src/rateLimiter.ts +46 -0
  228. package/src/redisClient.ts +140 -0
  229. package/src/redisIntegration.test.ts +134 -0
  230. package/src/replayStores.test.ts +273 -0
  231. package/src/replayStores.ts +215 -0
  232. package/src/revocation.test.ts +98 -0
  233. package/src/revocation.ts +0 -0
  234. package/src/routePolicy.test.ts +87 -0
  235. package/src/routePolicy.ts +72 -0
  236. package/src/runtimePolicy.test.ts +49 -0
  237. package/src/runtimePolicy.ts +81 -0
  238. package/src/runtimePolicyManager.test.ts +29 -0
  239. package/src/runtimePolicyManager.ts +50 -0
  240. package/src/runtimePolicyPresets.ts +43 -0
  241. package/src/signedResponse.test.ts +111 -0
  242. package/src/signedResponse.ts +83 -0
  243. package/src/stream.test.ts +254 -0
  244. package/src/stream.ts +417 -0
  245. package/src/telemetry.test.ts +251 -0
  246. package/src/telemetry.ts +299 -0
  247. package/src/webhookBinding.test.ts +144 -0
  248. package/src/webhookBinding.ts +115 -0
  249. package/src/wsBinding.test.ts +221 -0
  250. package/src/wsBinding.ts +200 -0
  251. package/tsconfig.json +15 -0
  252. package/tsconfig.lib.json +23 -0
  253. package/vite.lib.config.ts +16 -0
  254. package/vitest.config.ts +11 -0
  255. package/agentAdapter.d.ts +0 -26
  256. package/conformanceVectors.d.ts +0 -20
  257. package/frameworkAdapters.d.ts +0 -72
  258. package/index.d.ts +0 -20
  259. package/index.js +0 -1702
  260. package/keyRotation.d.ts +0 -20
  261. package/mcpGateway.d.ts +0 -37
  262. package/mcpTransports.d.ts +0 -62
  263. package/mcpWrapper.d.ts +0 -83
  264. package/policyEnforcer.d.ts +0 -50
  265. package/policyTelemetryFeedback.d.ts +0 -11
  266. package/protocolAgent.d.ts +0 -58
  267. package/protocolBinary.d.ts +0 -8
  268. package/protocolCapabilities.d.ts +0 -24
  269. package/protocolReplay.d.ts +0 -35
  270. package/protocolTransport.d.ts +0 -73
  271. package/redisClient.d.ts +0 -49
  272. package/replayStores.d.ts +0 -32
  273. package/revocation.d.ts +0 -71
  274. package/runtimePolicy.d.ts +0 -24
  275. package/runtimePolicyManager.d.ts +0 -15
  276. package/runtimePolicyPresets.d.ts +0 -11
@@ -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
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-04T04:54:15.034Z",
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.71,
18
+ "decodeUsPerOp": 0.763,
19
+ "encodeOpsPerSecond": 1408024.132,
20
+ "decodeOpsPerSecond": 1309799.897
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 5.978,
28
+ "decodeUsPerOp": 3.083,
29
+ "encodeOpsPerSecond": 167275.012,
30
+ "decodeOpsPerSecond": 324371.448
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.175,
38
+ "decodeUsPerOp": 1.123,
39
+ "encodeOpsPerSecond": 850943.973,
40
+ "decodeOpsPerSecond": 890390.523
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.602,
48
+ "decodeUsPerOp": 2.673,
49
+ "encodeOpsPerSecond": 131550.669,
50
+ "decodeOpsPerSecond": 374088.197
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.145,
58
+ "decodeUsPerOp": 1.475,
59
+ "encodeOpsPerSecond": 466137.206,
60
+ "decodeOpsPerSecond": 677827.411
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 11.99,
68
+ "decodeUsPerOp": 3.082,
69
+ "encodeOpsPerSecond": 83403.322,
70
+ "decodeOpsPerSecond": 324446.569
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 6.84,
78
+ "decodeUsPerOp": 3.734,
79
+ "encodeOpsPerSecond": 146192.782,
80
+ "decodeOpsPerSecond": 267827.632
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 13.639,
88
+ "decodeUsPerOp": 3.783,
89
+ "encodeOpsPerSecond": 73320.881,
90
+ "decodeOpsPerSecond": 264353.217
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-15T03:36:03.081Z",
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.793,
18
+ "decodeUsPerOp": 1.03,
19
+ "encodeOpsPerSecond": 1261085.096,
20
+ "decodeOpsPerSecond": 971138.351
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 5.529,
28
+ "decodeUsPerOp": 2.827,
29
+ "encodeOpsPerSecond": 180848.871,
30
+ "decodeOpsPerSecond": 353762.342
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 1.07,
38
+ "decodeUsPerOp": 1.066,
39
+ "encodeOpsPerSecond": 934445.822,
40
+ "decodeOpsPerSecond": 937718.078
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 7.638,
48
+ "decodeUsPerOp": 2.989,
49
+ "encodeOpsPerSecond": 130926.791,
50
+ "decodeOpsPerSecond": 334577.225
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 3.104,
58
+ "decodeUsPerOp": 1.807,
59
+ "encodeOpsPerSecond": 322159.811,
60
+ "decodeOpsPerSecond": 553432.68
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 8.986,
68
+ "decodeUsPerOp": 3.036,
69
+ "encodeOpsPerSecond": 111280.79,
70
+ "decodeOpsPerSecond": 329346.831
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 8.292,
78
+ "decodeUsPerOp": 4.561,
79
+ "encodeOpsPerSecond": 120595.796,
80
+ "decodeOpsPerSecond": 219271.207
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 15.204,
88
+ "decodeUsPerOp": 4.587,
89
+ "encodeOpsPerSecond": 65772.192,
90
+ "decodeOpsPerSecond": 217984.825
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "generatedAt": "2026-05-15T11:18:56.130Z",
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.861,
18
+ "decodeUsPerOp": 0.93,
19
+ "encodeOpsPerSecond": 1161370.719,
20
+ "decodeOpsPerSecond": 1075066.173
21
+ },
22
+ {
23
+ "profile": "quick",
24
+ "payloadBytes": 256,
25
+ "format": "binary",
26
+ "encodedBytes": 426,
27
+ "encodeUsPerOp": 6.016,
28
+ "decodeUsPerOp": 2.499,
29
+ "encodeOpsPerSecond": 166209.883,
30
+ "decodeOpsPerSecond": 400117.683
31
+ },
32
+ {
33
+ "profile": "quick",
34
+ "payloadBytes": 1024,
35
+ "format": "compact-json",
36
+ "encodedBytes": 1269,
37
+ "encodeUsPerOp": 0.963,
38
+ "decodeUsPerOp": 0.904,
39
+ "encodeOpsPerSecond": 1038530.737,
40
+ "decodeOpsPerSecond": 1105743.219
41
+ },
42
+ {
43
+ "profile": "quick",
44
+ "payloadBytes": 1024,
45
+ "format": "binary",
46
+ "encodedBytes": 1197,
47
+ "encodeUsPerOp": 6.58,
48
+ "decodeUsPerOp": 2.551,
49
+ "encodeOpsPerSecond": 151983.004,
50
+ "decodeOpsPerSecond": 391961.804
51
+ },
52
+ {
53
+ "profile": "quick",
54
+ "payloadBytes": 4096,
55
+ "format": "compact-json",
56
+ "encodedBytes": 4341,
57
+ "encodeUsPerOp": 2.29,
58
+ "decodeUsPerOp": 1.706,
59
+ "encodeOpsPerSecond": 436690.681,
60
+ "decodeOpsPerSecond": 586132.045
61
+ },
62
+ {
63
+ "profile": "quick",
64
+ "payloadBytes": 4096,
65
+ "format": "binary",
66
+ "encodedBytes": 4269,
67
+ "encodeUsPerOp": 8.274,
68
+ "decodeUsPerOp": 2.81,
69
+ "encodeOpsPerSecond": 120859.221,
70
+ "decodeOpsPerSecond": 355922.792
71
+ },
72
+ {
73
+ "profile": "quick",
74
+ "payloadBytes": 16384,
75
+ "format": "compact-json",
76
+ "encodedBytes": 16632,
77
+ "encodeUsPerOp": 6.953,
78
+ "decodeUsPerOp": 3.802,
79
+ "encodeOpsPerSecond": 143830.843,
80
+ "decodeOpsPerSecond": 263020.978
81
+ },
82
+ {
83
+ "profile": "quick",
84
+ "payloadBytes": 16384,
85
+ "format": "binary",
86
+ "encodedBytes": 16560,
87
+ "encodeUsPerOp": 13.34,
88
+ "decodeUsPerOp": 3.786,
89
+ "encodeOpsPerSecond": 74962.159,
90
+ "decodeOpsPerSecond": 264160.181
91
+ }
92
+ ]
93
+ }