peryx 2026.925.0__tar.gz

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 (1429) hide show
  1. peryx-2026.925.0/Cargo.lock +9402 -0
  2. peryx-2026.925.0/Cargo.toml +176 -0
  3. peryx-2026.925.0/PKG-INFO +63 -0
  4. peryx-2026.925.0/README.md +42 -0
  5. peryx-2026.925.0/crates/peryx/Cargo.toml +117 -0
  6. peryx-2026.925.0/crates/peryx/src/api/mod.rs +117 -0
  7. peryx-2026.925.0/crates/peryx/src/api/service.rs +2166 -0
  8. peryx-2026.925.0/crates/peryx/src/api/trash.rs +183 -0
  9. peryx-2026.925.0/crates/peryx/src/app/bootstrap.rs +62 -0
  10. peryx-2026.925.0/crates/peryx/src/app/cache.rs +145 -0
  11. peryx-2026.925.0/crates/peryx/src/app/config.rs +70 -0
  12. peryx-2026.925.0/crates/peryx/src/app/fsck.rs +31 -0
  13. peryx-2026.925.0/crates/peryx/src/app/indexes.rs +153 -0
  14. peryx-2026.925.0/crates/peryx/src/app/jobs.rs +236 -0
  15. peryx-2026.925.0/crates/peryx/src/app/mod.rs +79 -0
  16. peryx-2026.925.0/crates/peryx/src/app/policy.rs +93 -0
  17. peryx-2026.925.0/crates/peryx/src/app/purge.rs +114 -0
  18. peryx-2026.925.0/crates/peryx/src/app/quota.rs +95 -0
  19. peryx-2026.925.0/crates/peryx/src/app/retention.rs +222 -0
  20. peryx-2026.925.0/crates/peryx/src/app/revocation.rs +121 -0
  21. peryx-2026.925.0/crates/peryx/src/app/secret.rs +35 -0
  22. peryx-2026.925.0/crates/peryx/src/cli/cache.rs +126 -0
  23. peryx-2026.925.0/crates/peryx/src/cli/config.rs +24 -0
  24. peryx-2026.925.0/crates/peryx/src/cli/index.rs +40 -0
  25. peryx-2026.925.0/crates/peryx/src/cli/job.rs +86 -0
  26. peryx-2026.925.0/crates/peryx/src/cli/maintenance.rs +254 -0
  27. peryx-2026.925.0/crates/peryx/src/cli/mirror.rs +60 -0
  28. peryx-2026.925.0/crates/peryx/src/cli/mod.rs +219 -0
  29. peryx-2026.925.0/crates/peryx/src/cli/quota.rs +37 -0
  30. peryx-2026.925.0/crates/peryx/src/cli/retention.rs +63 -0
  31. peryx-2026.925.0/crates/peryx/src/cli/snippet.rs +21 -0
  32. peryx-2026.925.0/crates/peryx/src/config/load.rs +90 -0
  33. peryx-2026.925.0/crates/peryx/src/config/merge.rs +1253 -0
  34. peryx-2026.925.0/crates/peryx/src/config/mod.rs +97 -0
  35. peryx-2026.925.0/crates/peryx/src/config/model.rs +1103 -0
  36. peryx-2026.925.0/crates/peryx/src/config/raw.rs +515 -0
  37. peryx-2026.925.0/crates/peryx/src/config/repository_migration.rs +47 -0
  38. peryx-2026.925.0/crates/peryx/src/lib.rs +27 -0
  39. peryx-2026.925.0/crates/peryx/src/logging.rs +28 -0
  40. peryx-2026.925.0/crates/peryx/src/main.rs +12 -0
  41. peryx-2026.925.0/crates/peryx/src/metadata.rs +99 -0
  42. peryx-2026.925.0/crates/peryx/src/operator/backup.rs +434 -0
  43. peryx-2026.925.0/crates/peryx/src/operator/import.rs +85 -0
  44. peryx-2026.925.0/crates/peryx/src/operator/mod.rs +435 -0
  45. peryx-2026.925.0/crates/peryx/src/operator/restore.rs +370 -0
  46. peryx-2026.925.0/crates/peryx/src/operator/snapshot.rs +936 -0
  47. peryx-2026.925.0/crates/peryx/src/operator/verify.rs +429 -0
  48. peryx-2026.925.0/crates/peryx/src/operator/writer.rs +66 -0
  49. peryx-2026.925.0/crates/peryx/src/prefetch/dispatch.rs +119 -0
  50. peryx-2026.925.0/crates/peryx/src/prefetch/mod.rs +8 -0
  51. peryx-2026.925.0/crates/peryx/src/process.rs +1264 -0
  52. peryx-2026.925.0/crates/peryx/src/replication.rs +123 -0
  53. peryx-2026.925.0/crates/peryx/src/server.rs +1112 -0
  54. peryx-2026.925.0/crates/peryx/tests/analytics_replication/mod.rs +119 -0
  55. peryx-2026.925.0/crates/peryx/tests/availability.rs +364 -0
  56. peryx-2026.925.0/crates/peryx/tests/cli_entrypoint.rs +482 -0
  57. peryx-2026.925.0/crates/peryx/tests/cluster.rs +174 -0
  58. peryx-2026.925.0/crates/peryx/tests/corpus/availability-seeds.txt +9 -0
  59. peryx-2026.925.0/crates/peryx/tests/fixtures/process.rs +26 -0
  60. peryx-2026.925.0/crates/peryx/tests/harness/mod.rs +1 -0
  61. peryx-2026.925.0/crates/peryx/tests/observability.rs +171 -0
  62. peryx-2026.925.0/crates/peryx/tests/policy_reference.rs +50 -0
  63. peryx-2026.925.0/crates/peryx/tests/process_fixture.rs +502 -0
  64. peryx-2026.925.0/crates/peryx/tests/request_trace.rs +53 -0
  65. peryx-2026.925.0/crates/peryx/tests/sim_campaign.rs +283 -0
  66. peryx-2026.925.0/crates/peryx/tests/unit/app/purge/tests.rs +64 -0
  67. peryx-2026.925.0/crates/peryx/tests/unit/config/repository_migration/tests.rs +70 -0
  68. peryx-2026.925.0/crates/peryx/tests/unit/prefetch/tests.rs +250 -0
  69. peryx-2026.925.0/crates/peryx/tests/unit/process_tests.rs +1232 -0
  70. peryx-2026.925.0/crates/peryx/tests/unit/replication/tests.rs +28 -0
  71. peryx-2026.925.0/crates/peryx/tests/unit/server/tests.rs +31 -0
  72. peryx-2026.925.0/crates/peryx/tests/unit/tests/api/administration_tests.rs +100 -0
  73. peryx-2026.925.0/crates/peryx/tests/unit/tests/api/mod.rs +2 -0
  74. peryx-2026.925.0/crates/peryx/tests/unit/tests/api/shared_tests.rs +589 -0
  75. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/bootstrap_tests.rs +223 -0
  76. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/cache_tests.rs +645 -0
  77. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/config_tests.rs +156 -0
  78. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/fsck_tests.rs +233 -0
  79. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/indexes_tests.rs +329 -0
  80. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/job_tests.rs +983 -0
  81. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/mod_tests.rs +99 -0
  82. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/policy_tests.rs +41 -0
  83. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/purge_tests.rs +155 -0
  84. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/quota_tests.rs +181 -0
  85. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/retention_tests.rs +485 -0
  86. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/revocation_tests.rs +298 -0
  87. peryx-2026.925.0/crates/peryx/tests/unit/tests/app/secret_tests.rs +49 -0
  88. peryx-2026.925.0/crates/peryx/tests/unit/tests/availability_composition_tests.rs +194 -0
  89. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/cache_tests.rs +160 -0
  90. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/config_tests.rs +19 -0
  91. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/documentation_tests.rs +88 -0
  92. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/index_tests.rs +31 -0
  93. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/job_tests.rs +135 -0
  94. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/maintenance_tests.rs +190 -0
  95. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/mirror_tests.rs +46 -0
  96. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/mod.rs +18 -0
  97. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/parse_tests.rs +186 -0
  98. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/revocation_tests.rs +178 -0
  99. peryx-2026.925.0/crates/peryx/tests/unit/tests/cli/snippet_tests.rs +28 -0
  100. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/auth_tests.rs +670 -0
  101. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/availability_tests.rs +233 -0
  102. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/blob_tests.rs +107 -0
  103. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/integration_tests.rs +39 -0
  104. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/jobs_tests.rs +346 -0
  105. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/load_tests.rs +86 -0
  106. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/membership_tests.rs +280 -0
  107. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/merge_tests.rs +857 -0
  108. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/mod.rs +26 -0
  109. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/model_tests.rs +358 -0
  110. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/raw_tests.rs +129 -0
  111. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/read_through_tests.rs +86 -0
  112. peryx-2026.925.0/crates/peryx/tests/unit/tests/config/replication_tests.rs +97 -0
  113. peryx-2026.925.0/crates/peryx/tests/unit/tests/identity_availability_tests.rs +307 -0
  114. peryx-2026.925.0/crates/peryx/tests/unit/tests/logging_tests.rs +40 -0
  115. peryx-2026.925.0/crates/peryx/tests/unit/tests/metadata_tests.rs +308 -0
  116. peryx-2026.925.0/crates/peryx/tests/unit/tests/metrics_availability_tests.rs +275 -0
  117. peryx-2026.925.0/crates/peryx/tests/unit/tests/mod.rs +18 -0
  118. peryx-2026.925.0/crates/peryx/tests/unit/tests/none_mode_tests.rs +252 -0
  119. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/backup_publish_tests.rs +287 -0
  120. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/backup_tests.rs +874 -0
  121. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/import_tests.rs +135 -0
  122. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/mod.rs +6 -0
  123. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/parent_tests.rs +23 -0
  124. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/restore_publish_tests.rs +151 -0
  125. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/restore_tests.rs +487 -0
  126. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/support.rs +179 -0
  127. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/verify_tests.rs +917 -0
  128. peryx-2026.925.0/crates/peryx/tests/unit/tests/operator/writer_tests.rs +153 -0
  129. peryx-2026.925.0/crates/peryx/tests/unit/tests/policy_dispatch_tests.rs +175 -0
  130. peryx-2026.925.0/crates/peryx/tests/unit/tests/read_through_install_tests.rs +156 -0
  131. peryx-2026.925.0/crates/peryx/tests/unit/tests/replication_liveness_tests.rs +376 -0
  132. peryx-2026.925.0/crates/peryx/tests/unit/tests/server_tests.rs +2377 -0
  133. peryx-2026.925.0/crates/peryx/tests/unit/tests/support.rs +902 -0
  134. peryx-2026.925.0/crates/peryx/tests/unit/tests/tls_support.rs +160 -0
  135. peryx-2026.925.0/crates/peryx/tests/unit/tests/ui_rate_limit_tests.rs +156 -0
  136. peryx-2026.925.0/crates/peryx/tests/unit/tests/ui_security_header_tests.rs +77 -0
  137. peryx-2026.925.0/crates/peryx/tests/unit/tests/ui_tests.rs +326 -0
  138. peryx-2026.925.0/crates/peryx/tests/unit/tests/upstream_tls_error_tests.rs +104 -0
  139. peryx-2026.925.0/crates/peryx/tests/unit/tests/upstream_tls_tests.rs +315 -0
  140. peryx-2026.925.0/crates/peryx-archive/Cargo.toml +22 -0
  141. peryx-2026.925.0/crates/peryx-archive/src/engine.rs +307 -0
  142. peryx-2026.925.0/crates/peryx-archive/src/lib.rs +192 -0
  143. peryx-2026.925.0/crates/peryx-archive/src/model.rs +81 -0
  144. peryx-2026.925.0/crates/peryx-archive/src/source.rs +214 -0
  145. peryx-2026.925.0/crates/peryx-archive/src/zip_range.rs +309 -0
  146. peryx-2026.925.0/crates/peryx-archive/tests/unit/source_tests.rs +127 -0
  147. peryx-2026.925.0/crates/peryx-archive/tests/unit/tests.rs +684 -0
  148. peryx-2026.925.0/crates/peryx-archive/tests/unit/zip_range_tests.rs +443 -0
  149. peryx-2026.925.0/crates/peryx-core/Cargo.toml +20 -0
  150. peryx-2026.925.0/crates/peryx-core/src/availability.rs +171 -0
  151. peryx-2026.925.0/crates/peryx-core/src/ecosystem.rs +107 -0
  152. peryx-2026.925.0/crates/peryx-core/src/lexicon.rs +51 -0
  153. peryx-2026.925.0/crates/peryx-core/src/lib.rs +40 -0
  154. peryx-2026.925.0/crates/peryx-core/src/lifecycle.rs +117 -0
  155. peryx-2026.925.0/crates/peryx-core/src/operations.rs +35 -0
  156. peryx-2026.925.0/crates/peryx-core/src/path.rs +202 -0
  157. peryx-2026.925.0/crates/peryx-core/src/placement.rs +57 -0
  158. peryx-2026.925.0/crates/peryx-core/src/plugin.rs +21 -0
  159. peryx-2026.925.0/crates/peryx-core/src/resource.rs +75 -0
  160. peryx-2026.925.0/crates/peryx-core/src/role.rs +36 -0
  161. peryx-2026.925.0/crates/peryx-core/src/runtime.rs +7 -0
  162. peryx-2026.925.0/crates/peryx-core/src/throughput.rs +57 -0
  163. peryx-2026.925.0/crates/peryx-core/src/topology.rs +192 -0
  164. peryx-2026.925.0/crates/peryx-core/src/url_encoding.rs +29 -0
  165. peryx-2026.925.0/crates/peryx-core/src/view.rs +208 -0
  166. peryx-2026.925.0/crates/peryx-core/tests/unit/availability/tests.rs +83 -0
  167. peryx-2026.925.0/crates/peryx-core/tests/unit/ecosystem/tests.rs +41 -0
  168. peryx-2026.925.0/crates/peryx-core/tests/unit/lexicon/tests.rs +35 -0
  169. peryx-2026.925.0/crates/peryx-core/tests/unit/lifecycle/tests.rs +85 -0
  170. peryx-2026.925.0/crates/peryx-core/tests/unit/operations/tests.rs +55 -0
  171. peryx-2026.925.0/crates/peryx-core/tests/unit/path/tests.rs +164 -0
  172. peryx-2026.925.0/crates/peryx-core/tests/unit/placement/tests.rs +66 -0
  173. peryx-2026.925.0/crates/peryx-core/tests/unit/resource/tests.rs +45 -0
  174. peryx-2026.925.0/crates/peryx-core/tests/unit/role/tests.rs +14 -0
  175. peryx-2026.925.0/crates/peryx-core/tests/unit/throughput/tests.rs +28 -0
  176. peryx-2026.925.0/crates/peryx-core/tests/unit/topology/tests.rs +180 -0
  177. peryx-2026.925.0/crates/peryx-core/tests/unit/url_encoding/tests.rs +19 -0
  178. peryx-2026.925.0/crates/peryx-core/tests/unit/view/tests.rs +178 -0
  179. peryx-2026.925.0/crates/peryx-driver/Cargo.toml +60 -0
  180. peryx-2026.925.0/crates/peryx-driver/src/access.rs +342 -0
  181. peryx-2026.925.0/crates/peryx-driver/src/authz.rs +171 -0
  182. peryx-2026.925.0/crates/peryx-driver/src/availability.rs +284 -0
  183. peryx-2026.925.0/crates/peryx-driver/src/blocking_scan.rs +123 -0
  184. peryx-2026.925.0/crates/peryx-driver/src/body.rs +181 -0
  185. peryx-2026.925.0/crates/peryx-driver/src/cache_inspection.rs +286 -0
  186. peryx-2026.925.0/crates/peryx-driver/src/client_address.rs +33 -0
  187. peryx-2026.925.0/crates/peryx-driver/src/conditional.rs +61 -0
  188. peryx-2026.925.0/crates/peryx-driver/src/discovery.rs +190 -0
  189. peryx-2026.925.0/crates/peryx-driver/src/download.rs +129 -0
  190. peryx-2026.925.0/crates/peryx-driver/src/driver_set.rs +312 -0
  191. peryx-2026.925.0/crates/peryx-driver/src/http_routes.rs +196 -0
  192. peryx-2026.925.0/crates/peryx-driver/src/http_services.rs +706 -0
  193. peryx-2026.925.0/crates/peryx-driver/src/jobs/attempts.rs +121 -0
  194. peryx-2026.925.0/crates/peryx-driver/src/jobs/metrics.rs +106 -0
  195. peryx-2026.925.0/crates/peryx-driver/src/jobs/mod.rs +741 -0
  196. peryx-2026.925.0/crates/peryx-driver/src/jobs/scheduler.rs +649 -0
  197. peryx-2026.925.0/crates/peryx-driver/src/jobs/timer.rs +254 -0
  198. peryx-2026.925.0/crates/peryx-driver/src/lib.rs +61 -0
  199. peryx-2026.925.0/crates/peryx-driver/src/oidc.rs +88 -0
  200. peryx-2026.925.0/crates/peryx-driver/src/openapi.rs +225 -0
  201. peryx-2026.925.0/crates/peryx-driver/src/quota.rs +90 -0
  202. peryx-2026.925.0/crates/peryx-driver/src/range.rs +24 -0
  203. peryx-2026.925.0/crates/peryx-driver/src/rate_limit.rs +877 -0
  204. peryx-2026.925.0/crates/peryx-driver/src/retention.rs +449 -0
  205. peryx-2026.925.0/crates/peryx-driver/src/revocations.rs +186 -0
  206. peryx-2026.925.0/crates/peryx-driver/src/route_auth.rs +239 -0
  207. peryx-2026.925.0/crates/peryx-driver/src/serving.rs +957 -0
  208. peryx-2026.925.0/crates/peryx-driver/src/state/app.rs +683 -0
  209. peryx-2026.925.0/crates/peryx-driver/src/state/build.rs +369 -0
  210. peryx-2026.925.0/crates/peryx-driver/src/state/caches.rs +78 -0
  211. peryx-2026.925.0/crates/peryx-driver/src/state/derived_views.rs +71 -0
  212. peryx-2026.925.0/crates/peryx-driver/src/state/describe.rs +207 -0
  213. peryx-2026.925.0/crates/peryx-driver/src/state/mod.rs +129 -0
  214. peryx-2026.925.0/crates/peryx-driver/src/state/operation.rs +63 -0
  215. peryx-2026.925.0/crates/peryx-driver/src/state/ownership.rs +80 -0
  216. peryx-2026.925.0/crates/peryx-driver/src/state/registry.rs +489 -0
  217. peryx-2026.925.0/crates/peryx-driver/src/state/revocation.rs +42 -0
  218. peryx-2026.925.0/crates/peryx-driver/src/test_doubles.rs +76 -0
  219. peryx-2026.925.0/crates/peryx-driver/src/tokens.rs +172 -0
  220. peryx-2026.925.0/crates/peryx-driver/src/trash.rs +239 -0
  221. peryx-2026.925.0/crates/peryx-driver/src/users.rs +325 -0
  222. peryx-2026.925.0/crates/peryx-driver/tests/availability_contract.rs +158 -0
  223. peryx-2026.925.0/crates/peryx-driver/tests/cache_inspection_contract.rs +398 -0
  224. peryx-2026.925.0/crates/peryx-driver/tests/driver_set_contract.rs +578 -0
  225. peryx-2026.925.0/crates/peryx-driver/tests/frontier_contract.rs +106 -0
  226. peryx-2026.925.0/crates/peryx-driver/tests/http_routes_contract.rs +124 -0
  227. peryx-2026.925.0/crates/peryx-driver/tests/http_services_contract.rs +473 -0
  228. peryx-2026.925.0/crates/peryx-driver/tests/openapi_contract.rs +230 -0
  229. peryx-2026.925.0/crates/peryx-driver/tests/protocol_contract.rs +153 -0
  230. peryx-2026.925.0/crates/peryx-driver/tests/rate_limit_contract.rs +9 -0
  231. peryx-2026.925.0/crates/peryx-driver/tests/route_auth_contract.rs +175 -0
  232. peryx-2026.925.0/crates/peryx-driver/tests/serving_contract.rs +96 -0
  233. peryx-2026.925.0/crates/peryx-driver/tests/unit/availability/tests.rs +284 -0
  234. peryx-2026.925.0/crates/peryx-driver/tests/unit/blocking_scan/tests.rs +128 -0
  235. peryx-2026.925.0/crates/peryx-driver/tests/unit/body_failure_tests.rs +82 -0
  236. peryx-2026.925.0/crates/peryx-driver/tests/unit/capture.rs +94 -0
  237. peryx-2026.925.0/crates/peryx-driver/tests/unit/client_address/tests.rs +86 -0
  238. peryx-2026.925.0/crates/peryx-driver/tests/unit/discovery/tests.rs +170 -0
  239. peryx-2026.925.0/crates/peryx-driver/tests/unit/download/tests.rs +77 -0
  240. peryx-2026.925.0/crates/peryx-driver/tests/unit/http_services/tests.rs +117 -0
  241. peryx-2026.925.0/crates/peryx-driver/tests/unit/jobs/attempts/tests.rs +154 -0
  242. peryx-2026.925.0/crates/peryx-driver/tests/unit/jobs/holder_tests.rs +17 -0
  243. peryx-2026.925.0/crates/peryx-driver/tests/unit/jobs/tests.rs +3643 -0
  244. peryx-2026.925.0/crates/peryx-driver/tests/unit/oidc/tests.rs +120 -0
  245. peryx-2026.925.0/crates/peryx-driver/tests/unit/range/tests.rs +12 -0
  246. peryx-2026.925.0/crates/peryx-driver/tests/unit/rate_limit/principal_tests.rs +409 -0
  247. peryx-2026.925.0/crates/peryx-driver/tests/unit/rate_limit/tests.rs +1036 -0
  248. peryx-2026.925.0/crates/peryx-driver/tests/unit/retention/tests.rs +792 -0
  249. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/app/tests.rs +836 -0
  250. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/build/tests.rs +69 -0
  251. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/caches/tests.rs +75 -0
  252. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/derived_views/tests.rs +61 -0
  253. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/describe/tests.rs +239 -0
  254. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/operation/tests.rs +90 -0
  255. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/ownership/tests.rs +281 -0
  256. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/registry/credential_tests.rs +156 -0
  257. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/registry/tests.rs +1085 -0
  258. peryx-2026.925.0/crates/peryx-driver/tests/unit/state/tests.rs +507 -0
  259. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/access_tests.rs +829 -0
  260. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/authz_tests.rs +154 -0
  261. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/body_tests.rs +198 -0
  262. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/conditional_tests.rs +129 -0
  263. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/mod.rs +14 -0
  264. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/quota_tests.rs +123 -0
  265. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/revocation_tests.rs +150 -0
  266. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/state_tests.rs +261 -0
  267. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/tokens_tests.rs +203 -0
  268. peryx-2026.925.0/crates/peryx-driver/tests/unit/tests/user_tests.rs +388 -0
  269. peryx-2026.925.0/crates/peryx-driver/tests/unit/trash/tests.rs +354 -0
  270. peryx-2026.925.0/crates/peryx-ecosystem-oci/Cargo.toml +118 -0
  271. peryx-2026.925.0/crates/peryx-ecosystem-oci/benches/blob_store_read.rs +21 -0
  272. peryx-2026.925.0/crates/peryx-ecosystem-oci/benches/manifest_by_digest.rs +24 -0
  273. peryx-2026.925.0/crates/peryx-ecosystem-oci/benches/support/registry.rs +109 -0
  274. peryx-2026.925.0/crates/peryx-ecosystem-oci/benches/tags_list.rs +23 -0
  275. peryx-2026.925.0/crates/peryx-ecosystem-oci/benches/version_check.rs +23 -0
  276. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/bench/images.rs +18 -0
  277. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/bench/mod.rs +163 -0
  278. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/bench/servers.rs +794 -0
  279. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/bench/workloads.rs +766 -0
  280. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/bin/peryx-bench-oci.rs +4 -0
  281. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/discovery.rs +78 -0
  282. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/error.rs +115 -0
  283. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/lib.rs +645 -0
  284. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/mirror.rs +1023 -0
  285. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/name.rs +286 -0
  286. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/openapi.rs +1210 -0
  287. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/outbox.rs +91 -0
  288. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/policy.rs +19 -0
  289. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/quota.rs +383 -0
  290. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/realm.rs +80 -0
  291. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/acknowledge.rs +133 -0
  292. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/admission.rs +178 -0
  293. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/auth.rs +496 -0
  294. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/authority.rs +117 -0
  295. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/blobs/contents.rs +163 -0
  296. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/blobs/mod.rs +940 -0
  297. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/discovery.rs +1254 -0
  298. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/finalize.rs +228 -0
  299. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/manifests/mod.rs +910 -0
  300. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/manifests/write.rs +736 -0
  301. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/mod.rs +1301 -0
  302. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/registry/uploads.rs +723 -0
  303. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/search_oci.rs +195 -0
  304. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/settings.rs +104 -0
  305. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/store/descriptors.rs +150 -0
  306. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/store/fsck.rs +89 -0
  307. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/store/schema.rs +147 -0
  308. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/store.rs +1029 -0
  309. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/token_cache.rs +203 -0
  310. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/upload_session.rs +144 -0
  311. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/upstream.rs +881 -0
  312. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/web.rs +458 -0
  313. peryx-2026.925.0/crates/peryx-ecosystem-oci/src/webhook.rs +76 -0
  314. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/bench_cli.rs +32 -0
  315. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/bench_process_fixture.rs +10 -0
  316. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/blob_delete_memory.rs +101 -0
  317. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/fixtures/bench.rs +64 -0
  318. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/capture-screens.mjs +50 -0
  319. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/package-lock.json +58 -0
  320. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/package.json +10 -0
  321. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/playwright.config.mjs +32 -0
  322. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/serve.mjs +120 -0
  323. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/test-support.mjs +56 -0
  324. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/frontend/tests/ui.spec.mjs +48 -0
  325. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/plugin.rs +13 -0
  326. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/bench/servers.rs +231 -0
  327. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/bench/tests.rs +667 -0
  328. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/bench/workloads.rs +197 -0
  329. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/discovery/tests.rs +53 -0
  330. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/error/tests.rs +54 -0
  331. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/name/tests.rs +277 -0
  332. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/quota/tests.rs +391 -0
  333. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/realm/tests.rs +108 -0
  334. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/admission/tests.rs +279 -0
  335. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/auth/tests.rs +32 -0
  336. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/blobs/contents/tests.rs +20 -0
  337. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/blobs/tests.rs +87 -0
  338. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/finalize/tests.rs +417 -0
  339. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/maintenance_contract_tests.rs +312 -0
  340. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/tests.rs +223 -0
  341. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/registry/uploads/tests.rs +87 -0
  342. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/settings/tests.rs +71 -0
  343. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/store/descriptors/tests.rs +248 -0
  344. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/store/schema/tests.rs +231 -0
  345. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/store/tests.rs +842 -0
  346. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/acknowledge.rs +379 -0
  347. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/authority.rs +937 -0
  348. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/bearer_tests.rs +940 -0
  349. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/conditional_blob_tests.rs +230 -0
  350. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/conditional_manifest_tests.rs +281 -0
  351. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/conformance_tests.rs +1551 -0
  352. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/contents_tests.rs +291 -0
  353. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/discovery_tests.rs +61 -0
  354. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/frontier.rs +186 -0
  355. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/ingress_admission_tests.rs +600 -0
  356. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/manifest_schema_tests.rs +202 -0
  357. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/metrics_tests.rs +104 -0
  358. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/mirror_concurrency_tests.rs +438 -0
  359. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/mirror_contract_tests.rs +460 -0
  360. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/mirror_failure_tests.rs +473 -0
  361. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/mirror_tests.rs +2575 -0
  362. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/mod.rs +1300 -0
  363. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/negotiate_tests.rs +1140 -0
  364. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/openapi_tests.rs +668 -0
  365. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/outbox_tests.rs +571 -0
  366. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/plugin_contract_tests.rs +387 -0
  367. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/policy_tests.rs +892 -0
  368. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/property_tests.rs +194 -0
  369. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/push_tests.rs +2722 -0
  370. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/quota_tests.rs +973 -0
  371. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/replication_tests.rs +289 -0
  372. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/revocation_tests.rs +1413 -0
  373. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/scope_tests.rs +133 -0
  374. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/search_tests.rs +448 -0
  375. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/blob.rs +973 -0
  376. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/library.rs +96 -0
  377. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/manifest.rs +1653 -0
  378. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/misc.rs +251 -0
  379. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/mod.rs +8 -0
  380. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/resolve.rs +541 -0
  381. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/support.rs +13 -0
  382. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/serve/tag_miss.rs +150 -0
  383. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/tag_name_tests.rs +580 -0
  384. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/upload_bounds_tests.rs +237 -0
  385. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/upload_reclaim_tests.rs +378 -0
  386. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/upload_session_tests.rs +345 -0
  387. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/virtual_tests.rs +829 -0
  388. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/web_tests.rs +753 -0
  389. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/tests/webhooks_tests.rs +339 -0
  390. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/token_cache/tests.rs +270 -0
  391. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/upstream/tests.rs +2309 -0
  392. peryx-2026.925.0/crates/peryx-ecosystem-oci/tests/unit/web/tests.rs +172 -0
  393. peryx-2026.925.0/crates/peryx-ecosystem-pypi/Cargo.toml +214 -0
  394. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/name_version.rs +18 -0
  395. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/parse.rs +58 -0
  396. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/parse_index_html.rs +22 -0
  397. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/parse_version.rs +18 -0
  398. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/parse_version_specifiers.rs +18 -0
  399. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/render.rs +42 -0
  400. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/serve.rs +377 -0
  401. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/sorted_desc.rs +23 -0
  402. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/support/detail.rs +44 -0
  403. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/support/index.rs +12 -0
  404. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/support/metadata.rs +16 -0
  405. peryx-2026.925.0/crates/peryx-ecosystem-pypi/benches/transform.rs +100 -0
  406. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/candidate-ci-identity.md +8 -0
  407. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/candidate-retention.md +8 -0
  408. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-backup-restore-import.md +65 -0
  409. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-ci-identity-publishing.md +69 -0
  410. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-dependency-confusion-policy.md +60 -0
  411. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-full-mirror-offline.md +99 -0
  412. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-object-storage.md +68 -0
  413. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-policy-engine.md +67 -0
  414. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-repository-topology.md +64 -0
  415. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-retention-cleanup.md +76 -0
  416. peryx-2026.925.0/crates/peryx-ecosystem-pypi/docs/records/issue-security-event-logging.md +75 -0
  417. peryx-2026.925.0/crates/peryx-ecosystem-pypi/examples/catalog_million.rs +99 -0
  418. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/admin.rs +742 -0
  419. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/mod.rs +228 -0
  420. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/sdist.rs +376 -0
  421. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/wheel/entry_points.rs +69 -0
  422. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/wheel/metadata.rs +63 -0
  423. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/wheel/mod.rs +278 -0
  424. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/wheel/record.rs +172 -0
  425. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/archive/wheel/wheel_file.rs +102 -0
  426. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/attestation/verify.rs +120 -0
  427. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/attestation.rs +543 -0
  428. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/corpus.rs +170 -0
  429. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/evidence.rs +155 -0
  430. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/fixture.rs +269 -0
  431. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/fixtures/corpus-linux-x86_64.json +1061 -0
  432. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/fixtures/corpus-macos-aarch64.json +820 -0
  433. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/fixtures/requirements.in +52 -0
  434. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/mod.rs +162 -0
  435. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/packages.rs +64 -0
  436. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/preflight.rs +113 -0
  437. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/schedule.rs +40 -0
  438. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/servers.rs +302 -0
  439. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/endpoints.rs +200 -0
  440. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/fleet.rs +155 -0
  441. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/install.rs +182 -0
  442. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/load.rs +333 -0
  443. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/metadata.rs +178 -0
  444. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/mod.rs +91 -0
  445. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bench/workloads/throughput.rs +236 -0
  446. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/bin/peryx-bench-pypi.rs +4 -0
  447. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/download.rs +522 -0
  448. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/fetch.rs +434 -0
  449. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/metadata.rs +639 -0
  450. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/mod.rs +482 -0
  451. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/mutate.rs +889 -0
  452. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/page_stream/live.rs +386 -0
  453. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/page_stream/mod.rs +477 -0
  454. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/project_sync.rs +131 -0
  455. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/provenance.rs +744 -0
  456. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/purge.rs +38 -0
  457. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/resolve.rs +703 -0
  458. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/cache/shadow.rs +102 -0
  459. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/catalog.rs +600 -0
  460. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/catalog_job.rs +656 -0
  461. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/changelog.rs +252 -0
  462. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/classifier/data.rs +925 -0
  463. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/classifier.rs +23 -0
  464. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/contact.rs +37 -0
  465. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/description.rs +128 -0
  466. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/discovery.rs +189 -0
  467. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/filename.rs +247 -0
  468. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/html.rs +416 -0
  469. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/import.rs +256 -0
  470. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/legacy_json.rs +277 -0
  471. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/lib.rs +445 -0
  472. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/license.rs +17 -0
  473. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/metadata.rs +546 -0
  474. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/migration.rs +392 -0
  475. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/mirror/mod.rs +426 -0
  476. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/mirror/report.rs +105 -0
  477. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/mirror/run.rs +634 -0
  478. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/mirror/selection.rs +553 -0
  479. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/name.rs +116 -0
  480. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/discovery.rs +61 -0
  481. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/files.rs +103 -0
  482. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/inspect.rs +141 -0
  483. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/legacy.rs +131 -0
  484. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/mod.rs +150 -0
  485. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/publish.rs +193 -0
  486. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/search.rs +80 -0
  487. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/shadow.rs +143 -0
  488. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/shared.rs +120 -0
  489. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/simple.rs +75 -0
  490. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/openapi/trusted_publishing.rs +61 -0
  491. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/policy.rs +918 -0
  492. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/quota.rs +187 -0
  493. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/requirement.rs +14 -0
  494. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/retention.rs +303 -0
  495. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/search_pypi.rs +668 -0
  496. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serial.rs +172 -0
  497. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/acknowledge.rs +32 -0
  498. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/admission.rs +230 -0
  499. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/changelog.rs +87 -0
  500. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/finalize.rs +235 -0
  501. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/finalize_sweep.rs +157 -0
  502. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/get.rs +1056 -0
  503. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/inspect.rs +244 -0
  504. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/mod.rs +950 -0
  505. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/mutate.rs +516 -0
  506. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/post.rs +766 -0
  507. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/response.rs +426 -0
  508. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/upload_form.rs +489 -0
  509. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/upload_ui.rs +42 -0
  510. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/serving/web.rs +1051 -0
  511. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/http.rs +366 -0
  512. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/inspect.rs +104 -0
  513. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/mod.rs +12 -0
  514. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/model.rs +83 -0
  515. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/query.rs +96 -0
  516. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/shadow/shadow.html +220 -0
  517. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/error.rs +84 -0
  518. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/file.rs +315 -0
  519. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/meta.rs +211 -0
  520. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/mod.rs +25 -0
  521. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/parse.rs +459 -0
  522. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple/render.rs +187 -0
  523. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/simple_client.rs +639 -0
  524. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/source_policy.rs +106 -0
  525. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/attestations.rs +81 -0
  526. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/files.rs +502 -0
  527. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/imports.rs +380 -0
  528. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/index.rs +276 -0
  529. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/journal.rs +163 -0
  530. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/mod.rs +1290 -0
  531. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/overrides.rs +105 -0
  532. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/projects.rs +420 -0
  533. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/record.rs +243 -0
  534. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/release_metadata.rs +343 -0
  535. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/repair.rs +441 -0
  536. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/summary.rs +779 -0
  537. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/store/uploads.rs +864 -0
  538. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/stream/context.rs +42 -0
  539. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/stream/mod.rs +23 -0
  540. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/stream/transformer.rs +853 -0
  541. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/stream/types.rs +73 -0
  542. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/stream/validator.rs +520 -0
  543. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/sync_lock.rs +46 -0
  544. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trash.rs +51 -0
  545. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trusted_publishing/config.rs +213 -0
  546. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trusted_publishing/http.rs +180 -0
  547. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trusted_publishing/mod.rs +7 -0
  548. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trusted_publishing/policy.rs +100 -0
  549. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/trusted_publishing/runtime.rs +238 -0
  550. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/upload.rs +1686 -0
  551. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/version.rs +77 -0
  552. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/view.rs +106 -0
  553. peryx-2026.925.0/crates/peryx-ecosystem-pypi/src/webhook.rs +89 -0
  554. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/bench_cli.rs +27 -0
  555. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/circleci_sign_publish_example-0.0.1.dev137-py3-none-any.whl.b64 +1 -0
  556. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/circleci_sign_publish_example-0.0.1.dev137-py3-none-any.whl.publish.attestation +1 -0
  557. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/pypi_attestations-0.0.19.tar.gz.b64 +1 -0
  558. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/pypi_attestations-0.0.19.tar.gz.publish.attestation +1 -0
  559. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/pypi_attestations-0.0.19.tar.gz.slsa.attestation +1 -0
  560. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/sigstore-production-trusted-root.json +126 -0
  561. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/fixtures/veloxdemo-1.0.0-py3-none-any.whl +0 -0
  562. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/capture-screens.mjs +67 -0
  563. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/package-lock.json +58 -0
  564. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/package.json +10 -0
  565. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/playwright.config.mjs +32 -0
  566. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/serve.mjs +257 -0
  567. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/test-support.mjs +82 -0
  568. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/frontend/tests/ui.spec.mjs +1025 -0
  569. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/plugin.rs +39 -0
  570. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/summary_index_memory.rs +85 -0
  571. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/admin/tests.rs +1571 -0
  572. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/archive/sdist/tests.rs +87 -0
  573. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/archive/wheel/entry_points_tests.rs +11 -0
  574. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/archive/wheel/tests.rs +71 -0
  575. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/attestation/tests.rs +1035 -0
  576. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/catalog_million.rs +4 -0
  577. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/corpus.rs +219 -0
  578. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/evidence.rs +170 -0
  579. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/fixture.rs +374 -0
  580. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/preflight.rs +195 -0
  581. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/schedule.rs +20 -0
  582. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/test_support.rs +188 -0
  583. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/tests.rs +138 -0
  584. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workload_tests.rs +62 -0
  585. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/endpoints.rs +176 -0
  586. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/fleet.rs +56 -0
  587. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/install.rs +202 -0
  588. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/load.rs +227 -0
  589. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/metadata.rs +133 -0
  590. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/servers.rs +274 -0
  591. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads/throughput.rs +159 -0
  592. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/bench/workloads.rs +75 -0
  593. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/fetch/fence_tests.rs +222 -0
  594. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/metadata/tests.rs +690 -0
  595. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/page_stream/tests.rs +237 -0
  596. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/project_sync/tests.rs +325 -0
  597. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/provenance/tests.rs +66 -0
  598. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/resolve/tests.rs +210 -0
  599. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache/tests.rs +104 -0
  600. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache_coverage/download.rs +536 -0
  601. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/cache_coverage/live.rs +139 -0
  602. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/catalog/tests.rs +640 -0
  603. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/catalog_job/tests.rs +1707 -0
  604. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/discovery/tests.rs +20 -0
  605. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/error_message_tests.rs +8 -0
  606. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/import/tests.rs +279 -0
  607. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/migration_tests.rs +868 -0
  608. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/config_contract_tests.rs +122 -0
  609. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/ecosystem_config_tests.rs +57 -0
  610. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/report_tests.rs +51 -0
  611. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/run_tests.rs +1527 -0
  612. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/selection_tests.rs +927 -0
  613. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/mirror/support.rs +105 -0
  614. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/openapi/shadow_tests.rs +9 -0
  615. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/openapi/tests.rs +133 -0
  616. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/plugin_contract_tests.rs +604 -0
  617. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/policy/tests.rs +133 -0
  618. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/quota/tests.rs +9 -0
  619. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/retention/tests.rs +851 -0
  620. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/search_pypi/tests.rs +182 -0
  621. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/acknowledge/tests.rs +38 -0
  622. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/admission/tests.rs +474 -0
  623. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/archive_boundary_tests.rs +18 -0
  624. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/finalize/tests.rs +15 -0
  625. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/inspect/tests.rs +44 -0
  626. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/maintenance_contract_tests.rs +587 -0
  627. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/post/tests.rs +122 -0
  628. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/response/tests.rs +119 -0
  629. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/upload_ui/tests.rs +6 -0
  630. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/web/command_tests.rs +110 -0
  631. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/web/http_tests.rs +818 -0
  632. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/web/page_tests.rs +516 -0
  633. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/web/placement_tests.rs +93 -0
  634. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/serving/web/url_tests.rs +47 -0
  635. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/shadow/coverage_tests.rs +811 -0
  636. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/shadow/query_tests.rs +44 -0
  637. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/simple_client/tests.rs +64 -0
  638. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/corruption/tests.rs +305 -0
  639. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/files/tests.rs +756 -0
  640. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/index/tests.rs +558 -0
  641. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/journal/tests.rs +424 -0
  642. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/overrides/tests.rs +115 -0
  643. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/projects/tests.rs +461 -0
  644. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/record/tests.rs +93 -0
  645. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/release_metadata/tests.rs +421 -0
  646. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/summary/audit_tests.rs +523 -0
  647. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/summary/tests.rs +663 -0
  648. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/tests.rs +57 -0
  649. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/store/uploads/tests.rs +2272 -0
  650. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/stream/transformer_bounds.rs +140 -0
  651. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/stream/validator_tests.rs +20 -0
  652. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/archive/integration_tests.rs +1011 -0
  653. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/archive/mod.rs +112 -0
  654. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/archive/sdist_tests.rs +595 -0
  655. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/archive/wheel_tests.rs +153 -0
  656. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/changelog_tests.rs +304 -0
  657. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/conformance_tests.rs +176 -0
  658. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/contact_tests.rs +29 -0
  659. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/description_tests.rs +141 -0
  660. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/fanout_tests.rs +425 -0
  661. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/filename_tests.rs +174 -0
  662. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/html_tests.rs +556 -0
  663. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/access.rs +431 -0
  664. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/attestations.rs +783 -0
  665. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/authority.rs +623 -0
  666. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/changelog.rs +319 -0
  667. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/discovery.rs +161 -0
  668. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/download.rs +1031 -0
  669. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/fallback.rs +185 -0
  670. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/finalize.rs +426 -0
  671. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/finalize_sweep.rs +535 -0
  672. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/frontier.rs +495 -0
  673. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/inspect.rs +491 -0
  674. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/intent_release.rs +85 -0
  675. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/legacy_json.rs +856 -0
  676. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/membership.rs +397 -0
  677. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/metadata.rs +1097 -0
  678. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/mirror.rs +708 -0
  679. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/mod.rs +35 -0
  680. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/mutate.rs +1346 -0
  681. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/overlay.rs +459 -0
  682. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/policy.rs +628 -0
  683. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/promote.rs +1290 -0
  684. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/render_cache.rs +206 -0
  685. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/revocations.rs +324 -0
  686. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/routing.rs +315 -0
  687. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/security.rs +284 -0
  688. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/shadow.rs +344 -0
  689. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/sidecar_validators.rs +134 -0
  690. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/status.rs +291 -0
  691. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/support/fixtures.rs +526 -0
  692. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/support/harness.rs +1168 -0
  693. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/support/request.rs +458 -0
  694. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/support/shared.rs +39 -0
  695. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/support.rs +9 -0
  696. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/upload.rs +3115 -0
  697. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/upstream_attestation_cache.rs +748 -0
  698. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/upstream_attestation_validation.rs +191 -0
  699. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/http/upstream_attestations.rs +780 -0
  700. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/legacy_json_tests.rs +73 -0
  701. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/metadata_tests.rs +799 -0
  702. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/metrics_tests.rs +336 -0
  703. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/mod.rs +303 -0
  704. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/name_tests.rs +97 -0
  705. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/policy_tests.rs +983 -0
  706. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/property_tests.rs +110 -0
  707. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/quota_tests.rs +197 -0
  708. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/rate_limit_tests.rs +856 -0
  709. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/refresh_tests.rs +717 -0
  710. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/replication_tests.rs +93 -0
  711. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/classify.rs +93 -0
  712. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/freshness.rs +177 -0
  713. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/indexing.rs +976 -0
  714. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/mod.rs +8 -0
  715. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/query.rs +76 -0
  716. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/revocation.rs +134 -0
  717. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/source_policy.rs +307 -0
  718. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/search/support.rs +285 -0
  719. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serial_tests.rs +197 -0
  720. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/download.rs +337 -0
  721. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/misc.rs +812 -0
  722. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/mod.rs +7 -0
  723. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/purge.rs +247 -0
  724. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/resolve.rs +1213 -0
  725. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/streaming.rs +640 -0
  726. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/serve/support.rs +258 -0
  727. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/error_tests.rs +22 -0
  728. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/file_tests.rs +176 -0
  729. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/meta_tests.rs +75 -0
  730. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/mod.rs +90 -0
  731. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/parse_tests.rs +914 -0
  732. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/render_tests.rs +187 -0
  733. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/snapshots/peryx_ecosystem_pypi__tests__simple__parse_tests__detail_json.snap +5 -0
  734. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/snapshots/peryx_ecosystem_pypi__tests__simple__parse_tests__index_json.snap +5 -0
  735. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/snapshots/peryx_ecosystem_pypi__tests__simple__render_tests__detail_html.snap +18 -0
  736. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple/snapshots/peryx_ecosystem_pypi__tests__simple__render_tests__index_html.snap +16 -0
  737. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple_client/client_tests.rs +589 -0
  738. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple_client/error_tests.rs +43 -0
  739. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple_client/mod.rs +20 -0
  740. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple_client/response_tests.rs +321 -0
  741. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/simple_client/retry_tests.rs +156 -0
  742. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/stream/context_tests.rs +36 -0
  743. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/stream/mod.rs +20 -0
  744. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/stream/transformer_tests.rs +1534 -0
  745. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/stream/types_tests.rs +7 -0
  746. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/archive.rs +104 -0
  747. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/form.rs +219 -0
  748. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/metadata.rs +1043 -0
  749. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/mod.rs +8 -0
  750. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/store.rs +696 -0
  751. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/support.rs +305 -0
  752. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/wheel_record.rs +299 -0
  753. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/upload/wheel_structure.rs +325 -0
  754. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/version_tests.rs +43 -0
  755. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/view_tests.rs +102 -0
  756. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/virtual_tests.rs +245 -0
  757. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/tests/webhooks_tests.rs +571 -0
  758. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/trash/tests.rs +104 -0
  759. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/trusted_publishing/config_tests.rs +476 -0
  760. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/trusted_publishing/http_tests.rs +480 -0
  761. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/trusted_publishing/policy_tests.rs +137 -0
  762. peryx-2026.925.0/crates/peryx-ecosystem-pypi/tests/unit/trusted_publishing/runtime_tests.rs +457 -0
  763. peryx-2026.925.0/crates/peryx-events/Cargo.toml +45 -0
  764. peryx-2026.925.0/crates/peryx-events/benches/usage_aggregate.rs +107 -0
  765. peryx-2026.925.0/crates/peryx-events/src/lib.rs +3 -0
  766. peryx-2026.925.0/crates/peryx-events/src/metrics.rs +1481 -0
  767. peryx-2026.925.0/crates/peryx-events/src/security.rs +338 -0
  768. peryx-2026.925.0/crates/peryx-events/src/webhook/delivery.rs +546 -0
  769. peryx-2026.925.0/crates/peryx-events/src/webhook/event.rs +37 -0
  770. peryx-2026.925.0/crates/peryx-events/src/webhook/host.rs +41 -0
  771. peryx-2026.925.0/crates/peryx-events/src/webhook/mod.rs +11 -0
  772. peryx-2026.925.0/crates/peryx-events/src/webhook/runtime.rs +197 -0
  773. peryx-2026.925.0/crates/peryx-events/src/webhook/signature.rs +65 -0
  774. peryx-2026.925.0/crates/peryx-events/tests/metrics_durability.rs +369 -0
  775. peryx-2026.925.0/crates/peryx-events/tests/security.rs +290 -0
  776. peryx-2026.925.0/crates/peryx-events/tests/unit/metrics/tests.rs +1748 -0
  777. peryx-2026.925.0/crates/peryx-events/tests/unit/webhook/delivery/tests.rs +1505 -0
  778. peryx-2026.925.0/crates/peryx-events/tests/unit/webhook/event/tests.rs +47 -0
  779. peryx-2026.925.0/crates/peryx-events/tests/unit/webhook/runtime/tests.rs +132 -0
  780. peryx-2026.925.0/crates/peryx-events/tests/unit/webhook/signature/tests.rs +20 -0
  781. peryx-2026.925.0/crates/peryx-ha/Cargo.toml +26 -0
  782. peryx-2026.925.0/crates/peryx-ha/src/blob.rs +177 -0
  783. peryx-2026.925.0/crates/peryx-ha/src/endpoint.rs +76 -0
  784. peryx-2026.925.0/crates/peryx-ha/src/lib.rs +1557 -0
  785. peryx-2026.925.0/crates/peryx-ha/src/metadata.rs +49 -0
  786. peryx-2026.925.0/crates/peryx-ha/src/operation_trace.rs +85 -0
  787. peryx-2026.925.0/crates/peryx-ha/src/placement.rs +530 -0
  788. peryx-2026.925.0/crates/peryx-ha/src/reclamation.rs +305 -0
  789. peryx-2026.925.0/crates/peryx-ha/src/reconcile.rs +66 -0
  790. peryx-2026.925.0/crates/peryx-ha/src/store.rs +151 -0
  791. peryx-2026.925.0/crates/peryx-ha/src/views.rs +53 -0
  792. peryx-2026.925.0/crates/peryx-ha/tests/unit/endpoint_tests.rs +90 -0
  793. peryx-2026.925.0/crates/peryx-ha/tests/unit/operation_trace/tests.rs +59 -0
  794. peryx-2026.925.0/crates/peryx-ha/tests/unit/placement_tests.rs +539 -0
  795. peryx-2026.925.0/crates/peryx-ha/tests/unit/tests.rs +1949 -0
  796. peryx-2026.925.0/crates/peryx-ha-distributed/Cargo.toml +74 -0
  797. peryx-2026.925.0/crates/peryx-ha-distributed/benches/failover_drain.rs +115 -0
  798. peryx-2026.925.0/crates/peryx-ha-distributed/benches/operation_envelope.rs +122 -0
  799. peryx-2026.925.0/crates/peryx-ha-distributed/benches/ranged_pull.rs +107 -0
  800. peryx-2026.925.0/crates/peryx-ha-distributed/benches/write_ack.rs +134 -0
  801. peryx-2026.925.0/crates/peryx-ha-distributed/src/ack.rs +31 -0
  802. peryx-2026.925.0/crates/peryx-ha-distributed/src/analytics.rs +400 -0
  803. peryx-2026.925.0/crates/peryx-ha-distributed/src/analytics_transfer.rs +191 -0
  804. peryx-2026.925.0/crates/peryx-ha-distributed/src/authority.rs +69 -0
  805. peryx-2026.925.0/crates/peryx-ha-distributed/src/authority_drain.rs +77 -0
  806. peryx-2026.925.0/crates/peryx-ha-distributed/src/authority_transfer.rs +478 -0
  807. peryx-2026.925.0/crates/peryx-ha-distributed/src/availability_http.rs +323 -0
  808. peryx-2026.925.0/crates/peryx-ha-distributed/src/backoff.rs +128 -0
  809. peryx-2026.925.0/crates/peryx-ha-distributed/src/beacon.rs +180 -0
  810. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob.rs +161 -0
  811. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_availability.rs +49 -0
  812. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_fetch.rs +75 -0
  813. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_http.rs +188 -0
  814. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_placement.rs +39 -0
  815. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_plane.rs +613 -0
  816. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_pull.rs +47 -0
  817. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_routing.rs +35 -0
  818. peryx-2026.925.0/crates/peryx-ha-distributed/src/blob_stage.rs +287 -0
  819. peryx-2026.925.0/crates/peryx-ha-distributed/src/byte_ack.rs +25 -0
  820. peryx-2026.925.0/crates/peryx-ha-distributed/src/change_page.rs +161 -0
  821. peryx-2026.925.0/crates/peryx-ha-distributed/src/channel.rs +93 -0
  822. peryx-2026.925.0/crates/peryx-ha-distributed/src/circuit.rs +217 -0
  823. peryx-2026.925.0/crates/peryx-ha-distributed/src/client_transport.rs +209 -0
  824. peryx-2026.925.0/crates/peryx-ha-distributed/src/completeness.rs +33 -0
  825. peryx-2026.925.0/crates/peryx-ha-distributed/src/completeness_http.rs +375 -0
  826. peryx-2026.925.0/crates/peryx-ha-distributed/src/completeness_query.rs +119 -0
  827. peryx-2026.925.0/crates/peryx-ha-distributed/src/consensus_runtime.rs +1204 -0
  828. peryx-2026.925.0/crates/peryx-ha-distributed/src/control.rs +388 -0
  829. peryx-2026.925.0/crates/peryx-ha-distributed/src/control_http.rs +343 -0
  830. peryx-2026.925.0/crates/peryx-ha-distributed/src/copy_planning.rs +84 -0
  831. peryx-2026.925.0/crates/peryx-ha-distributed/src/copy_runtime.rs +311 -0
  832. peryx-2026.925.0/crates/peryx-ha-distributed/src/dc_ack.rs +23 -0
  833. peryx-2026.925.0/crates/peryx-ha-distributed/src/dc_copy.rs +73 -0
  834. peryx-2026.925.0/crates/peryx-ha-distributed/src/dc_durability.rs +195 -0
  835. peryx-2026.925.0/crates/peryx-ha-distributed/src/drain.rs +29 -0
  836. peryx-2026.925.0/crates/peryx-ha-distributed/src/driver.rs +77 -0
  837. peryx-2026.925.0/crates/peryx-ha-distributed/src/envelope.rs +290 -0
  838. peryx-2026.925.0/crates/peryx-ha-distributed/src/error.rs +59 -0
  839. peryx-2026.925.0/crates/peryx-ha-distributed/src/evidence_gather.rs +212 -0
  840. peryx-2026.925.0/crates/peryx-ha-distributed/src/failover.rs +51 -0
  841. peryx-2026.925.0/crates/peryx-ha-distributed/src/filesystem_ack.rs +76 -0
  842. peryx-2026.925.0/crates/peryx-ha-distributed/src/http.rs +556 -0
  843. peryx-2026.925.0/crates/peryx-ha-distributed/src/ingress_intent.rs +123 -0
  844. peryx-2026.925.0/crates/peryx-ha-distributed/src/jobs/authority_drain.rs +86 -0
  845. peryx-2026.925.0/crates/peryx-ha-distributed/src/jobs/mod.rs +354 -0
  846. peryx-2026.925.0/crates/peryx-ha-distributed/src/lib.rs +425 -0
  847. peryx-2026.925.0/crates/peryx-ha-distributed/src/lifecycle.rs +83 -0
  848. peryx-2026.925.0/crates/peryx-ha-distributed/src/liveness.rs +241 -0
  849. peryx-2026.925.0/crates/peryx-ha-distributed/src/multi_peer.rs +453 -0
  850. peryx-2026.925.0/crates/peryx-ha-distributed/src/multi_pull.rs +123 -0
  851. peryx-2026.925.0/crates/peryx-ha-distributed/src/openapi.rs +241 -0
  852. peryx-2026.925.0/crates/peryx-ha-distributed/src/operations_http.rs +70 -0
  853. peryx-2026.925.0/crates/peryx-ha-distributed/src/ownership.rs +862 -0
  854. peryx-2026.925.0/crates/peryx-ha-distributed/src/peer.rs +326 -0
  855. peryx-2026.925.0/crates/peryx-ha-distributed/src/peer_http.rs +155 -0
  856. peryx-2026.925.0/crates/peryx-ha-distributed/src/peer_receipt.rs +161 -0
  857. peryx-2026.925.0/crates/peryx-ha-distributed/src/peer_receipt_http.rs +195 -0
  858. peryx-2026.925.0/crates/peryx-ha-distributed/src/placement_planning.rs +20 -0
  859. peryx-2026.925.0/crates/peryx-ha-distributed/src/placement_policy.rs +156 -0
  860. peryx-2026.925.0/crates/peryx-ha-distributed/src/placement_runtime.rs +206 -0
  861. peryx-2026.925.0/crates/peryx-ha-distributed/src/placements_http.rs +96 -0
  862. peryx-2026.925.0/crates/peryx-ha-distributed/src/protocol.rs +142 -0
  863. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/config.rs +71 -0
  864. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/log_store.rs +189 -0
  865. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/mod.rs +51 -0
  866. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/network.rs +473 -0
  867. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/node.rs +254 -0
  868. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/persistence.rs +301 -0
  869. peryx-2026.925.0/crates/peryx-ha-distributed/src/raft/state_machine.rs +395 -0
  870. peryx-2026.925.0/crates/peryx-ha-distributed/src/read_through.rs +333 -0
  871. peryx-2026.925.0/crates/peryx-ha-distributed/src/readiness.rs +85 -0
  872. peryx-2026.925.0/crates/peryx-ha-distributed/src/receipt_quorum.rs +57 -0
  873. peryx-2026.925.0/crates/peryx-ha-distributed/src/reclaim_guard.rs +232 -0
  874. peryx-2026.925.0/crates/peryx-ha-distributed/src/reclamation_runtime/candidate_policy.rs +70 -0
  875. peryx-2026.925.0/crates/peryx-ha-distributed/src/reclamation_runtime/fence_policy.rs +23 -0
  876. peryx-2026.925.0/crates/peryx-ha-distributed/src/reclamation_runtime/retention_policy.rs +25 -0
  877. peryx-2026.925.0/crates/peryx-ha-distributed/src/reclamation_runtime.rs +237 -0
  878. peryx-2026.925.0/crates/peryx-ha-distributed/src/reconcile.rs +200 -0
  879. peryx-2026.925.0/crates/peryx-ha-distributed/src/remote_durability.rs +71 -0
  880. peryx-2026.925.0/crates/peryx-ha-distributed/src/remote_frontier.rs +164 -0
  881. peryx-2026.925.0/crates/peryx-ha-distributed/src/remote_frontier_http.rs +155 -0
  882. peryx-2026.925.0/crates/peryx-ha-distributed/src/replica.rs +377 -0
  883. peryx-2026.925.0/crates/peryx-ha-distributed/src/replica_cycle.rs +68 -0
  884. peryx-2026.925.0/crates/peryx-ha-distributed/src/replica_monitor.rs +188 -0
  885. peryx-2026.925.0/crates/peryx-ha-distributed/src/replica_runtime.rs +295 -0
  886. peryx-2026.925.0/crates/peryx-ha-distributed/src/rollout.rs +142 -0
  887. peryx-2026.925.0/crates/peryx-ha-distributed/src/runtime.rs +1020 -0
  888. peryx-2026.925.0/crates/peryx-ha-distributed/src/runtime_analytics.rs +159 -0
  889. peryx-2026.925.0/crates/peryx-ha-distributed/src/runtime_metrics.rs +236 -0
  890. peryx-2026.925.0/crates/peryx-ha-distributed/src/runtime_worker.rs +379 -0
  891. peryx-2026.925.0/crates/peryx-ha-distributed/src/service_assembly.rs +1500 -0
  892. peryx-2026.925.0/crates/peryx-ha-distributed/src/sim.rs +424 -0
  893. peryx-2026.925.0/crates/peryx-ha-distributed/src/status.rs +32 -0
  894. peryx-2026.925.0/crates/peryx-ha-distributed/src/telemetry.rs +223 -0
  895. peryx-2026.925.0/crates/peryx-ha-distributed/src/transfer.rs +198 -0
  896. peryx-2026.925.0/crates/peryx-ha-distributed/src/upgrade.rs +61 -0
  897. peryx-2026.925.0/crates/peryx-ha-distributed/src/versions.rs +93 -0
  898. peryx-2026.925.0/crates/peryx-ha-distributed/src/write_ack.rs +271 -0
  899. peryx-2026.925.0/crates/peryx-ha-distributed/tests/ranged_pull_memory.rs +69 -0
  900. peryx-2026.925.0/crates/peryx-ha-distributed/tests/read_through_memory.rs +111 -0
  901. peryx-2026.925.0/crates/peryx-ha-distributed/tests/transfer_registry_memory.rs +149 -0
  902. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/ack_tests.rs +104 -0
  903. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/analytics_tests.rs +652 -0
  904. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/analytics_transfer/tests.rs +318 -0
  905. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/authority_drain_tests.rs +274 -0
  906. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/authority_tests.rs +99 -0
  907. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/authority_transfer_tests.rs +1148 -0
  908. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/availability_http_tests.rs +681 -0
  909. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/backoff_tests.rs +134 -0
  910. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/beacon_tests.rs +325 -0
  911. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_availability_tests.rs +181 -0
  912. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_fetch_tests.rs +327 -0
  913. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_http_tests.rs +239 -0
  914. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_placement_tests.rs +123 -0
  915. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_placements_http_tests.rs +201 -0
  916. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_plane_tests.rs +1459 -0
  917. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_pull_tests.rs +30 -0
  918. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_routing_tests.rs +130 -0
  919. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_stage_tests.rs +572 -0
  920. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/blob_tests.rs +201 -0
  921. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/byte_ack_tests.rs +118 -0
  922. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/change_page_tests.rs +572 -0
  923. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/channel_tests.rs +108 -0
  924. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/checkpoint_http_tests.rs +218 -0
  925. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/checkpoint_install_tests.rs +686 -0
  926. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/circuit_tests.rs +281 -0
  927. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/client_transport_tests.rs +216 -0
  928. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/completeness_http_tests.rs +732 -0
  929. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/completeness_query_tests.rs +483 -0
  930. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/completeness_tests.rs +62 -0
  931. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/consensus_runtime/audit_recovery_tests.rs +27 -0
  932. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/consensus_runtime_tests.rs +2465 -0
  933. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/control_http_tests.rs +972 -0
  934. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/control_recovery_tests.rs +554 -0
  935. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/control_tests.rs +724 -0
  936. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/control_window_tests.rs +706 -0
  937. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/copy_planning_tests.rs +169 -0
  938. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/copy_runtime_tests.rs +1225 -0
  939. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/dc_ack_tests.rs +75 -0
  940. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/dc_copy_tests.rs +309 -0
  941. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/dc_durability_tests.rs +223 -0
  942. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/drain_tests.rs +95 -0
  943. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/driver_tests.rs +223 -0
  944. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/envelope_tests.rs +370 -0
  945. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/epoch_reservation_tests.rs +129 -0
  946. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/evidence_gather_tests.rs +189 -0
  947. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/failover_tests.rs +86 -0
  948. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/filesystem_ack_tests.rs +115 -0
  949. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/http_contract.rs +74 -0
  950. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/http_tests.rs +854 -0
  951. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/ingress_intent_tests.rs +176 -0
  952. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/jobs_tests.rs +517 -0
  953. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/lifecycle_tests.rs +43 -0
  954. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/liveness_tests.rs +361 -0
  955. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/multi_peer_tests.rs +840 -0
  956. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/multi_pull/tests.rs +380 -0
  957. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/openapi_tests.rs +44 -0
  958. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/operations_http_tests.rs +231 -0
  959. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/ownership_tests.rs +977 -0
  960. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/peer_http_tests.rs +259 -0
  961. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/peer_receipt_http_tests.rs +424 -0
  962. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/peer_receipt_tests.rs +372 -0
  963. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/peer_tests.rs +529 -0
  964. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/placement_planning_tests.rs +36 -0
  965. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/placement_policy_contract_tests.rs +542 -0
  966. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/placement_runtime_tests.rs +608 -0
  967. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/placements_http_tests.rs +225 -0
  968. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/protocol_tests.rs +66 -0
  969. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/config_tests.rs +137 -0
  970. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/log_store/tests.rs +149 -0
  971. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/network_tests.rs +764 -0
  972. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/node_tests.rs +529 -0
  973. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/persistence_tests.rs +220 -0
  974. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/raft/state_machine_tests.rs +871 -0
  975. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/read_through/tests.rs +990 -0
  976. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/readiness_tests.rs +202 -0
  977. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/receipt_quorum_tests.rs +205 -0
  978. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/reclaim_guard_tests.rs +280 -0
  979. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/reclamation_runtime_tests.rs +1294 -0
  980. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/reconcile_tests.rs +377 -0
  981. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/reference_inventory_tests.rs +242 -0
  982. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/remote_durability_tests.rs +201 -0
  983. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/remote_frontier_http_tests.rs +184 -0
  984. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/remote_frontier_tests.rs +411 -0
  985. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/replica_monitor/tests.rs +257 -0
  986. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/replica_runtime_tests.rs +926 -0
  987. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/revocation_replication_tests.rs +269 -0
  988. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/rollout_tests.rs +320 -0
  989. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/runtime_analytics_tests.rs +322 -0
  990. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/runtime_metrics/tests.rs +192 -0
  991. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/runtime_tests.rs +1908 -0
  992. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/runtime_worker/loom_tests.rs +43 -0
  993. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/runtime_worker/tests.rs +608 -0
  994. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/service_assembly_tests.rs +1595 -0
  995. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/sim_tests.rs +391 -0
  996. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/status_tests.rs +42 -0
  997. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/support.rs +265 -0
  998. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/telemetry/tests.rs +442 -0
  999. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/tests.rs +425 -0
  1000. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/transfer_tests.rs +233 -0
  1001. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/upgrade_tests.rs +98 -0
  1002. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/versions_tests.rs +143 -0
  1003. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/visibility_replication_tests.rs +168 -0
  1004. peryx-2026.925.0/crates/peryx-ha-distributed/tests/unit/write_ack/tests.rs +676 -0
  1005. peryx-2026.925.0/crates/peryx-http/Cargo.toml +49 -0
  1006. peryx-2026.925.0/crates/peryx-http/src/handlers/acl.rs +55 -0
  1007. peryx-2026.925.0/crates/peryx-http/src/handlers/analytics.rs +373 -0
  1008. peryx-2026.925.0/crates/peryx-http/src/handlers/cache.rs +304 -0
  1009. peryx-2026.925.0/crates/peryx-http/src/handlers/discover.rs +59 -0
  1010. peryx-2026.925.0/crates/peryx-http/src/handlers/dispatch.rs +128 -0
  1011. peryx-2026.925.0/crates/peryx-http/src/handlers/grants.rs +307 -0
  1012. peryx-2026.925.0/crates/peryx-http/src/handlers/jobs.rs +94 -0
  1013. peryx-2026.925.0/crates/peryx-http/src/handlers/login.rs +245 -0
  1014. peryx-2026.925.0/crates/peryx-http/src/handlers/mod.rs +191 -0
  1015. peryx-2026.925.0/crates/peryx-http/src/handlers/policy_decisions.rs +316 -0
  1016. peryx-2026.925.0/crates/peryx-http/src/handlers/pql.rs +425 -0
  1017. peryx-2026.925.0/crates/peryx-http/src/handlers/query.rs +152 -0
  1018. peryx-2026.925.0/crates/peryx-http/src/handlers/quota.rs +258 -0
  1019. peryx-2026.925.0/crates/peryx-http/src/handlers/repositories.rs +387 -0
  1020. peryx-2026.925.0/crates/peryx-http/src/handlers/retention.rs +297 -0
  1021. peryx-2026.925.0/crates/peryx-http/src/handlers/revocations.rs +238 -0
  1022. peryx-2026.925.0/crates/peryx-http/src/handlers/status.rs +359 -0
  1023. peryx-2026.925.0/crates/peryx-http/src/handlers/tokens.rs +321 -0
  1024. peryx-2026.925.0/crates/peryx-http/src/handlers/trash.rs +460 -0
  1025. peryx-2026.925.0/crates/peryx-http/src/handlers/usage.rs +462 -0
  1026. peryx-2026.925.0/crates/peryx-http/src/lib.rs +17 -0
  1027. peryx-2026.925.0/crates/peryx-http/src/request_bounds.rs +89 -0
  1028. peryx-2026.925.0/crates/peryx-http/src/response_framing.rs +52 -0
  1029. peryx-2026.925.0/crates/peryx-http/src/response_security.rs +321 -0
  1030. peryx-2026.925.0/crates/peryx-http/src/router.rs +674 -0
  1031. peryx-2026.925.0/crates/peryx-http/tests/password_admission_contract.rs +206 -0
  1032. peryx-2026.925.0/crates/peryx-http/tests/unit/handlers/pql/pure_tests.rs +49 -0
  1033. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/acl_tests.rs +136 -0
  1034. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/analytics_tests.rs +557 -0
  1035. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/cache_inspection_tests.rs +414 -0
  1036. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/cache_purge_tests.rs +373 -0
  1037. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/fallback_tests.rs +863 -0
  1038. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/grant_tests.rs +897 -0
  1039. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/job_tests.rs +320 -0
  1040. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/login_tests.rs +1121 -0
  1041. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/mod.rs +27 -0
  1042. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/password_overload_tests.rs +63 -0
  1043. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/path_spelling_tests.rs +249 -0
  1044. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/policy_decision_tests.rs +548 -0
  1045. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/pql_tests.rs +1284 -0
  1046. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/quota_tests.rs +461 -0
  1047. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/repositories_tests.rs +852 -0
  1048. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/request_bounds_tests.rs +20 -0
  1049. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/response_framing_tests.rs +14 -0
  1050. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/response_security_tests.rs +190 -0
  1051. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/retention_tests.rs +1152 -0
  1052. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/revocation_tests.rs +456 -0
  1053. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/search_tests.rs +148 -0
  1054. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/security_header_tests.rs +451 -0
  1055. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/stats_tests.rs +250 -0
  1056. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/status_tests.rs +530 -0
  1057. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/support.rs +99 -0
  1058. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/tokens_tests.rs +515 -0
  1059. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/trash_tests.rs +524 -0
  1060. peryx-2026.925.0/crates/peryx-http/tests/unit/tests/usage_tests.rs +574 -0
  1061. peryx-2026.925.0/crates/peryx-identity/Cargo.toml +44 -0
  1062. peryx-2026.925.0/crates/peryx-identity/src/acl.rs +297 -0
  1063. peryx-2026.925.0/crates/peryx-identity/src/external.rs +325 -0
  1064. peryx-2026.925.0/crates/peryx-identity/src/ldap.rs +597 -0
  1065. peryx-2026.925.0/crates/peryx-identity/src/lib.rs +103 -0
  1066. peryx-2026.925.0/crates/peryx-identity/src/oidc.rs +357 -0
  1067. peryx-2026.925.0/crates/peryx-identity/src/oidc_http.rs +302 -0
  1068. peryx-2026.925.0/crates/peryx-identity/src/oidc_login.rs +753 -0
  1069. peryx-2026.925.0/crates/peryx-identity/src/password.rs +130 -0
  1070. peryx-2026.925.0/crates/peryx-identity/src/revocation.rs +119 -0
  1071. peryx-2026.925.0/crates/peryx-identity/src/roles.rs +206 -0
  1072. peryx-2026.925.0/crates/peryx-identity/src/scoped_token.rs +138 -0
  1073. peryx-2026.925.0/crates/peryx-identity/src/session.rs +109 -0
  1074. peryx-2026.925.0/crates/peryx-identity/src/token.rs +186 -0
  1075. peryx-2026.925.0/crates/peryx-identity/src/user.rs +134 -0
  1076. peryx-2026.925.0/crates/peryx-identity/tests/ldap.rs +792 -0
  1077. peryx-2026.925.0/crates/peryx-identity/tests/unit/oidc/tests.rs +1162 -0
  1078. peryx-2026.925.0/crates/peryx-identity/tests/unit/oidc_http/tests.rs +76 -0
  1079. peryx-2026.925.0/crates/peryx-identity/tests/unit/oidc_login/tests.rs +1608 -0
  1080. peryx-2026.925.0/crates/peryx-identity/tests/unit/session_tests.rs +133 -0
  1081. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/acl_tests.rs +354 -0
  1082. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/basic_tests.rs +84 -0
  1083. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/external_tests.rs +199 -0
  1084. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/ldap_tests.rs +305 -0
  1085. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/mod.rs +18 -0
  1086. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/oidc_http.rs +216 -0
  1087. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/password_tests.rs +117 -0
  1088. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/revocation_tests.rs +69 -0
  1089. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/roles_tests.rs +343 -0
  1090. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/scoped_token_tests.rs +96 -0
  1091. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/token_tests.rs +179 -0
  1092. peryx-2026.925.0/crates/peryx-identity/tests/unit/tests/user_tests.rs +59 -0
  1093. peryx-2026.925.0/crates/peryx-index/Cargo.toml +31 -0
  1094. peryx-2026.925.0/crates/peryx-index/benches/route_resolver.rs +99 -0
  1095. peryx-2026.925.0/crates/peryx-index/src/index.rs +45 -0
  1096. peryx-2026.925.0/crates/peryx-index/src/lib.rs +9 -0
  1097. peryx-2026.925.0/crates/peryx-index/src/resolve.rs +155 -0
  1098. peryx-2026.925.0/crates/peryx-index/src/serving.rs +363 -0
  1099. peryx-2026.925.0/crates/peryx-index/tests/flight_gate_alloc.rs +22 -0
  1100. peryx-2026.925.0/crates/peryx-index/tests/resource_ticket_memory.rs +24 -0
  1101. peryx-2026.925.0/crates/peryx-index/tests/route_resolver_alloc.rs +29 -0
  1102. peryx-2026.925.0/crates/peryx-index/tests/unit/index/tests.rs +34 -0
  1103. peryx-2026.925.0/crates/peryx-index/tests/unit/resolve/tests.rs +312 -0
  1104. peryx-2026.925.0/crates/peryx-index/tests/unit/serving/tests.rs +494 -0
  1105. peryx-2026.925.0/crates/peryx-plugin-registry/Cargo.toml +31 -0
  1106. peryx-2026.925.0/crates/peryx-plugin-registry/src/lib.rs +780 -0
  1107. peryx-2026.925.0/crates/peryx-plugin-registry/tests/unit/registry.rs +1419 -0
  1108. peryx-2026.925.0/crates/peryx-plugin-registry/tests/unit/support.rs +508 -0
  1109. peryx-2026.925.0/crates/peryx-plugin-registry/tests/unit.rs +4 -0
  1110. peryx-2026.925.0/crates/peryx-policy/Cargo.toml +19 -0
  1111. peryx-2026.925.0/crates/peryx-policy/src/lib.rs +601 -0
  1112. peryx-2026.925.0/crates/peryx-policy/src/retention.rs +419 -0
  1113. peryx-2026.925.0/crates/peryx-policy/tests/retention_skip_memory.rs +81 -0
  1114. peryx-2026.925.0/crates/peryx-policy/tests/retention_stop_memory.rs +71 -0
  1115. peryx-2026.925.0/crates/peryx-policy/tests/retention_stream_memory.rs +81 -0
  1116. peryx-2026.925.0/crates/peryx-policy/tests/unit/retention/tests.rs +1012 -0
  1117. peryx-2026.925.0/crates/peryx-policy/tests/unit/tests.rs +607 -0
  1118. peryx-2026.925.0/crates/peryx-pql/Cargo.toml +27 -0
  1119. peryx-2026.925.0/crates/peryx-pql/benches/distinct_groups.rs +68 -0
  1120. peryx-2026.925.0/crates/peryx-pql/src/ast.rs +121 -0
  1121. peryx-2026.925.0/crates/peryx-pql/src/catalog.rs +124 -0
  1122. peryx-2026.925.0/crates/peryx-pql/src/cursor.rs +59 -0
  1123. peryx-2026.925.0/crates/peryx-pql/src/error.rs +45 -0
  1124. peryx-2026.925.0/crates/peryx-pql/src/eval.rs +59 -0
  1125. peryx-2026.925.0/crates/peryx-pql/src/execute.rs +526 -0
  1126. peryx-2026.925.0/crates/peryx-pql/src/lib.rs +44 -0
  1127. peryx-2026.925.0/crates/peryx-pql/src/parse.rs +495 -0
  1128. peryx-2026.925.0/crates/peryx-pql/src/plan.rs +382 -0
  1129. peryx-2026.925.0/crates/peryx-pql/src/scope.rs +55 -0
  1130. peryx-2026.925.0/crates/peryx-pql/src/source.rs +20 -0
  1131. peryx-2026.925.0/crates/peryx-pql/src/value.rs +94 -0
  1132. peryx-2026.925.0/crates/peryx-pql/tests/unit/cursor_tests.rs +51 -0
  1133. peryx-2026.925.0/crates/peryx-pql/tests/unit/eval_tests.rs +154 -0
  1134. peryx-2026.925.0/crates/peryx-pql/tests/unit/execute_tests.rs +1021 -0
  1135. peryx-2026.925.0/crates/peryx-pql/tests/unit/join_bound_tests.rs +263 -0
  1136. peryx-2026.925.0/crates/peryx-pql/tests/unit/null_comparison_tests.rs +66 -0
  1137. peryx-2026.925.0/crates/peryx-pql/tests/unit/parse_tests.rs +422 -0
  1138. peryx-2026.925.0/crates/peryx-pql/tests/unit/plan_tests.rs +564 -0
  1139. peryx-2026.925.0/crates/peryx-pql/tests/unit/primitive_tests.rs +112 -0
  1140. peryx-2026.925.0/crates/peryx-pql/tests/unit/support.rs +349 -0
  1141. peryx-2026.925.0/crates/peryx-pql/tests/unit/tests.rs +11 -0
  1142. peryx-2026.925.0/crates/peryx-pql/tests/unit/value_tests.rs +99 -0
  1143. peryx-2026.925.0/crates/peryx-pql/tests/unit/visibility_tests.rs +187 -0
  1144. peryx-2026.925.0/crates/peryx-search/Cargo.toml +39 -0
  1145. peryx-2026.925.0/crates/peryx-search/benches/incremental_refresh.rs +119 -0
  1146. peryx-2026.925.0/crates/peryx-search/benches/query_verification.rs +105 -0
  1147. peryx-2026.925.0/crates/peryx-search/src/access.rs +19 -0
  1148. peryx-2026.925.0/crates/peryx-search/src/context.rs +29 -0
  1149. peryx-2026.925.0/crates/peryx-search/src/engine.rs +671 -0
  1150. peryx-2026.925.0/crates/peryx-search/src/error.rs +64 -0
  1151. peryx-2026.925.0/crates/peryx-search/src/indexer.rs +87 -0
  1152. peryx-2026.925.0/crates/peryx-search/src/lib.rs +23 -0
  1153. peryx-2026.925.0/crates/peryx-search/src/params.rs +214 -0
  1154. peryx-2026.925.0/crates/peryx-search/src/response.rs +33 -0
  1155. peryx-2026.925.0/crates/peryx-search/src/verify.rs +146 -0
  1156. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/context_tests.rs +22 -0
  1157. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/engine_tests.rs +1102 -0
  1158. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/error_tests.rs +56 -0
  1159. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/frontier_tests.rs +92 -0
  1160. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/integration_tests.rs +688 -0
  1161. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/mod.rs +58 -0
  1162. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/params_tests.rs +147 -0
  1163. peryx-2026.925.0/crates/peryx-search/tests/unit/tests/verify_tests.rs +88 -0
  1164. peryx-2026.925.0/crates/peryx-storage/Cargo.toml +70 -0
  1165. peryx-2026.925.0/crates/peryx-storage/benches/role_grant.rs +40 -0
  1166. peryx-2026.925.0/crates/peryx-storage/src/artifact_repair.rs +250 -0
  1167. peryx-2026.925.0/crates/peryx-storage/src/availability.rs +13 -0
  1168. peryx-2026.925.0/crates/peryx-storage/src/blob/backend.rs +857 -0
  1169. peryx-2026.925.0/crates/peryx-storage/src/blob/chunked.rs +120 -0
  1170. peryx-2026.925.0/crates/peryx-storage/src/blob/durability.rs +119 -0
  1171. peryx-2026.925.0/crates/peryx-storage/src/blob/error.rs +285 -0
  1172. peryx-2026.925.0/crates/peryx-storage/src/blob/mod.rs +102 -0
  1173. peryx-2026.925.0/crates/peryx-storage/src/blob/range.rs +69 -0
  1174. peryx-2026.925.0/crates/peryx-storage/src/blob/s3/client.rs +510 -0
  1175. peryx-2026.925.0/crates/peryx-storage/src/blob/s3/config.rs +195 -0
  1176. peryx-2026.925.0/crates/peryx-storage/src/blob/s3/mod.rs +833 -0
  1177. peryx-2026.925.0/crates/peryx-storage/src/blob/stage.rs +73 -0
  1178. peryx-2026.925.0/crates/peryx-storage/src/blob/storage.rs +661 -0
  1179. peryx-2026.925.0/crates/peryx-storage/src/blob/store.rs +870 -0
  1180. peryx-2026.925.0/crates/peryx-storage/src/lib.rs +17 -0
  1181. peryx-2026.925.0/crates/peryx-storage/src/meta/analytics.rs +236 -0
  1182. peryx-2026.925.0/crates/peryx-storage/src/meta/artifact_repair.rs +514 -0
  1183. peryx-2026.925.0/crates/peryx-storage/src/meta/blob_chunk_digest.rs +43 -0
  1184. peryx-2026.925.0/crates/peryx-storage/src/meta/blob_placement.rs +211 -0
  1185. peryx-2026.925.0/crates/peryx-storage/src/meta/bootstrap.rs +95 -0
  1186. peryx-2026.925.0/crates/peryx-storage/src/meta/checkpoint.rs +493 -0
  1187. peryx-2026.925.0/crates/peryx-storage/src/meta/checkpoint_transfer.rs +742 -0
  1188. peryx-2026.925.0/crates/peryx-storage/src/meta/copy_cursor.rs +39 -0
  1189. peryx-2026.925.0/crates/peryx-storage/src/meta/error.rs +124 -0
  1190. peryx-2026.925.0/crates/peryx-storage/src/meta/external_identity.rs +295 -0
  1191. peryx-2026.925.0/crates/peryx-storage/src/meta/finalize.rs +137 -0
  1192. peryx-2026.925.0/crates/peryx-storage/src/meta/frontier.rs +61 -0
  1193. peryx-2026.925.0/crates/peryx-storage/src/meta/index.rs +968 -0
  1194. peryx-2026.925.0/crates/peryx-storage/src/meta/ingress_intent.rs +518 -0
  1195. peryx-2026.925.0/crates/peryx-storage/src/meta/job.rs +447 -0
  1196. peryx-2026.925.0/crates/peryx-storage/src/meta/journal.rs +276 -0
  1197. peryx-2026.925.0/crates/peryx-storage/src/meta/migration.rs +623 -0
  1198. peryx-2026.925.0/crates/peryx-storage/src/meta/mod.rs +611 -0
  1199. peryx-2026.925.0/crates/peryx-storage/src/meta/operation_outcome.rs +384 -0
  1200. peryx-2026.925.0/crates/peryx-storage/src/meta/placement.rs +392 -0
  1201. peryx-2026.925.0/crates/peryx-storage/src/meta/policy_decision.rs +580 -0
  1202. peryx-2026.925.0/crates/peryx-storage/src/meta/quota.rs +996 -0
  1203. peryx-2026.925.0/crates/peryx-storage/src/meta/reclaim_guard.rs +151 -0
  1204. peryx-2026.925.0/crates/peryx-storage/src/meta/reclamation.rs +174 -0
  1205. peryx-2026.925.0/crates/peryx-storage/src/meta/reclamation_cursor.rs +57 -0
  1206. peryx-2026.925.0/crates/peryx-storage/src/meta/reconcile.rs +198 -0
  1207. peryx-2026.925.0/crates/peryx-storage/src/meta/repair.rs +49 -0
  1208. peryx-2026.925.0/crates/peryx-storage/src/meta/repository.rs +559 -0
  1209. peryx-2026.925.0/crates/peryx-storage/src/meta/revocation.rs +496 -0
  1210. peryx-2026.925.0/crates/peryx-storage/src/meta/role_grant.rs +467 -0
  1211. peryx-2026.925.0/crates/peryx-storage/src/meta/scoped_token.rs +370 -0
  1212. peryx-2026.925.0/crates/peryx-storage/src/meta/server_mutation.rs +44 -0
  1213. peryx-2026.925.0/crates/peryx-storage/src/meta/snapshot.rs +111 -0
  1214. peryx-2026.925.0/crates/peryx-storage/src/meta/transfer_audit.rs +58 -0
  1215. peryx-2026.925.0/crates/peryx-storage/src/meta/user.rs +397 -0
  1216. peryx-2026.925.0/crates/peryx-storage/src/meta/version.rs +28 -0
  1217. peryx-2026.925.0/crates/peryx-storage/src/meta/webhook.rs +421 -0
  1218. peryx-2026.925.0/crates/peryx-storage/src/meta/writer.rs +87 -0
  1219. peryx-2026.925.0/crates/peryx-storage/tests/fixtures/s3.rs +1208 -0
  1220. peryx-2026.925.0/crates/peryx-storage/tests/integration/blob_backend.rs +645 -0
  1221. peryx-2026.925.0/crates/peryx-storage/tests/integration/external_identity.rs +91 -0
  1222. peryx-2026.925.0/crates/peryx-storage/tests/integration/s3_backend.rs +3267 -0
  1223. peryx-2026.925.0/crates/peryx-storage/tests/integration.rs +6 -0
  1224. peryx-2026.925.0/crates/peryx-storage/tests/unit/artifact_repair_tests.rs +302 -0
  1225. peryx-2026.925.0/crates/peryx-storage/tests/unit/availability/tests.rs +26 -0
  1226. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/backend/lease_tests.rs +29 -0
  1227. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/backend/s3_staged_tests.rs +56 -0
  1228. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/chunked/tests.rs +94 -0
  1229. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/durability/tests.rs +91 -0
  1230. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/range/tests.rs +39 -0
  1231. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/s3/client/tests.rs +1304 -0
  1232. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/s3/config/tests.rs +129 -0
  1233. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/s3/tests.rs +218 -0
  1234. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/stage/tests.rs +17 -0
  1235. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/storage/tests.rs +16 -0
  1236. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/store/lease_tests.rs +31 -0
  1237. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/store/stage_tests.rs +54 -0
  1238. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/sweep_tests.rs +282 -0
  1239. peryx-2026.925.0/crates/peryx-storage/tests/unit/blob/sync_tests.rs +103 -0
  1240. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/analytics_fault_tests.rs +123 -0
  1241. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/analytics_row_tests.rs +155 -0
  1242. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/blob_chunk_digest/tests.rs +46 -0
  1243. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/checkpoint/tests.rs +549 -0
  1244. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/checkpoint/transfer_tests.rs +816 -0
  1245. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/fault.rs +96 -0
  1246. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/finalize_fault_tests.rs +150 -0
  1247. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/finalize_race_tests.rs +56 -0
  1248. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/frontier/tests.rs +62 -0
  1249. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/index/tests.rs +319 -0
  1250. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/job_fault_tests.rs +154 -0
  1251. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/migration_tests.rs +1160 -0
  1252. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/operation_outcome_fault_tests.rs +159 -0
  1253. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/placement_tests.rs +117 -0
  1254. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/policy_decision_fault_tests.rs +155 -0
  1255. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/policy_decision_tests.rs +233 -0
  1256. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/reconcile/tests.rs +241 -0
  1257. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/repair/tests.rs +14 -0
  1258. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/replica_fault_tests.rs +22 -0
  1259. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/snapshot_tests.rs +102 -0
  1260. peryx-2026.925.0/crates/peryx-storage/tests/unit/meta/webhook_fault_tests.rs +176 -0
  1261. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/blob/digest_page_tests.rs +245 -0
  1262. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/blob/error_tests.rs +160 -0
  1263. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/blob/mod.rs +23 -0
  1264. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/blob/storage_tests.rs +334 -0
  1265. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/blob/store_tests.rs +812 -0
  1266. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/capture.rs +68 -0
  1267. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/analytics_tests.rs +215 -0
  1268. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/blob_placement_scan_tests.rs +157 -0
  1269. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/blob_placement_tests.rs +177 -0
  1270. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/bootstrap_tests.rs +168 -0
  1271. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/copy_cursor_tests.rs +66 -0
  1272. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/driver_txn_tests.rs +623 -0
  1273. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/error_tests.rs +34 -0
  1274. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/external_identity_tests.rs +542 -0
  1275. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/finalize_tests.rs +185 -0
  1276. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/ingress_intent_tests.rs +615 -0
  1277. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/integration_tests.rs +457 -0
  1278. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/intent_lifetime_tests.rs +225 -0
  1279. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/intent_order_index_tests.rs +273 -0
  1280. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/job_tests.rs +574 -0
  1281. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/journal_tests.rs +318 -0
  1282. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/mod.rs +48 -0
  1283. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/operation_outcome_tests.rs +442 -0
  1284. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/placement_tests.rs +275 -0
  1285. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/policy_decision_tests.rs +891 -0
  1286. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/quota_tests.rs +1474 -0
  1287. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/reclaim_guard_tests.rs +328 -0
  1288. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/reclamation_cursor_tests.rs +87 -0
  1289. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/reclamation_scan_tests.rs +134 -0
  1290. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/reclamation_tests.rs +191 -0
  1291. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/replica_tests.rs +117 -0
  1292. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/repository_tests.rs +688 -0
  1293. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/revocation_journal_tests.rs +216 -0
  1294. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/revocation_scan_tests.rs +278 -0
  1295. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/revocation_tests.rs +503 -0
  1296. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/role_grant_tests.rs +675 -0
  1297. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/scoped_token_tests.rs +681 -0
  1298. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/transfer_audit_tests.rs +92 -0
  1299. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/user_tests.rs +607 -0
  1300. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/webhook_tests.rs +539 -0
  1301. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/meta/writer_tests.rs +124 -0
  1302. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/mod.rs +4 -0
  1303. peryx-2026.925.0/crates/peryx-storage/tests/unit/tests/pagination.rs +30 -0
  1304. peryx-2026.925.0/crates/peryx-test-support/Cargo.toml +57 -0
  1305. peryx-2026.925.0/crates/peryx-test-support/src/controlled_peer.rs +60 -0
  1306. peryx-2026.925.0/crates/peryx-test-support/src/fault.rs +294 -0
  1307. peryx-2026.925.0/crates/peryx-test-support/src/lib.rs +1926 -0
  1308. peryx-2026.925.0/crates/peryx-test-support/src/process_fixture.rs +445 -0
  1309. peryx-2026.925.0/crates/peryx-test-support/src/toxiproxy.rs +385 -0
  1310. peryx-2026.925.0/crates/peryx-test-support/tests/fixture.rs +232 -0
  1311. peryx-2026.925.0/crates/peryx-test-support/tests/fixtures/process.rs +3 -0
  1312. peryx-2026.925.0/crates/peryx-test-support/tests/unit/process_fixture.rs +455 -0
  1313. peryx-2026.925.0/crates/peryx-test-support/tests/unit/tests.rs +1580 -0
  1314. peryx-2026.925.0/crates/peryx-test-support/tests/unit.rs +178 -0
  1315. peryx-2026.925.0/crates/peryx-upstream/Cargo.toml +46 -0
  1316. peryx-2026.925.0/crates/peryx-upstream/src/client/credential.rs +272 -0
  1317. peryx-2026.925.0/crates/peryx-upstream/src/client/error.rs +72 -0
  1318. peryx-2026.925.0/crates/peryx-upstream/src/client/exec.rs +458 -0
  1319. peryx-2026.925.0/crates/peryx-upstream/src/client/guard.rs +258 -0
  1320. peryx-2026.925.0/crates/peryx-upstream/src/client/mod.rs +1147 -0
  1321. peryx-2026.925.0/crates/peryx-upstream/src/client/netrc.rs +153 -0
  1322. peryx-2026.925.0/crates/peryx-upstream/src/client/range.rs +58 -0
  1323. peryx-2026.925.0/crates/peryx-upstream/src/client/response.rs +17 -0
  1324. peryx-2026.925.0/crates/peryx-upstream/src/client/retry.rs +76 -0
  1325. peryx-2026.925.0/crates/peryx-upstream/src/client/throughput.rs +87 -0
  1326. peryx-2026.925.0/crates/peryx-upstream/src/client/tls.rs +80 -0
  1327. peryx-2026.925.0/crates/peryx-upstream/src/lib.rs +15 -0
  1328. peryx-2026.925.0/crates/peryx-upstream/src/route.rs +281 -0
  1329. peryx-2026.925.0/crates/peryx-upstream/tests/state.rs +45 -0
  1330. peryx-2026.925.0/crates/peryx-upstream/tests/tls.rs +274 -0
  1331. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/client_tests.rs +1026 -0
  1332. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/credential_tests.rs +367 -0
  1333. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/deadline_tests.rs +242 -0
  1334. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/error_tests.rs +186 -0
  1335. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/exec/tests.rs +128 -0
  1336. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/exec_tests.rs +891 -0
  1337. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/guard_tests.rs +478 -0
  1338. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/mod.rs +35 -0
  1339. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/netrc_tests.rs +197 -0
  1340. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/property_tests.rs +155 -0
  1341. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/retry_tests.rs +388 -0
  1342. peryx-2026.925.0/crates/peryx-upstream/tests/unit/client/throughput_tests.rs +114 -0
  1343. peryx-2026.925.0/crates/peryx-upstream/tests/unit/mod.rs +6 -0
  1344. peryx-2026.925.0/crates/peryx-upstream/tests/unit/route_tests.rs +447 -0
  1345. peryx-2026.925.0/crates/peryx-web/Cargo.toml +93 -0
  1346. peryx-2026.925.0/crates/peryx-web/src/data/browse.rs +140 -0
  1347. peryx-2026.925.0/crates/peryx-web/src/data/login.rs +45 -0
  1348. peryx-2026.925.0/crates/peryx-web/src/data/mod.rs +38 -0
  1349. peryx-2026.925.0/crates/peryx-web/src/data/operations.rs +83 -0
  1350. peryx-2026.925.0/crates/peryx-web/src/data/placement.rs +119 -0
  1351. peryx-2026.925.0/crates/peryx-web/src/data/search.rs +49 -0
  1352. peryx-2026.925.0/crates/peryx-web/src/data/stats.rs +272 -0
  1353. peryx-2026.925.0/crates/peryx-web/src/data/status.rs +258 -0
  1354. peryx-2026.925.0/crates/peryx-web/src/data/topology.rs +189 -0
  1355. peryx-2026.925.0/crates/peryx-web/src/lib.rs +324 -0
  1356. peryx-2026.925.0/crates/peryx-web/src/markdown.rs +38 -0
  1357. peryx-2026.925.0/crates/peryx-web/src/model/analytics.rs +289 -0
  1358. peryx-2026.925.0/crates/peryx-web/src/model/login.rs +9 -0
  1359. peryx-2026.925.0/crates/peryx-web/src/model/mod.rs +37 -0
  1360. peryx-2026.925.0/crates/peryx-web/src/model/operations.rs +34 -0
  1361. peryx-2026.925.0/crates/peryx-web/src/model/placement.rs +39 -0
  1362. peryx-2026.925.0/crates/peryx-web/src/model/policy_decision.rs +124 -0
  1363. peryx-2026.925.0/crates/peryx-web/src/model/search.rs +86 -0
  1364. peryx-2026.925.0/crates/peryx-web/src/model/snapshot.rs +94 -0
  1365. peryx-2026.925.0/crates/peryx-web/src/model/stats.rs +99 -0
  1366. peryx-2026.925.0/crates/peryx-web/src/model/topology.rs +129 -0
  1367. peryx-2026.925.0/crates/peryx-web/src/model/trash.rs +101 -0
  1368. peryx-2026.925.0/crates/peryx-web/src/pages/admin.rs +350 -0
  1369. peryx-2026.925.0/crates/peryx-web/src/pages/analytics.rs +566 -0
  1370. peryx-2026.925.0/crates/peryx-web/src/pages/browse.rs +351 -0
  1371. peryx-2026.925.0/crates/peryx-web/src/pages/dashboard.rs +221 -0
  1372. peryx-2026.925.0/crates/peryx-web/src/pages/login.rs +70 -0
  1373. peryx-2026.925.0/crates/peryx-web/src/pages/mod.rs +199 -0
  1374. peryx-2026.925.0/crates/peryx-web/src/pages/operations.rs +191 -0
  1375. peryx-2026.925.0/crates/peryx-web/src/pages/placement.rs +376 -0
  1376. peryx-2026.925.0/crates/peryx-web/src/pages/policy_decisions.rs +452 -0
  1377. peryx-2026.925.0/crates/peryx-web/src/pages/search.rs +223 -0
  1378. peryx-2026.925.0/crates/peryx-web/src/pages/stats.rs +169 -0
  1379. peryx-2026.925.0/crates/peryx-web/src/pages/topology.rs +319 -0
  1380. peryx-2026.925.0/crates/peryx-web/src/pages/trash.rs +411 -0
  1381. peryx-2026.925.0/crates/peryx-web/src/ssr/browse.rs +55 -0
  1382. peryx-2026.925.0/crates/peryx-web/src/ssr/login.rs +19 -0
  1383. peryx-2026.925.0/crates/peryx-web/src/ssr/mod.rs +78 -0
  1384. peryx-2026.925.0/crates/peryx-web/src/ssr/operations.rs +54 -0
  1385. peryx-2026.925.0/crates/peryx-web/src/ssr/placement.rs +85 -0
  1386. peryx-2026.925.0/crates/peryx-web/src/ssr/router.rs +115 -0
  1387. peryx-2026.925.0/crates/peryx-web/src/ssr/search.rs +53 -0
  1388. peryx-2026.925.0/crates/peryx-web/src/ssr/snapshot.rs +190 -0
  1389. peryx-2026.925.0/crates/peryx-web/src/ssr/topology.rs +57 -0
  1390. peryx-2026.925.0/crates/peryx-web/src/style.rs +359 -0
  1391. peryx-2026.925.0/crates/peryx-web/src/url.rs +136 -0
  1392. peryx-2026.925.0/crates/peryx-web/tests/frontend/capture-screens.mjs +50 -0
  1393. peryx-2026.925.0/crates/peryx-web/tests/frontend/package-lock.json +58 -0
  1394. peryx-2026.925.0/crates/peryx-web/tests/frontend/package.json +10 -0
  1395. peryx-2026.925.0/crates/peryx-web/tests/frontend/playwright.config.mjs +32 -0
  1396. peryx-2026.925.0/crates/peryx-web/tests/frontend/serve.mjs +12 -0
  1397. peryx-2026.925.0/crates/peryx-web/tests/frontend/server.mjs +130 -0
  1398. peryx-2026.925.0/crates/peryx-web/tests/frontend/test-support.mjs +95 -0
  1399. peryx-2026.925.0/crates/peryx-web/tests/frontend/tests/ui.spec.mjs +2282 -0
  1400. peryx-2026.925.0/crates/peryx-web/tests/unit/data/stats/tests.rs +219 -0
  1401. peryx-2026.925.0/crates/peryx-web/tests/unit/data/status/tests.rs +251 -0
  1402. peryx-2026.925.0/crates/peryx-web/tests/unit/data/topology/tests.rs +79 -0
  1403. peryx-2026.925.0/crates/peryx-web/tests/unit/model/analytics/tests.rs +314 -0
  1404. peryx-2026.925.0/crates/peryx-web/tests/unit/model/topology/tests.rs +125 -0
  1405. peryx-2026.925.0/crates/peryx-web/tests/unit/model/trash/tests.rs +124 -0
  1406. peryx-2026.925.0/crates/peryx-web/tests/unit/page_contract_tests.rs +224 -0
  1407. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/admin/tests.rs +180 -0
  1408. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/analytics/tests.rs +361 -0
  1409. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/browse/tests.rs +390 -0
  1410. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/dashboard/tests.rs +95 -0
  1411. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/login/tests.rs +29 -0
  1412. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/operations/tests.rs +120 -0
  1413. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/placement/tests.rs +172 -0
  1414. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/policy_decisions/tests.rs +316 -0
  1415. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/search/tests.rs +276 -0
  1416. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/stats/tests.rs +125 -0
  1417. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/tests.rs +125 -0
  1418. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/topology/tests.rs +213 -0
  1419. peryx-2026.925.0/crates/peryx-web/tests/unit/pages/trash/tests.rs +269 -0
  1420. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/operations/tests.rs +17 -0
  1421. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/placement/tests.rs +27 -0
  1422. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/router/tests.rs +66 -0
  1423. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/snapshot/tests.rs +295 -0
  1424. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/tests.rs +90 -0
  1425. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr/topology/tests.rs +81 -0
  1426. peryx-2026.925.0/crates/peryx-web/tests/unit/ssr_contract.rs +852 -0
  1427. peryx-2026.925.0/crates/peryx-web/tests/unit/tests.rs +394 -0
  1428. peryx-2026.925.0/crates/peryx-web/tests/unit/url/tests.rs +94 -0
  1429. peryx-2026.925.0/pyproject.toml +33 -0

There are too many changes on this page to be displayed.


The amount of changes on this page would crash your brower.

You can still verify the content by downloading the package file manually.