@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-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
+ }
@@ -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
+ }