ccbt 0.0.1__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 (1265) hide show
  1. ccbt-0.0.1/.env copy +469 -0
  2. ccbt-0.0.1/.github/ISSUE_TEMPLATE/bug_report.md +58 -0
  3. ccbt-0.0.1/.github/ISSUE_TEMPLATE/compatibility_issue.md +75 -0
  4. ccbt-0.0.1/.github/ISSUE_TEMPLATE/config.yml +15 -0
  5. ccbt-0.0.1/.github/ISSUE_TEMPLATE/feature_request.md +42 -0
  6. ccbt-0.0.1/.github/ISSUE_TEMPLATE/user_experience.md +45 -0
  7. ccbt-0.0.1/.github/README.md +96 -0
  8. ccbt-0.0.1/.github/release.yml +40 -0
  9. ccbt-0.0.1/.github/workflows/README.md +285 -0
  10. ccbt-0.0.1/.github/workflows/benchmark.yml +77 -0
  11. ccbt-0.0.1/.github/workflows/build-documentation.yml +207 -0
  12. ccbt-0.0.1/.github/workflows/build.yml +105 -0
  13. ccbt-0.0.1/.github/workflows/ci.yml +72 -0
  14. ccbt-0.0.1/.github/workflows/compatibility.yml +130 -0
  15. ccbt-0.0.1/.github/workflows/deploy.yml +100 -0
  16. ccbt-0.0.1/.github/workflows/pre-release.yml +97 -0
  17. ccbt-0.0.1/.github/workflows/publish-pypi-dev.yml +114 -0
  18. ccbt-0.0.1/.github/workflows/publish-pypi.yml +183 -0
  19. ccbt-0.0.1/.github/workflows/release-to-main.yml +142 -0
  20. ccbt-0.0.1/.github/workflows/release.yml +241 -0
  21. ccbt-0.0.1/.github/workflows/security.yml +81 -0
  22. ccbt-0.0.1/.github/workflows/test.yml +129 -0
  23. ccbt-0.0.1/.github/workflows/version-check.yml +169 -0
  24. ccbt-0.0.1/.gitignore +352 -0
  25. ccbt-0.0.1/PKG-INFO +174 -0
  26. ccbt-0.0.1/ccbt/__init__.py +255 -0
  27. ccbt-0.0.1/ccbt/__main__.py +357 -0
  28. ccbt-0.0.1/ccbt/async_main.py +32 -0
  29. ccbt-0.0.1/ccbt/bencode.py +10 -0
  30. ccbt-0.0.1/ccbt/cli/__init__.py +21 -0
  31. ccbt-0.0.1/ccbt/cli/advanced_commands.py +688 -0
  32. ccbt-0.0.1/ccbt/cli/checkpoints.py +313 -0
  33. ccbt-0.0.1/ccbt/cli/config_commands.py +429 -0
  34. ccbt-0.0.1/ccbt/cli/config_commands_extended.py +1064 -0
  35. ccbt-0.0.1/ccbt/cli/config_utils.py +319 -0
  36. ccbt-0.0.1/ccbt/cli/console.py +60 -0
  37. ccbt-0.0.1/ccbt/cli/create_torrent.py +313 -0
  38. ccbt-0.0.1/ccbt/cli/daemon_commands.py +1020 -0
  39. ccbt-0.0.1/ccbt/cli/diagnostics.py +382 -0
  40. ccbt-0.0.1/ccbt/cli/downloads.py +638 -0
  41. ccbt-0.0.1/ccbt/cli/file_commands.py +436 -0
  42. ccbt-0.0.1/ccbt/cli/filter_commands.py +516 -0
  43. ccbt-0.0.1/ccbt/cli/interactive.py +2956 -0
  44. ccbt-0.0.1/ccbt/cli/ipfs_commands.py +401 -0
  45. ccbt-0.0.1/ccbt/cli/main.py +3536 -0
  46. ccbt-0.0.1/ccbt/cli/monitoring_commands.py +511 -0
  47. ccbt-0.0.1/ccbt/cli/monitoring_utils.py +33 -0
  48. ccbt-0.0.1/ccbt/cli/nat_commands.py +433 -0
  49. ccbt-0.0.1/ccbt/cli/overrides.py +504 -0
  50. ccbt-0.0.1/ccbt/cli/progress.py +530 -0
  51. ccbt-0.0.1/ccbt/cli/proxy_commands.py +370 -0
  52. ccbt-0.0.1/ccbt/cli/queue_commands.py +451 -0
  53. ccbt-0.0.1/ccbt/cli/resume.py +96 -0
  54. ccbt-0.0.1/ccbt/cli/scrape_commands.py +183 -0
  55. ccbt-0.0.1/ccbt/cli/ssl_commands.py +615 -0
  56. ccbt-0.0.1/ccbt/cli/status.py +301 -0
  57. ccbt-0.0.1/ccbt/cli/task_detector.py +228 -0
  58. ccbt-0.0.1/ccbt/cli/tonic_commands.py +679 -0
  59. ccbt-0.0.1/ccbt/cli/tonic_generator.py +288 -0
  60. ccbt-0.0.1/ccbt/cli/torrent_commands.py +695 -0
  61. ccbt-0.0.1/ccbt/cli/torrent_config_commands.py +567 -0
  62. ccbt-0.0.1/ccbt/cli/utp_commands.py +315 -0
  63. ccbt-0.0.1/ccbt/cli/verbosity.py +176 -0
  64. ccbt-0.0.1/ccbt/cli/xet_commands.py +523 -0
  65. ccbt-0.0.1/ccbt/config/__init__.py +30 -0
  66. ccbt-0.0.1/ccbt/config/config.py +1201 -0
  67. ccbt-0.0.1/ccbt/config/config_backup.py +440 -0
  68. ccbt-0.0.1/ccbt/config/config_capabilities.py +740 -0
  69. ccbt-0.0.1/ccbt/config/config_conditional.py +563 -0
  70. ccbt-0.0.1/ccbt/config/config_diff.py +476 -0
  71. ccbt-0.0.1/ccbt/config/config_migration.py +372 -0
  72. ccbt-0.0.1/ccbt/config/config_schema.py +437 -0
  73. ccbt-0.0.1/ccbt/config/config_templates.py +1347 -0
  74. ccbt-0.0.1/ccbt/consensus/__init__.py +33 -0
  75. ccbt-0.0.1/ccbt/consensus/byzantine.py +204 -0
  76. ccbt-0.0.1/ccbt/consensus/raft.py +411 -0
  77. ccbt-0.0.1/ccbt/consensus/raft_state.py +199 -0
  78. ccbt-0.0.1/ccbt/core/__init__.py +38 -0
  79. ccbt-0.0.1/ccbt/core/bencode.py +230 -0
  80. ccbt-0.0.1/ccbt/core/magnet.py +765 -0
  81. ccbt-0.0.1/ccbt/core/tonic.py +589 -0
  82. ccbt-0.0.1/ccbt/core/tonic_link.py +282 -0
  83. ccbt-0.0.1/ccbt/core/torrent.py +459 -0
  84. ccbt-0.0.1/ccbt/core/torrent_attributes.py +310 -0
  85. ccbt-0.0.1/ccbt/core/torrent_v2.py +1772 -0
  86. ccbt-0.0.1/ccbt/daemon/__init__.py +17 -0
  87. ccbt-0.0.1/ccbt/daemon/daemon_manager.py +940 -0
  88. ccbt-0.0.1/ccbt/daemon/debug_utils.py +181 -0
  89. ccbt-0.0.1/ccbt/daemon/ipc_client.py +2966 -0
  90. ccbt-0.0.1/ccbt/daemon/ipc_protocol.py +966 -0
  91. ccbt-0.0.1/ccbt/daemon/ipc_server.py +5533 -0
  92. ccbt-0.0.1/ccbt/daemon/main.py +1521 -0
  93. ccbt-0.0.1/ccbt/daemon/state_manager.py +496 -0
  94. ccbt-0.0.1/ccbt/daemon/state_models.py +127 -0
  95. ccbt-0.0.1/ccbt/daemon/utils.py +86 -0
  96. ccbt-0.0.1/ccbt/discovery/__init__.py +22 -0
  97. ccbt-0.0.1/ccbt/discovery/bloom_filter.py +326 -0
  98. ccbt-0.0.1/ccbt/discovery/dht.py +2093 -0
  99. ccbt-0.0.1/ccbt/discovery/dht_indexing.py +481 -0
  100. ccbt-0.0.1/ccbt/discovery/dht_ipv6.py +211 -0
  101. ccbt-0.0.1/ccbt/discovery/dht_multiaddr.py +399 -0
  102. ccbt-0.0.1/ccbt/discovery/dht_readonly.py +68 -0
  103. ccbt-0.0.1/ccbt/discovery/dht_storage.py +491 -0
  104. ccbt-0.0.1/ccbt/discovery/distributed_tracker.py +200 -0
  105. ccbt-0.0.1/ccbt/discovery/flooding.py +193 -0
  106. ccbt-0.0.1/ccbt/discovery/gossip.py +271 -0
  107. ccbt-0.0.1/ccbt/discovery/lpd.py +277 -0
  108. ccbt-0.0.1/ccbt/discovery/pex.py +483 -0
  109. ccbt-0.0.1/ccbt/discovery/tracker.py +3323 -0
  110. ccbt-0.0.1/ccbt/discovery/tracker_server_http.py +118 -0
  111. ccbt-0.0.1/ccbt/discovery/tracker_server_udp.py +147 -0
  112. ccbt-0.0.1/ccbt/discovery/tracker_udp_client.py +2802 -0
  113. ccbt-0.0.1/ccbt/discovery/xet_bloom.py +151 -0
  114. ccbt-0.0.1/ccbt/discovery/xet_cas.py +910 -0
  115. ccbt-0.0.1/ccbt/discovery/xet_catalog.py +302 -0
  116. ccbt-0.0.1/ccbt/discovery/xet_gossip.py +174 -0
  117. ccbt-0.0.1/ccbt/discovery/xet_multicast.py +296 -0
  118. ccbt-0.0.1/ccbt/executor/__init__.py +33 -0
  119. ccbt-0.0.1/ccbt/executor/base.py +95 -0
  120. ccbt-0.0.1/ccbt/executor/config_executor.py +56 -0
  121. ccbt-0.0.1/ccbt/executor/executor.py +90 -0
  122. ccbt-0.0.1/ccbt/executor/file_executor.py +103 -0
  123. ccbt-0.0.1/ccbt/executor/manager.py +288 -0
  124. ccbt-0.0.1/ccbt/executor/nat_executor.py +157 -0
  125. ccbt-0.0.1/ccbt/executor/protocol_executor.py +76 -0
  126. ccbt-0.0.1/ccbt/executor/queue_executor.py +110 -0
  127. ccbt-0.0.1/ccbt/executor/registry.py +62 -0
  128. ccbt-0.0.1/ccbt/executor/scrape_executor.py +75 -0
  129. ccbt-0.0.1/ccbt/executor/security_executor.py +316 -0
  130. ccbt-0.0.1/ccbt/executor/session_adapter.py +2670 -0
  131. ccbt-0.0.1/ccbt/executor/session_executor.py +64 -0
  132. ccbt-0.0.1/ccbt/executor/torrent_executor.py +770 -0
  133. ccbt-0.0.1/ccbt/executor/xet_executor.py +654 -0
  134. ccbt-0.0.1/ccbt/extensions/__init__.py +26 -0
  135. ccbt-0.0.1/ccbt/extensions/compact.py +271 -0
  136. ccbt-0.0.1/ccbt/extensions/dht.py +595 -0
  137. ccbt-0.0.1/ccbt/extensions/fast.py +287 -0
  138. ccbt-0.0.1/ccbt/extensions/manager.py +746 -0
  139. ccbt-0.0.1/ccbt/extensions/pex.py +403 -0
  140. ccbt-0.0.1/ccbt/extensions/protocol.py +379 -0
  141. ccbt-0.0.1/ccbt/extensions/ssl.py +339 -0
  142. ccbt-0.0.1/ccbt/extensions/webseed.py +529 -0
  143. ccbt-0.0.1/ccbt/extensions/xet.py +642 -0
  144. ccbt-0.0.1/ccbt/extensions/xet_handshake.py +321 -0
  145. ccbt-0.0.1/ccbt/extensions/xet_metadata.py +317 -0
  146. ccbt-0.0.1/ccbt/i18n/__init__.py +213 -0
  147. ccbt-0.0.1/ccbt/i18n/extract.py +127 -0
  148. ccbt-0.0.1/ccbt/i18n/fill_english.py +39 -0
  149. ccbt-0.0.1/ccbt/i18n/locales/arc/LC_MESSAGES/ccbt.po +3905 -0
  150. ccbt-0.0.1/ccbt/i18n/locales/en/LC_MESSAGES/ccbt.po +3789 -0
  151. ccbt-0.0.1/ccbt/i18n/locales/es/LC_MESSAGES/ccbt.po +3789 -0
  152. ccbt-0.0.1/ccbt/i18n/locales/eu/LC_MESSAGES/ccbt.po +3789 -0
  153. ccbt-0.0.1/ccbt/i18n/locales/fa/LC_MESSAGES/ccbt.po +3905 -0
  154. ccbt-0.0.1/ccbt/i18n/locales/fr/LC_MESSAGES/ccbt.po +3789 -0
  155. ccbt-0.0.1/ccbt/i18n/locales/ha/LC_MESSAGES/ccbt.po +3789 -0
  156. ccbt-0.0.1/ccbt/i18n/locales/hi/LC_MESSAGES/ccbt.po +3890 -0
  157. ccbt-0.0.1/ccbt/i18n/locales/ja/LC_MESSAGES/ccbt.po +3905 -0
  158. ccbt-0.0.1/ccbt/i18n/locales/ko/LC_MESSAGES/ccbt.po +3807 -0
  159. ccbt-0.0.1/ccbt/i18n/locales/sw/LC_MESSAGES/ccbt.po +3905 -0
  160. ccbt-0.0.1/ccbt/i18n/locales/th/LC_MESSAGES/ccbt.po +3807 -0
  161. ccbt-0.0.1/ccbt/i18n/locales/ur/LC_MESSAGES/ccbt.po +3844 -0
  162. ccbt-0.0.1/ccbt/i18n/locales/yo/LC_MESSAGES/ccbt.po +3951 -0
  163. ccbt-0.0.1/ccbt/i18n/locales/zh/LC_MESSAGES/ccbt.po +3954 -0
  164. ccbt-0.0.1/ccbt/i18n/manager.py +67 -0
  165. ccbt-0.0.1/ccbt/interface/__init__.py +32 -0
  166. ccbt-0.0.1/ccbt/interface/commands/__init__.py +7 -0
  167. ccbt-0.0.1/ccbt/interface/commands/executor.py +327 -0
  168. ccbt-0.0.1/ccbt/interface/daemon_session_adapter.py +1125 -0
  169. ccbt-0.0.1/ccbt/interface/data_provider.py +2357 -0
  170. ccbt-0.0.1/ccbt/interface/metrics/__init__.py +61 -0
  171. ccbt-0.0.1/ccbt/interface/metrics/graph_series.py +604 -0
  172. ccbt-0.0.1/ccbt/interface/reactive_updates.py +384 -0
  173. ccbt-0.0.1/ccbt/interface/screens/__init__.py +31 -0
  174. ccbt-0.0.1/ccbt/interface/screens/base.py +543 -0
  175. ccbt-0.0.1/ccbt/interface/screens/config/__init__.py +24 -0
  176. ccbt-0.0.1/ccbt/interface/screens/config/global_config.py +1559 -0
  177. ccbt-0.0.1/ccbt/interface/screens/config/proxy.py +423 -0
  178. ccbt-0.0.1/ccbt/interface/screens/config/ssl.py +596 -0
  179. ccbt-0.0.1/ccbt/interface/screens/config/torrent_config.py +1505 -0
  180. ccbt-0.0.1/ccbt/interface/screens/config/utp.py +424 -0
  181. ccbt-0.0.1/ccbt/interface/screens/config/widget_factory.py +257 -0
  182. ccbt-0.0.1/ccbt/interface/screens/config/widgets.py +181 -0
  183. ccbt-0.0.1/ccbt/interface/screens/dialogs.py +1606 -0
  184. ccbt-0.0.1/ccbt/interface/screens/file_selection_dialog.py +202 -0
  185. ccbt-0.0.1/ccbt/interface/screens/language_selection_screen.py +188 -0
  186. ccbt-0.0.1/ccbt/interface/screens/monitoring/__init__.py +43 -0
  187. ccbt-0.0.1/ccbt/interface/screens/monitoring/alerts.py +221 -0
  188. ccbt-0.0.1/ccbt/interface/screens/monitoring/dht_metrics.py +268 -0
  189. ccbt-0.0.1/ccbt/interface/screens/monitoring/disk_analysis.py +363 -0
  190. ccbt-0.0.1/ccbt/interface/screens/monitoring/disk_io.py +295 -0
  191. ccbt-0.0.1/ccbt/interface/screens/monitoring/historical.py +208 -0
  192. ccbt-0.0.1/ccbt/interface/screens/monitoring/ipfs.py +543 -0
  193. ccbt-0.0.1/ccbt/interface/screens/monitoring/metrics_explorer.py +383 -0
  194. ccbt-0.0.1/ccbt/interface/screens/monitoring/nat.py +533 -0
  195. ccbt-0.0.1/ccbt/interface/screens/monitoring/network.py +355 -0
  196. ccbt-0.0.1/ccbt/interface/screens/monitoring/performance.py +282 -0
  197. ccbt-0.0.1/ccbt/interface/screens/monitoring/performance_analysis.py +333 -0
  198. ccbt-0.0.1/ccbt/interface/screens/monitoring/queue.py +284 -0
  199. ccbt-0.0.1/ccbt/interface/screens/monitoring/scrape.py +271 -0
  200. ccbt-0.0.1/ccbt/interface/screens/monitoring/security_scan.py +222 -0
  201. ccbt-0.0.1/ccbt/interface/screens/monitoring/system_resources.py +155 -0
  202. ccbt-0.0.1/ccbt/interface/screens/monitoring/tracker.py +267 -0
  203. ccbt-0.0.1/ccbt/interface/screens/monitoring/xet.py +440 -0
  204. ccbt-0.0.1/ccbt/interface/screens/monitoring/xet_folder_sync.py +803 -0
  205. ccbt-0.0.1/ccbt/interface/screens/per_peer_tab.py +405 -0
  206. ccbt-0.0.1/ccbt/interface/screens/per_torrent_files.py +437 -0
  207. ccbt-0.0.1/ccbt/interface/screens/per_torrent_info.py +459 -0
  208. ccbt-0.0.1/ccbt/interface/screens/per_torrent_peers.py +211 -0
  209. ccbt-0.0.1/ccbt/interface/screens/per_torrent_tab.py +634 -0
  210. ccbt-0.0.1/ccbt/interface/screens/per_torrent_trackers.py +369 -0
  211. ccbt-0.0.1/ccbt/interface/screens/preferences_tab.py +251 -0
  212. ccbt-0.0.1/ccbt/interface/screens/tabbed_base.py +128 -0
  213. ccbt-0.0.1/ccbt/interface/screens/theme_selection_screen.py +207 -0
  214. ccbt-0.0.1/ccbt/interface/screens/torrents_tab.py +1130 -0
  215. ccbt-0.0.1/ccbt/interface/screens/utility/__init__.py +8 -0
  216. ccbt-0.0.1/ccbt/interface/screens/utility/file_selection.py +334 -0
  217. ccbt-0.0.1/ccbt/interface/screens/utility/help.py +166 -0
  218. ccbt-0.0.1/ccbt/interface/screens/utility/navigation.py +200 -0
  219. ccbt-0.0.1/ccbt/interface/splash/README.md +259 -0
  220. ccbt-0.0.1/ccbt/interface/splash/__init__.py +76 -0
  221. ccbt-0.0.1/ccbt/interface/splash/animation_adapter.py +233 -0
  222. ccbt-0.0.1/ccbt/interface/splash/animation_config.py +324 -0
  223. ccbt-0.0.1/ccbt/interface/splash/animation_demo.py +185 -0
  224. ccbt-0.0.1/ccbt/interface/splash/animation_executor.py +453 -0
  225. ccbt-0.0.1/ccbt/interface/splash/animation_helpers.py +5016 -0
  226. ccbt-0.0.1/ccbt/interface/splash/animation_registry.py +376 -0
  227. ccbt-0.0.1/ccbt/interface/splash/animations.py +488 -0
  228. ccbt-0.0.1/ccbt/interface/splash/ascii_art/README.md +65 -0
  229. ccbt-0.0.1/ccbt/interface/splash/ascii_art/__init__.py +101 -0
  230. ccbt-0.0.1/ccbt/interface/splash/ascii_art/logo_1.py +54 -0
  231. ccbt-0.0.1/ccbt/interface/splash/ascii_art/nautical_ship.py +36 -0
  232. ccbt-0.0.1/ccbt/interface/splash/ascii_art/row_boat.py +23 -0
  233. ccbt-0.0.1/ccbt/interface/splash/ascii_art/sailing_ship.py +30 -0
  234. ccbt-0.0.1/ccbt/interface/splash/ascii_art.py +184 -0
  235. ccbt-0.0.1/ccbt/interface/splash/backgrounds.py +374 -0
  236. ccbt-0.0.1/ccbt/interface/splash/character_modifier.py +334 -0
  237. ccbt-0.0.1/ccbt/interface/splash/color_matching.py +299 -0
  238. ccbt-0.0.1/ccbt/interface/splash/color_themes.py +79 -0
  239. ccbt-0.0.1/ccbt/interface/splash/message_overlay.py +264 -0
  240. ccbt-0.0.1/ccbt/interface/splash/run_demo.py +39 -0
  241. ccbt-0.0.1/ccbt/interface/splash/run_unified_demo.py +21 -0
  242. ccbt-0.0.1/ccbt/interface/splash/sequence_generator.py +272 -0
  243. ccbt-0.0.1/ccbt/interface/splash/splash_demo.py +91 -0
  244. ccbt-0.0.1/ccbt/interface/splash/splash_manager.py +291 -0
  245. ccbt-0.0.1/ccbt/interface/splash/splash_screen.py +1092 -0
  246. ccbt-0.0.1/ccbt/interface/splash/standalone_demo.py +115 -0
  247. ccbt-0.0.1/ccbt/interface/splash/templates.py +269 -0
  248. ccbt-0.0.1/ccbt/interface/splash/textual_renderable.py +194 -0
  249. ccbt-0.0.1/ccbt/interface/splash/transitions.py +313 -0
  250. ccbt-0.0.1/ccbt/interface/splash/unified_demo.py +412 -0
  251. ccbt-0.0.1/ccbt/interface/terminal_dashboard.py +4689 -0
  252. ccbt-0.0.1/ccbt/interface/terminal_dashboard_dev.py +423 -0
  253. ccbt-0.0.1/ccbt/interface/themes/__init__.py +15 -0
  254. ccbt-0.0.1/ccbt/interface/themes/rainbow.py +141 -0
  255. ccbt-0.0.1/ccbt/interface/widgets/__init__.py +75 -0
  256. ccbt-0.0.1/ccbt/interface/widgets/button_selector.py +122 -0
  257. ccbt-0.0.1/ccbt/interface/widgets/command_bars.py +118 -0
  258. ccbt-0.0.1/ccbt/interface/widgets/config_wrapper.py +1139 -0
  259. ccbt-0.0.1/ccbt/interface/widgets/core_widgets.py +1216 -0
  260. ccbt-0.0.1/ccbt/interface/widgets/dht_health_widget.py +182 -0
  261. ccbt-0.0.1/ccbt/interface/widgets/file_browser.py +392 -0
  262. ccbt-0.0.1/ccbt/interface/widgets/global_kpis_panel.py +282 -0
  263. ccbt-0.0.1/ccbt/interface/widgets/graph_widget.py +3049 -0
  264. ccbt-0.0.1/ccbt/interface/widgets/language_selector.py +298 -0
  265. ccbt-0.0.1/ccbt/interface/widgets/monitoring_wrapper.py +428 -0
  266. ccbt-0.0.1/ccbt/interface/widgets/peer_quality_distribution_widget.py +312 -0
  267. ccbt-0.0.1/ccbt/interface/widgets/piece_availability_bar.py +384 -0
  268. ccbt-0.0.1/ccbt/interface/widgets/piece_selection_widget.py +309 -0
  269. ccbt-0.0.1/ccbt/interface/widgets/reusable_table.py +130 -0
  270. ccbt-0.0.1/ccbt/interface/widgets/reusable_widgets.py +145 -0
  271. ccbt-0.0.1/ccbt/interface/widgets/swarm_timeline_widget.py +301 -0
  272. ccbt-0.0.1/ccbt/interface/widgets/tabbed_interface.py +570 -0
  273. ccbt-0.0.1/ccbt/interface/widgets/torrent_controls.py +551 -0
  274. ccbt-0.0.1/ccbt/interface/widgets/torrent_file_explorer.py +543 -0
  275. ccbt-0.0.1/ccbt/interface/widgets/torrent_selector.py +280 -0
  276. ccbt-0.0.1/ccbt/ml/__init__.py +23 -0
  277. ccbt-0.0.1/ccbt/ml/adaptive_limiter.py +564 -0
  278. ccbt-0.0.1/ccbt/ml/peer_selector.py +571 -0
  279. ccbt-0.0.1/ccbt/ml/piece_predictor.py +649 -0
  280. ccbt-0.0.1/ccbt/models.py +3755 -0
  281. ccbt-0.0.1/ccbt/monitoring/__init__.py +271 -0
  282. ccbt-0.0.1/ccbt/monitoring/alert_manager.py +732 -0
  283. ccbt-0.0.1/ccbt/monitoring/dashboard.py +842 -0
  284. ccbt-0.0.1/ccbt/monitoring/metrics_collector.py +1580 -0
  285. ccbt-0.0.1/ccbt/monitoring/tracing.py +507 -0
  286. ccbt-0.0.1/ccbt/nat/__init__.py +10 -0
  287. ccbt-0.0.1/ccbt/nat/exceptions.py +13 -0
  288. ccbt-0.0.1/ccbt/nat/manager.py +1309 -0
  289. ccbt-0.0.1/ccbt/nat/natpmp.py +456 -0
  290. ccbt-0.0.1/ccbt/nat/port_mapping.py +325 -0
  291. ccbt-0.0.1/ccbt/nat/upnp.py +1176 -0
  292. ccbt-0.0.1/ccbt/observability/__init__.py +17 -0
  293. ccbt-0.0.1/ccbt/observability/profiler.py +458 -0
  294. ccbt-0.0.1/ccbt/peer/__init__.py +21 -0
  295. ccbt-0.0.1/ccbt/peer/async_peer_connection.py +13722 -0
  296. ccbt-0.0.1/ccbt/peer/connection_pool.py +1660 -0
  297. ccbt-0.0.1/ccbt/peer/peer.py +1621 -0
  298. ccbt-0.0.1/ccbt/peer/peer_connection.py +95 -0
  299. ccbt-0.0.1/ccbt/peer/ssl_peer.py +454 -0
  300. ccbt-0.0.1/ccbt/peer/tcp_server.py +484 -0
  301. ccbt-0.0.1/ccbt/peer/utp_peer.py +403 -0
  302. ccbt-0.0.1/ccbt/peer/webrtc_peer.py +306 -0
  303. ccbt-0.0.1/ccbt/piece/__init__.py +22 -0
  304. ccbt-0.0.1/ccbt/piece/async_metadata_exchange.py +1308 -0
  305. ccbt-0.0.1/ccbt/piece/async_piece_manager.py +8503 -0
  306. ccbt-0.0.1/ccbt/piece/file_selection.py +519 -0
  307. ccbt-0.0.1/ccbt/piece/hash_v2.py +755 -0
  308. ccbt-0.0.1/ccbt/piece/metadata_exchange.py +203 -0
  309. ccbt-0.0.1/ccbt/piece/piece_manager.py +388 -0
  310. ccbt-0.0.1/ccbt/plugins/__init__.py +11 -0
  311. ccbt-0.0.1/ccbt/plugins/base.py +420 -0
  312. ccbt-0.0.1/ccbt/plugins/logging_plugin.py +120 -0
  313. ccbt-0.0.1/ccbt/plugins/metrics_plugin.py +261 -0
  314. ccbt-0.0.1/ccbt/protocols/__init__.py +46 -0
  315. ccbt-0.0.1/ccbt/protocols/base.py +773 -0
  316. ccbt-0.0.1/ccbt/protocols/bittorrent.py +542 -0
  317. ccbt-0.0.1/ccbt/protocols/bittorrent_v2.py +1288 -0
  318. ccbt-0.0.1/ccbt/protocols/hybrid.py +562 -0
  319. ccbt-0.0.1/ccbt/protocols/ipfs.py +1991 -0
  320. ccbt-0.0.1/ccbt/protocols/webtorrent/__init__.py +48 -0
  321. ccbt-0.0.1/ccbt/protocols/webtorrent/webrtc_manager.py +489 -0
  322. ccbt-0.0.1/ccbt/protocols/webtorrent.py +1431 -0
  323. ccbt-0.0.1/ccbt/protocols/xet.py +1090 -0
  324. ccbt-0.0.1/ccbt/proxy/__init__.py +23 -0
  325. ccbt-0.0.1/ccbt/proxy/auth.py +271 -0
  326. ccbt-0.0.1/ccbt/proxy/client.py +632 -0
  327. ccbt-0.0.1/ccbt/proxy/exceptions.py +23 -0
  328. ccbt-0.0.1/ccbt/py.typed +0 -0
  329. ccbt-0.0.1/ccbt/queue/__init__.py +6 -0
  330. ccbt-0.0.1/ccbt/queue/bandwidth.py +204 -0
  331. ccbt-0.0.1/ccbt/queue/manager.py +919 -0
  332. ccbt-0.0.1/ccbt/security/__init__.py +29 -0
  333. ccbt-0.0.1/ccbt/security/anomaly_detector.py +658 -0
  334. ccbt-0.0.1/ccbt/security/blacklist_updater.py +289 -0
  335. ccbt-0.0.1/ccbt/security/ciphers/__init__.py +19 -0
  336. ccbt-0.0.1/ccbt/security/ciphers/aes.py +103 -0
  337. ccbt-0.0.1/ccbt/security/ciphers/base.py +47 -0
  338. ccbt-0.0.1/ccbt/security/ciphers/chacha20.py +101 -0
  339. ccbt-0.0.1/ccbt/security/ciphers/rc4.py +101 -0
  340. ccbt-0.0.1/ccbt/security/dh_exchange.py +188 -0
  341. ccbt-0.0.1/ccbt/security/ed25519_handshake.py +184 -0
  342. ccbt-0.0.1/ccbt/security/encrypted_stream.py +142 -0
  343. ccbt-0.0.1/ccbt/security/encryption.py +694 -0
  344. ccbt-0.0.1/ccbt/security/ip_filter.py +711 -0
  345. ccbt-0.0.1/ccbt/security/key_manager.py +439 -0
  346. ccbt-0.0.1/ccbt/security/local_blacklist_source.py +421 -0
  347. ccbt-0.0.1/ccbt/security/messaging.py +394 -0
  348. ccbt-0.0.1/ccbt/security/mse_handshake.py +591 -0
  349. ccbt-0.0.1/ccbt/security/peer_validator.py +450 -0
  350. ccbt-0.0.1/ccbt/security/rate_limiter.py +594 -0
  351. ccbt-0.0.1/ccbt/security/security_manager.py +991 -0
  352. ccbt-0.0.1/ccbt/security/ssl_context.py +494 -0
  353. ccbt-0.0.1/ccbt/security/tls_certificates.py +268 -0
  354. ccbt-0.0.1/ccbt/security/xet_allowlist.py +433 -0
  355. ccbt-0.0.1/ccbt/services/__init__.py +27 -0
  356. ccbt-0.0.1/ccbt/services/base.py +386 -0
  357. ccbt-0.0.1/ccbt/services/peer_service.py +320 -0
  358. ccbt-0.0.1/ccbt/services/storage_service.py +609 -0
  359. ccbt-0.0.1/ccbt/services/tracker_service.py +415 -0
  360. ccbt-0.0.1/ccbt/session/__init__.py +49 -0
  361. ccbt-0.0.1/ccbt/session/adapters.py +157 -0
  362. ccbt-0.0.1/ccbt/session/announce.py +1172 -0
  363. ccbt-0.0.1/ccbt/session/async_main.py +214 -0
  364. ccbt-0.0.1/ccbt/session/checkpoint_operations.py +433 -0
  365. ccbt-0.0.1/ccbt/session/checkpointing.py +1172 -0
  366. ccbt-0.0.1/ccbt/session/dht_setup.py +2153 -0
  367. ccbt-0.0.1/ccbt/session/discovery.py +298 -0
  368. ccbt-0.0.1/ccbt/session/download_manager.py +849 -0
  369. ccbt-0.0.1/ccbt/session/download_startup.py +11 -0
  370. ccbt-0.0.1/ccbt/session/factories.py +120 -0
  371. ccbt-0.0.1/ccbt/session/fast_resume.py +296 -0
  372. ccbt-0.0.1/ccbt/session/incoming.py +210 -0
  373. ccbt-0.0.1/ccbt/session/lifecycle.py +68 -0
  374. ccbt-0.0.1/ccbt/session/magnet_handling.py +59 -0
  375. ccbt-0.0.1/ccbt/session/manager_background.py +155 -0
  376. ccbt-0.0.1/ccbt/session/manager_startup.py +11 -0
  377. ccbt-0.0.1/ccbt/session/metrics_status.py +288 -0
  378. ccbt-0.0.1/ccbt/session/models.py +48 -0
  379. ccbt-0.0.1/ccbt/session/peer_events.py +75 -0
  380. ccbt-0.0.1/ccbt/session/peers.py +946 -0
  381. ccbt-0.0.1/ccbt/session/scrape.py +236 -0
  382. ccbt-0.0.1/ccbt/session/session.py +5186 -0
  383. ccbt-0.0.1/ccbt/session/status_aggregation.py +148 -0
  384. ccbt-0.0.1/ccbt/session/tasks.py +68 -0
  385. ccbt-0.0.1/ccbt/session/torrent_addition.py +708 -0
  386. ccbt-0.0.1/ccbt/session/torrent_utils.py +344 -0
  387. ccbt-0.0.1/ccbt/session/types.py +111 -0
  388. ccbt-0.0.1/ccbt/session/xet_conflict.py +378 -0
  389. ccbt-0.0.1/ccbt/session/xet_realtime_sync.py +376 -0
  390. ccbt-0.0.1/ccbt/session/xet_sync_manager.py +1197 -0
  391. ccbt-0.0.1/ccbt/storage/__init__.py +31 -0
  392. ccbt-0.0.1/ccbt/storage/buffers.py +468 -0
  393. ccbt-0.0.1/ccbt/storage/checkpoint.py +1383 -0
  394. ccbt-0.0.1/ccbt/storage/disk_io.py +2777 -0
  395. ccbt-0.0.1/ccbt/storage/disk_io_init.py +216 -0
  396. ccbt-0.0.1/ccbt/storage/file_assembler.py +1611 -0
  397. ccbt-0.0.1/ccbt/storage/folder_watcher.py +320 -0
  398. ccbt-0.0.1/ccbt/storage/git_versioning.py +363 -0
  399. ccbt-0.0.1/ccbt/storage/io_uring_wrapper.py +205 -0
  400. ccbt-0.0.1/ccbt/storage/resume_data.py +280 -0
  401. ccbt-0.0.1/ccbt/storage/xet_chunking.py +540 -0
  402. ccbt-0.0.1/ccbt/storage/xet_data_aggregator.py +220 -0
  403. ccbt-0.0.1/ccbt/storage/xet_deduplication.py +1008 -0
  404. ccbt-0.0.1/ccbt/storage/xet_defrag_prevention.py +208 -0
  405. ccbt-0.0.1/ccbt/storage/xet_file_deduplication.py +258 -0
  406. ccbt-0.0.1/ccbt/storage/xet_folder_manager.py +317 -0
  407. ccbt-0.0.1/ccbt/storage/xet_hashing.py +223 -0
  408. ccbt-0.0.1/ccbt/storage/xet_shard.py +407 -0
  409. ccbt-0.0.1/ccbt/storage/xet_xorb.py +456 -0
  410. ccbt-0.0.1/ccbt/transport/__init__.py +7 -0
  411. ccbt-0.0.1/ccbt/transport/utp.py +1876 -0
  412. ccbt-0.0.1/ccbt/transport/utp_extensions.py +388 -0
  413. ccbt-0.0.1/ccbt/transport/utp_socket.py +568 -0
  414. ccbt-0.0.1/ccbt/utils/__init__.py +41 -0
  415. ccbt-0.0.1/ccbt/utils/backoff.py +25 -0
  416. ccbt-0.0.1/ccbt/utils/bitfield.py +28 -0
  417. ccbt-0.0.1/ccbt/utils/console_utils.py +505 -0
  418. ccbt-0.0.1/ccbt/utils/dht_utils.py +34 -0
  419. ccbt-0.0.1/ccbt/utils/di.py +63 -0
  420. ccbt-0.0.1/ccbt/utils/events.py +970 -0
  421. ccbt-0.0.1/ccbt/utils/exceptions.py +119 -0
  422. ccbt-0.0.1/ccbt/utils/logging_config.py +667 -0
  423. ccbt-0.0.1/ccbt/utils/metadata_utils.py +27 -0
  424. ccbt-0.0.1/ccbt/utils/metrics.py +841 -0
  425. ccbt-0.0.1/ccbt/utils/network_optimizer.py +814 -0
  426. ccbt-0.0.1/ccbt/utils/port_checker.py +188 -0
  427. ccbt-0.0.1/ccbt/utils/resilience.py +542 -0
  428. ccbt-0.0.1/ccbt/utils/rich_logging.py +486 -0
  429. ccbt-0.0.1/ccbt/utils/rtt_measurement.py +218 -0
  430. ccbt-0.0.1/ccbt/utils/shutdown.py +45 -0
  431. ccbt-0.0.1/ccbt/utils/tasks.py +40 -0
  432. ccbt-0.0.1/ccbt/utils/time.py +18 -0
  433. ccbt-0.0.1/ccbt/utils/timeout_adapter.py +260 -0
  434. ccbt-0.0.1/ccbt/utils/tracker_utils.py +24 -0
  435. ccbt-0.0.1/ccbt/utils/version.py +165 -0
  436. ccbt-0.0.1/ccbt.toml +424 -0
  437. ccbt-0.0.1/dev/.codecov.yml +215 -0
  438. ccbt-0.0.1/dev/.readthedocs.yaml +41 -0
  439. ccbt-0.0.1/dev/CHANGELOG.md +35 -0
  440. ccbt-0.0.1/dev/COMPATIBILITY_LINTING.md +241 -0
  441. ccbt-0.0.1/dev/Dockerfile.test +30 -0
  442. ccbt-0.0.1/dev/README_PyPI.md +96 -0
  443. ccbt-0.0.1/dev/RELEASE_CHECKLIST.md +113 -0
  444. ccbt-0.0.1/dev/benchmarks.toml +36 -0
  445. ccbt-0.0.1/dev/build_docs_patched.py +246 -0
  446. ccbt-0.0.1/dev/build_docs_patched_clean.py +337 -0
  447. ccbt-0.0.1/dev/build_docs_with_logs.py +289 -0
  448. ccbt-0.0.1/dev/compatibility_linter.py +855 -0
  449. ccbt-0.0.1/dev/docker-compose.test.yml +107 -0
  450. ccbt-0.0.1/dev/mkdocs.yml +275 -0
  451. ccbt-0.0.1/dev/pre-commit-config.yaml +153 -0
  452. ccbt-0.0.1/dev/pypi-setup.md +223 -0
  453. ccbt-0.0.1/dev/pytest.ini +67 -0
  454. ccbt-0.0.1/dev/requirements-rtd.txt +35 -0
  455. ccbt-0.0.1/dev/ruff.toml +199 -0
  456. ccbt-0.0.1/dev/run_precommit_lints.py +154 -0
  457. ccbt-0.0.1/dev/run_tests_by_category.ps1 +123 -0
  458. ccbt-0.0.1/dev/run_tests_by_category.py +220 -0
  459. ccbt-0.0.1/dev/test_rtd_config.py +123 -0
  460. ccbt-0.0.1/dev/ty.toml +53 -0
  461. ccbt-0.0.1/docs/arc/configuration.md +742 -0
  462. ccbt-0.0.1/docs/arc/examples.md +348 -0
  463. ccbt-0.0.1/docs/arc/getting-started.md +466 -0
  464. ccbt-0.0.1/docs/arc/index.md +392 -0
  465. ccbt-0.0.1/docs/arc/localization-status.md +117 -0
  466. ccbt-0.0.1/docs/arc/rtl-guidelines.md +145 -0
  467. ccbt-0.0.1/docs/en/API.md +1881 -0
  468. ccbt-0.0.1/docs/en/CI_CD.md +466 -0
  469. ccbt-0.0.1/docs/en/RELEASE_CHECKLIST.md +71 -0
  470. ccbt-0.0.1/docs/en/architecture/extension-vs-protocol-separation.md +209 -0
  471. ccbt-0.0.1/docs/en/architecture.md +644 -0
  472. ccbt-0.0.1/docs/en/bep52.md +564 -0
  473. ccbt-0.0.1/docs/en/bep_xet.md +660 -0
  474. ccbt-0.0.1/docs/en/bitonic.md +2183 -0
  475. ccbt-0.0.1/docs/en/blog/.gitkeep +200 -0
  476. ccbt-0.0.1/docs/en/blog/2024-01-01-welcome.md +0 -0
  477. ccbt-0.0.1/docs/en/blog/2024-01-15-release-notes.md +308 -0
  478. ccbt-0.0.1/docs/en/blog/2024-02-01-feature-highlight.md +157 -0
  479. ccbt-0.0.1/docs/en/blog/index.md +256 -0
  480. ccbt-0.0.1/docs/en/btbt-cli.md +652 -0
  481. ccbt-0.0.1/docs/en/ccBT-RAIL.md +175 -0
  482. ccbt-0.0.1/docs/en/configuration.md +401 -0
  483. ccbt-0.0.1/docs/en/contributing.md +538 -0
  484. ccbt-0.0.1/docs/en/developer/di.md +26 -0
  485. ccbt-0.0.1/docs/en/examples/bep52/create_hybrid_torrent.py +183 -0
  486. ccbt-0.0.1/docs/en/examples/bep52/create_v2_torrent.py +125 -0
  487. ccbt-0.0.1/docs/en/examples/bep52/parse_v2_torrent.py +218 -0
  488. ccbt-0.0.1/docs/en/examples/bep52/protocol_v2_session.py +306 -0
  489. ccbt-0.0.1/docs/en/examples/example-config-advanced.toml +34 -0
  490. ccbt-0.0.1/docs/en/examples/example-config-basic.toml +21 -0
  491. ccbt-0.0.1/docs/en/examples/example-config-performance.toml +24 -0
  492. ccbt-0.0.1/docs/en/examples/example-config-security.toml +21 -0
  493. ccbt-0.0.1/docs/en/examples.md +77 -0
  494. ccbt-0.0.1/docs/en/funding.md +85 -0
  495. ccbt-0.0.1/docs/en/getting-started.md +165 -0
  496. ccbt-0.0.1/docs/en/i18n/translation-guide.md +274 -0
  497. ccbt-0.0.1/docs/en/includes/mkdocs.md +4 -0
  498. ccbt-0.0.1/docs/en/index.md +114 -0
  499. ccbt-0.0.1/docs/en/license.md +563 -0
  500. ccbt-0.0.1/docs/en/performance/encryption_benchmark_report.md +237 -0
  501. ccbt-0.0.1/docs/en/performance.md +458 -0
  502. ccbt-0.0.1/docs/en/reports/bandit/index.md +46 -0
  503. ccbt-0.0.1/docs/en/reports/benchmarks/index.md +72 -0
  504. ccbt-0.0.1/docs/en/reports/benchmarks/runs/disk_io-20251112-191716-a9c4027.json +81 -0
  505. ccbt-0.0.1/docs/en/reports/benchmarks/runs/disk_io-20251112-191742-a9c4027.json +81 -0
  506. ccbt-0.0.1/docs/en/reports/benchmarks/runs/disk_io-20251112-191743-a9c4027.json +81 -0
  507. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191730-a9c4027.json +243 -0
  508. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191745-a9c4027.json +243 -0
  509. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191746-a9c4027.json +243 -0
  510. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191747-a9c4027.json +243 -0
  511. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191748-a9c4027.json +243 -0
  512. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191750-a9c4027.json +243 -0
  513. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191759-a9c4027.json +243 -0
  514. ccbt-0.0.1/docs/en/reports/benchmarks/runs/encryption-20251112-191800-a9c4027.json +243 -0
  515. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191707-a9c4027.json +42 -0
  516. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191741-a9c4027.json +42 -0
  517. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191754-a9c4027.json +42 -0
  518. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191755-a9c4027.json +42 -0
  519. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191756-a9c4027.json +42 -0
  520. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191758-a9c4027.json +42 -0
  521. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191805-a9c4027.json +42 -0
  522. ccbt-0.0.1/docs/en/reports/benchmarks/runs/hash_verify-20251112-191806-a9c4027.json +42 -0
  523. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191721-a9c4027.json +29 -0
  524. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191742-a9c4027.json +29 -0
  525. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191749-a9c4027.json +29 -0
  526. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191755-a9c4027.json +29 -0
  527. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191756-a9c4027.json +29 -0
  528. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191757-a9c4027.json +29 -0
  529. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191800-a9c4027.json +29 -0
  530. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191807-a9c4027.json +29 -0
  531. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251112-191808-a9c4027.json +29 -0
  532. ccbt-0.0.1/docs/en/reports/benchmarks/runs/loopback_throughput-20251113-165017-7cbe3b2.json +53 -0
  533. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191719-a9c4027.json +28 -0
  534. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191745-a9c4027.json +28 -0
  535. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191751-a9c4027.json +28 -0
  536. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191758-a9c4027.json +28 -0
  537. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191759-a9c4027.json +28 -0
  538. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191800-a9c4027.json +28 -0
  539. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191802-a9c4027.json +28 -0
  540. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191808-a9c4027.json +28 -0
  541. ccbt-0.0.1/docs/en/reports/benchmarks/runs/piece_assembly-20251112-191809-a9c4027.json +28 -0
  542. ccbt-0.0.1/docs/en/reports/benchmarks/timeseries/loopback_throughput_timeseries.json +54 -0
  543. ccbt-0.0.1/docs/en/reports/coverage.md +16 -0
  544. ccbt-0.0.1/docs/en/reports/junit.xml +1 -0
  545. ccbt-0.0.1/docs/en/unimplemented-methods.md +38 -0
  546. ccbt-0.0.1/docs/es/architecture.md +575 -0
  547. ccbt-0.0.1/docs/es/bep52.md +564 -0
  548. ccbt-0.0.1/docs/es/bep_xet.md +605 -0
  549. ccbt-0.0.1/docs/es/bitonic.md +2003 -0
  550. ccbt-0.0.1/docs/es/btbt-cli.md +1340 -0
  551. ccbt-0.0.1/docs/es/configuration.md +401 -0
  552. ccbt-0.0.1/docs/es/examples.md +78 -0
  553. ccbt-0.0.1/docs/es/getting-started.md +165 -0
  554. ccbt-0.0.1/docs/es/index.md +114 -0
  555. ccbt-0.0.1/docs/es/performance.md +458 -0
  556. ccbt-0.0.1/docs/eu/configuration.md +401 -0
  557. ccbt-0.0.1/docs/eu/examples.md +78 -0
  558. ccbt-0.0.1/docs/eu/getting-started.md +165 -0
  559. ccbt-0.0.1/docs/eu/index.md +114 -0
  560. ccbt-0.0.1/docs/fa/API.md +111 -0
  561. ccbt-0.0.1/docs/fa/architecture.md +68 -0
  562. ccbt-0.0.1/docs/fa/configuration.md +742 -0
  563. ccbt-0.0.1/docs/fa/examples.md +348 -0
  564. ccbt-0.0.1/docs/fa/getting-started.md +466 -0
  565. ccbt-0.0.1/docs/fa/index.md +408 -0
  566. ccbt-0.0.1/docs/fixes/dht-download-start-loop-fix.md +142 -0
  567. ccbt-0.0.1/docs/fixes/empty-bitfield-peer-disconnect-fix.md +154 -0
  568. ccbt-0.0.1/docs/fixes/peer-discovery-piece-selection-fix.md +204 -0
  569. ccbt-0.0.1/docs/fixes/peer-timeout-no-pieces-fix.md +172 -0
  570. ccbt-0.0.1/docs/fr/architecture.md +575 -0
  571. ccbt-0.0.1/docs/fr/bep52.md +564 -0
  572. ccbt-0.0.1/docs/fr/bep_xet.md +605 -0
  573. ccbt-0.0.1/docs/fr/bitonic.md +2003 -0
  574. ccbt-0.0.1/docs/fr/btbt-cli.md +1492 -0
  575. ccbt-0.0.1/docs/fr/configuration.md +401 -0
  576. ccbt-0.0.1/docs/fr/examples.md +78 -0
  577. ccbt-0.0.1/docs/fr/getting-started.md +165 -0
  578. ccbt-0.0.1/docs/fr/index.md +114 -0
  579. ccbt-0.0.1/docs/fr/performance.md +458 -0
  580. ccbt-0.0.1/docs/ha/configuration.md +738 -0
  581. ccbt-0.0.1/docs/ha/examples.md +344 -0
  582. ccbt-0.0.1/docs/ha/getting-started.md +466 -0
  583. ccbt-0.0.1/docs/ha/index.md +392 -0
  584. ccbt-0.0.1/docs/hi/API.md +111 -0
  585. ccbt-0.0.1/docs/hi/architecture.md +68 -0
  586. ccbt-0.0.1/docs/hi/configuration.md +742 -0
  587. ccbt-0.0.1/docs/hi/examples.md +348 -0
  588. ccbt-0.0.1/docs/hi/getting-started.md +466 -0
  589. ccbt-0.0.1/docs/hi/index.md +408 -0
  590. ccbt-0.0.1/docs/ja/API.md +179 -0
  591. ccbt-0.0.1/docs/ja/CI_CD.md +91 -0
  592. ccbt-0.0.1/docs/ja/architecture.md +575 -0
  593. ccbt-0.0.1/docs/ja/bep52.md +564 -0
  594. ccbt-0.0.1/docs/ja/bep_xet.md +605 -0
  595. ccbt-0.0.1/docs/ja/bitonic.md +2003 -0
  596. ccbt-0.0.1/docs/ja/btbt-cli.md +652 -0
  597. ccbt-0.0.1/docs/ja/configuration.md +742 -0
  598. ccbt-0.0.1/docs/ja/contributing.md +146 -0
  599. ccbt-0.0.1/docs/ja/examples.md +348 -0
  600. ccbt-0.0.1/docs/ja/getting-started.md +466 -0
  601. ccbt-0.0.1/docs/ja/index.md +410 -0
  602. ccbt-0.0.1/docs/ja/performance.md +458 -0
  603. ccbt-0.0.1/docs/ko/configuration.md +742 -0
  604. ccbt-0.0.1/docs/ko/examples.md +348 -0
  605. ccbt-0.0.1/docs/ko/getting-started.md +466 -0
  606. ccbt-0.0.1/docs/ko/index.md +408 -0
  607. ccbt-0.0.1/docs/overrides/README.md +80 -0
  608. ccbt-0.0.1/docs/overrides/README_RTD.md +91 -0
  609. ccbt-0.0.1/docs/overrides/SETUP.md +111 -0
  610. ccbt-0.0.1/docs/overrides/partials/languages/README.md +95 -0
  611. ccbt-0.0.1/docs/overrides/partials/languages/arc.html +84 -0
  612. ccbt-0.0.1/docs/overrides/partials/languages/ha.html +83 -0
  613. ccbt-0.0.1/docs/overrides/partials/languages/sw.html +83 -0
  614. ccbt-0.0.1/docs/overrides/partials/languages/yo.html +83 -0
  615. ccbt-0.0.1/docs/reports/benchmarks/runs/disk_io-20251231-154516-d64e2d8.json +37 -0
  616. ccbt-0.0.1/docs/reports/benchmarks/runs/disk_io-20251231-154538-d64e2d8.json +37 -0
  617. ccbt-0.0.1/docs/reports/benchmarks/runs/disk_io-20251231-155230-93adac3.json +45 -0
  618. ccbt-0.0.1/docs/reports/benchmarks/runs/disk_io-20260102-050947-ea3cad3.json +45 -0
  619. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251209-135213-862dc93.json +571 -0
  620. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003521-d64e2d8.json +243 -0
  621. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003540-d64e2d8.json +243 -0
  622. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003543-d64e2d8.json +243 -0
  623. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003545-d64e2d8.json +243 -0
  624. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003546-d64e2d8.json +243 -0
  625. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003548-d64e2d8.json +243 -0
  626. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-003550-d64e2d8.json +243 -0
  627. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020522-d64e2d8.json +243 -0
  628. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020537-d64e2d8.json +243 -0
  629. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020543-d64e2d8.json +243 -0
  630. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020544-d64e2d8.json +243 -0
  631. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020545-d64e2d8.json +243 -0
  632. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-020549-d64e2d8.json +243 -0
  633. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-132706-d64e2d8.json +243 -0
  634. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-132722-d64e2d8.json +243 -0
  635. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-132729-d64e2d8.json +243 -0
  636. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-132730-d64e2d8.json +243 -0
  637. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-132733-d64e2d8.json +243 -0
  638. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154531-d64e2d8.json +243 -0
  639. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154548-d64e2d8.json +243 -0
  640. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154555-d64e2d8.json +243 -0
  641. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154556-d64e2d8.json +243 -0
  642. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154557-d64e2d8.json +243 -0
  643. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154558-d64e2d8.json +243 -0
  644. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20251231-154603-d64e2d8.json +243 -0
  645. ccbt-0.0.1/docs/reports/benchmarks/runs/encryption-20260102-051353-ea3cad3.json +571 -0
  646. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251209-135218-862dc93.json +42 -0
  647. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003507-d64e2d8.json +42 -0
  648. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003533-d64e2d8.json +42 -0
  649. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003534-d64e2d8.json +42 -0
  650. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003550-d64e2d8.json +42 -0
  651. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003552-d64e2d8.json +42 -0
  652. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003553-d64e2d8.json +42 -0
  653. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003554-d64e2d8.json +42 -0
  654. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003555-d64e2d8.json +42 -0
  655. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-003557-d64e2d8.json +42 -0
  656. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020508-d64e2d8.json +42 -0
  657. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020532-d64e2d8.json +42 -0
  658. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020533-d64e2d8.json +42 -0
  659. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020537-d64e2d8.json +42 -0
  660. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020538-d64e2d8.json +42 -0
  661. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020545-d64e2d8.json +42 -0
  662. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020550-d64e2d8.json +42 -0
  663. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020551-d64e2d8.json +42 -0
  664. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020552-d64e2d8.json +42 -0
  665. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020553-d64e2d8.json +42 -0
  666. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-020556-d64e2d8.json +42 -0
  667. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132651-d64e2d8.json +42 -0
  668. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132717-d64e2d8.json +42 -0
  669. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132723-d64e2d8.json +42 -0
  670. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132731-d64e2d8.json +42 -0
  671. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132737-d64e2d8.json +42 -0
  672. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132738-d64e2d8.json +42 -0
  673. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132739-d64e2d8.json +42 -0
  674. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-132741-d64e2d8.json +42 -0
  675. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154512-d64e2d8.json +42 -0
  676. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154542-d64e2d8.json +42 -0
  677. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154543-d64e2d8.json +42 -0
  678. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154550-d64e2d8.json +42 -0
  679. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154557-d64e2d8.json +42 -0
  680. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154604-d64e2d8.json +42 -0
  681. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154605-d64e2d8.json +42 -0
  682. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154606-d64e2d8.json +42 -0
  683. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154607-d64e2d8.json +42 -0
  684. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-154609-d64e2d8.json +42 -0
  685. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-155619-32b1ca9.json +42 -0
  686. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20251231-161112-ec4b349.json +42 -0
  687. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20260101-212622-a180ff3.json +42 -0
  688. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20260101-213324-43a2215.json +42 -0
  689. ccbt-0.0.1/docs/reports/benchmarks/runs/hash_verify-20260102-051358-ea3cad3.json +42 -0
  690. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251209-135230-862dc93.json +53 -0
  691. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003513-d64e2d8.json +29 -0
  692. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003536-d64e2d8.json +29 -0
  693. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003537-d64e2d8.json +29 -0
  694. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003552-d64e2d8.json +29 -0
  695. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003553-d64e2d8.json +29 -0
  696. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003554-d64e2d8.json +29 -0
  697. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003555-d64e2d8.json +29 -0
  698. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003556-d64e2d8.json +29 -0
  699. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003557-d64e2d8.json +29 -0
  700. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-003559-d64e2d8.json +29 -0
  701. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020515-d64e2d8.json +29 -0
  702. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020534-d64e2d8.json +29 -0
  703. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020539-d64e2d8.json +29 -0
  704. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020540-d64e2d8.json +29 -0
  705. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020547-d64e2d8.json +29 -0
  706. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020552-d64e2d8.json +29 -0
  707. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020553-d64e2d8.json +29 -0
  708. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020554-d64e2d8.json +29 -0
  709. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-020558-d64e2d8.json +29 -0
  710. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132658-d64e2d8.json +29 -0
  711. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132719-d64e2d8.json +29 -0
  712. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132724-d64e2d8.json +29 -0
  713. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132732-d64e2d8.json +29 -0
  714. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132739-d64e2d8.json +29 -0
  715. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132740-d64e2d8.json +29 -0
  716. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-132743-d64e2d8.json +29 -0
  717. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154521-d64e2d8.json +29 -0
  718. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154544-d64e2d8.json +29 -0
  719. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154545-d64e2d8.json +29 -0
  720. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154552-d64e2d8.json +29 -0
  721. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154559-d64e2d8.json +29 -0
  722. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154606-d64e2d8.json +29 -0
  723. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154607-d64e2d8.json +29 -0
  724. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154608-d64e2d8.json +29 -0
  725. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154609-d64e2d8.json +29 -0
  726. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-154611-d64e2d8.json +29 -0
  727. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-155632-32b1ca9.json +53 -0
  728. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20251231-161125-ec4b349.json +53 -0
  729. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20260101-212634-a180ff3.json +53 -0
  730. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20260101-213336-43a2215.json +53 -0
  731. ccbt-0.0.1/docs/reports/benchmarks/runs/loopback_throughput-20260102-051411-ea3cad3.json +53 -0
  732. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003511-d64e2d8.json +28 -0
  733. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003543-d64e2d8.json +28 -0
  734. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003544-d64e2d8.json +28 -0
  735. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003556-d64e2d8.json +28 -0
  736. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003557-d64e2d8.json +28 -0
  737. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003558-d64e2d8.json +28 -0
  738. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003559-d64e2d8.json +28 -0
  739. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-003601-d64e2d8.json +28 -0
  740. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020513-d64e2d8.json +28 -0
  741. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020538-d64e2d8.json +28 -0
  742. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020542-d64e2d8.json +28 -0
  743. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020543-d64e2d8.json +28 -0
  744. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020550-d64e2d8.json +28 -0
  745. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020555-d64e2d8.json +28 -0
  746. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020556-d64e2d8.json +28 -0
  747. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020557-d64e2d8.json +28 -0
  748. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-020600-d64e2d8.json +28 -0
  749. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132656-d64e2d8.json +28 -0
  750. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132723-d64e2d8.json +28 -0
  751. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132728-d64e2d8.json +28 -0
  752. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132736-d64e2d8.json +28 -0
  753. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132742-d64e2d8.json +28 -0
  754. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132743-d64e2d8.json +28 -0
  755. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132744-d64e2d8.json +28 -0
  756. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-132745-d64e2d8.json +28 -0
  757. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154519-d64e2d8.json +28 -0
  758. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154548-d64e2d8.json +28 -0
  759. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154549-d64e2d8.json +28 -0
  760. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154555-d64e2d8.json +28 -0
  761. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154556-d64e2d8.json +28 -0
  762. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154602-d64e2d8.json +28 -0
  763. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154609-d64e2d8.json +28 -0
  764. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154610-d64e2d8.json +28 -0
  765. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154611-d64e2d8.json +28 -0
  766. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-154613-d64e2d8.json +28 -0
  767. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-155634-32b1ca9.json +35 -0
  768. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20251231-161127-ec4b349.json +35 -0
  769. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20260101-212636-a180ff3.json +35 -0
  770. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20260101-213338-43a2215.json +35 -0
  771. ccbt-0.0.1/docs/reports/benchmarks/runs/piece_assembly-20260102-051413-ea3cad3.json +35 -0
  772. ccbt-0.0.1/docs/reports/benchmarks/timeseries/disk_io_timeseries.json +88 -0
  773. ccbt-0.0.1/docs/reports/benchmarks/timeseries/encryption_timeseries.json +1140 -0
  774. ccbt-0.0.1/docs/reports/benchmarks/timeseries/hash_verify_timeseries.json +43 -0
  775. ccbt-0.0.1/docs/reports/benchmarks/timeseries/loopback_throughput_timeseries.json +54 -0
  776. ccbt-0.0.1/docs/reports/benchmarks/timeseries/piece_assembly_timeseries.json +36 -0
  777. ccbt-0.0.1/docs/sw/configuration.md +738 -0
  778. ccbt-0.0.1/docs/sw/examples.md +344 -0
  779. ccbt-0.0.1/docs/sw/getting-started.md +462 -0
  780. ccbt-0.0.1/docs/sw/glossary.md +145 -0
  781. ccbt-0.0.1/docs/sw/index.md +392 -0
  782. ccbt-0.0.1/docs/sw/localization-status.md +117 -0
  783. ccbt-0.0.1/docs/th/configuration.md +742 -0
  784. ccbt-0.0.1/docs/th/examples.md +348 -0
  785. ccbt-0.0.1/docs/th/getting-started.md +466 -0
  786. ccbt-0.0.1/docs/th/index.md +408 -0
  787. ccbt-0.0.1/docs/ur/configuration.md +742 -0
  788. ccbt-0.0.1/docs/ur/examples.md +348 -0
  789. ccbt-0.0.1/docs/ur/getting-started.md +466 -0
  790. ccbt-0.0.1/docs/ur/index.md +408 -0
  791. ccbt-0.0.1/docs/yo/configuration.md +738 -0
  792. ccbt-0.0.1/docs/yo/examples.md +344 -0
  793. ccbt-0.0.1/docs/yo/getting-started.md +462 -0
  794. ccbt-0.0.1/docs/yo/glossary.md +147 -0
  795. ccbt-0.0.1/docs/yo/index.md +392 -0
  796. ccbt-0.0.1/docs/yo/localization-status.md +117 -0
  797. ccbt-0.0.1/docs/zh/API.md +314 -0
  798. ccbt-0.0.1/docs/zh/CI_CD.md +226 -0
  799. ccbt-0.0.1/docs/zh/architecture.md +575 -0
  800. ccbt-0.0.1/docs/zh/bep52.md +564 -0
  801. ccbt-0.0.1/docs/zh/bep_xet.md +605 -0
  802. ccbt-0.0.1/docs/zh/bitonic.md +2003 -0
  803. ccbt-0.0.1/docs/zh/btbt-cli.md +652 -0
  804. ccbt-0.0.1/docs/zh/configuration.md +742 -0
  805. ccbt-0.0.1/docs/zh/contributing.md +273 -0
  806. ccbt-0.0.1/docs/zh/examples.md +348 -0
  807. ccbt-0.0.1/docs/zh/getting-started.md +466 -0
  808. ccbt-0.0.1/docs/zh/index.md +408 -0
  809. ccbt-0.0.1/docs/zh/performance.md +458 -0
  810. ccbt-0.0.1/env.example +410 -0
  811. ccbt-0.0.1/pyproject.toml +319 -0
  812. ccbt-0.0.1/tests/__init__.py +1 -0
  813. ccbt-0.0.1/tests/chaos/__init__.py +5 -0
  814. ccbt-0.0.1/tests/compatibility/README.md +45 -0
  815. ccbt-0.0.1/tests/compatibility/__init__.py +17 -0
  816. ccbt-0.0.1/tests/compatibility/trackers/README.md +35 -0
  817. ccbt-0.0.1/tests/compatibility/trackers/__init__.py +10 -0
  818. ccbt-0.0.1/tests/conftest.py +1419 -0
  819. ccbt-0.0.1/tests/daemon/__init__.py +2 -0
  820. ccbt-0.0.1/tests/daemon/test_ipc_auth.py +179 -0
  821. ccbt-0.0.1/tests/daemon/test_ipc_authentication.py +210 -0
  822. ccbt-0.0.1/tests/daemon/test_ipc_ed25519_auth.py +96 -0
  823. ccbt-0.0.1/tests/daemon/test_websocket.py +160 -0
  824. ccbt-0.0.1/tests/data/test.torrent +1 -0
  825. ccbt-0.0.1/tests/data/test.txt +1 -0
  826. ccbt-0.0.1/tests/extensions/__init__.py +10 -0
  827. ccbt-0.0.1/tests/extensions/test_compact_peer_lists.py +355 -0
  828. ccbt-0.0.1/tests/extensions/test_dht_extension_comprehensive.py +621 -0
  829. ccbt-0.0.1/tests/extensions/test_dht_integration.py +341 -0
  830. ccbt-0.0.1/tests/extensions/test_extension_manager_integration.py +346 -0
  831. ccbt-0.0.1/tests/extensions/test_fast_extension.py +280 -0
  832. ccbt-0.0.1/tests/integration/__init__.py +5 -0
  833. ccbt-0.0.1/tests/integration/cli/test_cli_commands_integration.py +311 -0
  834. ccbt-0.0.1/tests/integration/daemon/test_ipc_tracker_statistics.py +384 -0
  835. ccbt-0.0.1/tests/integration/i18n/test_cli_translations.py +45 -0
  836. ccbt-0.0.1/tests/integration/monitoring/test_alert_manager_comprehensive.py +1949 -0
  837. ccbt-0.0.1/tests/integration/monitoring/test_dashboard.py +117 -0
  838. ccbt-0.0.1/tests/integration/monitoring/test_dashboard_comprehensive.py +812 -0
  839. ccbt-0.0.1/tests/integration/monitoring/test_dashboard_expanded.py +760 -0
  840. ccbt-0.0.1/tests/integration/monitoring/test_metrics_collector_comprehensive.py +803 -0
  841. ccbt-0.0.1/tests/integration/monitoring/test_metrics_collector_expanded.py +443 -0
  842. ccbt-0.0.1/tests/integration/monitoring/test_monitoring_cli.py +44 -0
  843. ccbt-0.0.1/tests/integration/monitoring/test_tracing_expanded.py +738 -0
  844. ccbt-0.0.1/tests/integration/observability/test_profiler.py +635 -0
  845. ccbt-0.0.1/tests/integration/test_bep47_attributes.py +417 -0
  846. ccbt-0.0.1/tests/integration/test_bittorrent_v2_e2e.py +715 -0
  847. ccbt-0.0.1/tests/integration/test_bittorrent_v2_protocol.py +659 -0
  848. ccbt-0.0.1/tests/integration/test_connection_pool_integration.py +152 -0
  849. ccbt-0.0.1/tests/integration/test_dht_enhancements_integration.py +823 -0
  850. ccbt-0.0.1/tests/integration/test_disk_io_phase2_integration.py +408 -0
  851. ccbt-0.0.1/tests/integration/test_early_peer_acceptance.py +535 -0
  852. ccbt-0.0.1/tests/integration/test_ed25519_integration.py +102 -0
  853. ccbt-0.0.1/tests/integration/test_encryption_chacha20.py +190 -0
  854. ccbt-0.0.1/tests/integration/test_encryption_integration.py +461 -0
  855. ccbt-0.0.1/tests/integration/test_end_to_end_enhanced.py +122 -0
  856. ccbt-0.0.1/tests/integration/test_fast_resume_integration.py +480 -0
  857. ccbt-0.0.1/tests/integration/test_file_selection_e2e.py +1187 -0
  858. ccbt-0.0.1/tests/integration/test_ipc_server_config.py +396 -0
  859. ccbt-0.0.1/tests/integration/test_ipfs_protocol_integration.py +541 -0
  860. ccbt-0.0.1/tests/integration/test_magnet_bep53.py +387 -0
  861. ccbt-0.0.1/tests/integration/test_nat_integration.py +214 -0
  862. ccbt-0.0.1/tests/integration/test_network_optimizations_phase1.py +295 -0
  863. ccbt-0.0.1/tests/integration/test_per_torrent_config.py +478 -0
  864. ccbt-0.0.1/tests/integration/test_private_torrents.py +360 -0
  865. ccbt-0.0.1/tests/integration/test_prometheus_endpoint.py +262 -0
  866. ccbt-0.0.1/tests/integration/test_proxy_integration.py +332 -0
  867. ccbt-0.0.1/tests/integration/test_queue_management.py +750 -0
  868. ccbt-0.0.1/tests/integration/test_refactored_session_lifecycle.py +376 -0
  869. ccbt-0.0.1/tests/integration/test_resume.py +416 -0
  870. ccbt-0.0.1/tests/integration/test_resume_integration.py +286 -0
  871. ccbt-0.0.1/tests/integration/test_scrape_e2e.py +332 -0
  872. ccbt-0.0.1/tests/integration/test_scrape_integration.py +480 -0
  873. ccbt-0.0.1/tests/integration/test_session_manager_integration.py +181 -0
  874. ccbt-0.0.1/tests/integration/test_session_metrics.py +254 -0
  875. ccbt-0.0.1/tests/integration/test_session_metrics_edge_cases.py +179 -0
  876. ccbt-0.0.1/tests/integration/test_session_scrape.py +246 -0
  877. ccbt-0.0.1/tests/integration/test_ssl_extension.py +325 -0
  878. ccbt-0.0.1/tests/integration/test_status_scrape_integration.py +363 -0
  879. ccbt-0.0.1/tests/integration/test_storage_disk_io.py +116 -0
  880. ccbt-0.0.1/tests/integration/test_webtorrent_e2e.py +466 -0
  881. ccbt-0.0.1/tests/integration/test_xet_integration.py +990 -0
  882. ccbt-0.0.1/tests/integration/test_xet_sync_workflow.py +239 -0
  883. ccbt-0.0.1/tests/integration/transport/test_utp_compatibility.py +170 -0
  884. ccbt-0.0.1/tests/integration/transport/test_utp_full_handshake.py +324 -0
  885. ccbt-0.0.1/tests/integration/transport/test_utp_performance.py +194 -0
  886. ccbt-0.0.1/tests/performance/__init__.py +5 -0
  887. ccbt-0.0.1/tests/performance/bench_disk_io.py +266 -0
  888. ccbt-0.0.1/tests/performance/bench_encryption.py +1445 -0
  889. ccbt-0.0.1/tests/performance/bench_hash_verify.py +192 -0
  890. ccbt-0.0.1/tests/performance/bench_loopback_throughput.py +171 -0
  891. ccbt-0.0.1/tests/performance/bench_piece_assembly.py +165 -0
  892. ccbt-0.0.1/tests/performance/bench_utils.py +345 -0
  893. ccbt-0.0.1/tests/performance/test_benchmarks.py +567 -0
  894. ccbt-0.0.1/tests/performance/test_encryption_performance.py +363 -0
  895. ccbt-0.0.1/tests/performance/test_webrtc_performance.py +429 -0
  896. ccbt-0.0.1/tests/unit/checkpoint/__init__.py +1 -0
  897. ccbt-0.0.1/tests/unit/cli/__init__.py +1 -0
  898. ccbt-0.0.1/tests/unit/cli/test_advanced_commands.py +439 -0
  899. ccbt-0.0.1/tests/unit/cli/test_advanced_commands_expanded_coverage.py +339 -0
  900. ccbt-0.0.1/tests/unit/cli/test_advanced_commands_phase2_fixes.py +309 -0
  901. ccbt-0.0.1/tests/unit/cli/test_bep52_cli.py +506 -0
  902. ccbt-0.0.1/tests/unit/cli/test_checkpoints_phase2_fixes.py +264 -0
  903. ccbt-0.0.1/tests/unit/cli/test_config_utils.py +287 -0
  904. ccbt-0.0.1/tests/unit/cli/test_create_torrent.py +229 -0
  905. ccbt-0.0.1/tests/unit/cli/test_create_torrent_phase2_fixes.py +246 -0
  906. ccbt-0.0.1/tests/unit/cli/test_downloads.py +193 -0
  907. ccbt-0.0.1/tests/unit/cli/test_enhanced_options.py +58 -0
  908. ccbt-0.0.1/tests/unit/cli/test_entry_points.py +74 -0
  909. ccbt-0.0.1/tests/unit/cli/test_file_commands.py +286 -0
  910. ccbt-0.0.1/tests/unit/cli/test_file_commands_coverage.py +349 -0
  911. ccbt-0.0.1/tests/unit/cli/test_filter_commands.py +806 -0
  912. ccbt-0.0.1/tests/unit/cli/test_filter_commands_coverage.py +124 -0
  913. ccbt-0.0.1/tests/unit/cli/test_interactive.py +2641 -0
  914. ccbt-0.0.1/tests/unit/cli/test_interactive_basic.py +173 -0
  915. ccbt-0.0.1/tests/unit/cli/test_interactive_commands_comprehensive.py +1755 -0
  916. ccbt-0.0.1/tests/unit/cli/test_interactive_comprehensive.py +1334 -0
  917. ccbt-0.0.1/tests/unit/cli/test_interactive_corrected.py +205 -0
  918. ccbt-0.0.1/tests/unit/cli/test_interactive_coverage.py +205 -0
  919. ccbt-0.0.1/tests/unit/cli/test_interactive_download_file_selection.py +377 -0
  920. ccbt-0.0.1/tests/unit/cli/test_interactive_enhanced.py +77 -0
  921. ccbt-0.0.1/tests/unit/cli/test_interactive_expanded.py +868 -0
  922. ccbt-0.0.1/tests/unit/cli/test_interactive_expanded_coverage.py +419 -0
  923. ccbt-0.0.1/tests/unit/cli/test_interactive_file_selection.py +883 -0
  924. ccbt-0.0.1/tests/unit/cli/test_interactive_final_coverage.py +315 -0
  925. ccbt-0.0.1/tests/unit/cli/test_interactive_runloop.py +177 -0
  926. ccbt-0.0.1/tests/unit/cli/test_logging_enhancements.py +335 -0
  927. ccbt-0.0.1/tests/unit/cli/test_logging_regression.py +226 -0
  928. ccbt-0.0.1/tests/unit/cli/test_main.py +4398 -0
  929. ccbt-0.0.1/tests/unit/cli/test_main_checkpoints_resume.py +388 -0
  930. ccbt-0.0.1/tests/unit/cli/test_main_corrected.py +284 -0
  931. ccbt-0.0.1/tests/unit/cli/test_main_coverage_gaps.py +304 -0
  932. ccbt-0.0.1/tests/unit/cli/test_main_deep_paths.py +459 -0
  933. ccbt-0.0.1/tests/unit/cli/test_main_entry.py +515 -0
  934. ccbt-0.0.1/tests/unit/cli/test_main_error_paths.py +199 -0
  935. ccbt-0.0.1/tests/unit/cli/test_main_focus.py +314 -0
  936. ccbt-0.0.1/tests/unit/cli/test_main_magnet_coverage.py +35 -0
  937. ccbt-0.0.1/tests/unit/cli/test_main_more.py +157 -0
  938. ccbt-0.0.1/tests/unit/cli/test_main_more_topup.py +102 -0
  939. ccbt-0.0.1/tests/unit/cli/test_main_options_matrix.py +238 -0
  940. ccbt-0.0.1/tests/unit/cli/test_main_overrides.py +914 -0
  941. ccbt-0.0.1/tests/unit/cli/test_main_phase2_fixes.py +190 -0
  942. ccbt-0.0.1/tests/unit/cli/test_main_resume_save_verify.py +401 -0
  943. ccbt-0.0.1/tests/unit/cli/test_main_topup.py +337 -0
  944. ccbt-0.0.1/tests/unit/cli/test_monitoring_commands.py +734 -0
  945. ccbt-0.0.1/tests/unit/cli/test_nat_commands.py +736 -0
  946. ccbt-0.0.1/tests/unit/cli/test_progress.py +358 -0
  947. ccbt-0.0.1/tests/unit/cli/test_proxy_commands.py +325 -0
  948. ccbt-0.0.1/tests/unit/cli/test_proxy_commands_comprehensive.py +303 -0
  949. ccbt-0.0.1/tests/unit/cli/test_queue_commands.py +456 -0
  950. ccbt-0.0.1/tests/unit/cli/test_queue_commands_comprehensive.py +910 -0
  951. ccbt-0.0.1/tests/unit/cli/test_resume_commands.py +240 -0
  952. ccbt-0.0.1/tests/unit/cli/test_scrape_commands.py +459 -0
  953. ccbt-0.0.1/tests/unit/cli/test_simplification_regression.py +358 -0
  954. ccbt-0.0.1/tests/unit/cli/test_ssl_commands.py +1037 -0
  955. ccbt-0.0.1/tests/unit/cli/test_ssl_commands_coverage.py +131 -0
  956. ccbt-0.0.1/tests/unit/cli/test_status_scrape_display.py +437 -0
  957. ccbt-0.0.1/tests/unit/cli/test_torrent_config_commands_phase2_fixes.py +342 -0
  958. ccbt-0.0.1/tests/unit/cli/test_unused_code_regression.py +325 -0
  959. ccbt-0.0.1/tests/unit/cli/test_utp_commands.py +443 -0
  960. ccbt-0.0.1/tests/unit/cli/test_utp_config_integration.py +193 -0
  961. ccbt-0.0.1/tests/unit/cli/test_verbosity.py +255 -0
  962. ccbt-0.0.1/tests/unit/config/__init__.py +1 -0
  963. ccbt-0.0.1/tests/unit/config/test_proxy_config_encryption.py +245 -0
  964. ccbt-0.0.1/tests/unit/consensus/test_byzantine_consensus.py +137 -0
  965. ccbt-0.0.1/tests/unit/consensus/test_raft_consensus.py +185 -0
  966. ccbt-0.0.1/tests/unit/core/__init__.py +2 -0
  967. ccbt-0.0.1/tests/unit/core/test_basic_imports.py +162 -0
  968. ccbt-0.0.1/tests/unit/core/test_bencode.py +328 -0
  969. ccbt-0.0.1/tests/unit/core/test_bep47_models.py +159 -0
  970. ccbt-0.0.1/tests/unit/core/test_magnet.py +55 -0
  971. ccbt-0.0.1/tests/unit/core/test_magnet_bep53.py +673 -0
  972. ccbt-0.0.1/tests/unit/core/test_simple_functionality.py +314 -0
  973. ccbt-0.0.1/tests/unit/core/test_tonic_format.py +249 -0
  974. ccbt-0.0.1/tests/unit/core/test_torrent_attributes.py +565 -0
  975. ccbt-0.0.1/tests/unit/core/test_torrent_attributes_coverage.py +160 -0
  976. ccbt-0.0.1/tests/unit/core/test_torrent_attributes_integration.py +538 -0
  977. ccbt-0.0.1/tests/unit/core/test_torrent_coverage.py +63 -0
  978. ccbt-0.0.1/tests/unit/core/test_torrent_edge_cases.py +96 -0
  979. ccbt-0.0.1/tests/unit/core/test_torrent_v2.py +2615 -0
  980. ccbt-0.0.1/tests/unit/discovery/__init__.py +2 -0
  981. ccbt-0.0.1/tests/unit/discovery/test_dht_comprehensive.py +1112 -0
  982. ccbt-0.0.1/tests/unit/discovery/test_dht_readonly.py +133 -0
  983. ccbt-0.0.1/tests/unit/discovery/test_pex_comprehensive.py +395 -0
  984. ccbt-0.0.1/tests/unit/discovery/test_pex_refresh.py +239 -0
  985. ccbt-0.0.1/tests/unit/discovery/test_tracker_expanded.py +1147 -0
  986. ccbt-0.0.1/tests/unit/discovery/test_tracker_peer_source.py +125 -0
  987. ccbt-0.0.1/tests/unit/discovery/test_tracker_peer_source_direct.py +54 -0
  988. ccbt-0.0.1/tests/unit/discovery/test_tracker_phase1.py +265 -0
  989. ccbt-0.0.1/tests/unit/discovery/test_tracker_phase1_coverage.py +108 -0
  990. ccbt-0.0.1/tests/unit/discovery/test_tracker_proxy.py +218 -0
  991. ccbt-0.0.1/tests/unit/discovery/test_tracker_scrape_http.py +740 -0
  992. ccbt-0.0.1/tests/unit/discovery/test_tracker_scrape_udp.py +362 -0
  993. ccbt-0.0.1/tests/unit/discovery/test_tracker_session_statistics.py +322 -0
  994. ccbt-0.0.1/tests/unit/discovery/test_tracker_session_stats.py +90 -0
  995. ccbt-0.0.1/tests/unit/discovery/test_tracker_ssl.py +474 -0
  996. ccbt-0.0.1/tests/unit/discovery/test_tracker_ssl_parsing.py +75 -0
  997. ccbt-0.0.1/tests/unit/discovery/test_tracker_udp_routing.py +312 -0
  998. ccbt-0.0.1/tests/unit/discovery/test_xet_cas.py +432 -0
  999. ccbt-0.0.1/tests/unit/disk/__init__.py +2 -0
  1000. ccbt-0.0.1/tests/unit/executor/test_adapter_error_handling.py +248 -0
  1001. ccbt-0.0.1/tests/unit/executor/test_daemon_session_adapter_methods.py +964 -0
  1002. ccbt-0.0.1/tests/unit/executor/test_session_adapter_config.py +375 -0
  1003. ccbt-0.0.1/tests/unit/executor/test_torrent_executor_config.py +357 -0
  1004. ccbt-0.0.1/tests/unit/extensions/test_fast_coverage.py +67 -0
  1005. ccbt-0.0.1/tests/unit/extensions/test_ssl_capability_tracking.py +146 -0
  1006. ccbt-0.0.1/tests/unit/extensions/test_webseed_coverage.py +94 -0
  1007. ccbt-0.0.1/tests/unit/extensions/test_webseed_proxy.py +153 -0
  1008. ccbt-0.0.1/tests/unit/file/__init__.py +2 -0
  1009. ccbt-0.0.1/tests/unit/i18n/test_i18n.py +86 -0
  1010. ccbt-0.0.1/tests/unit/i18n/test_translations.py +45 -0
  1011. ccbt-0.0.1/tests/unit/interface/splash/test_animation_helpers.py +61 -0
  1012. ccbt-0.0.1/tests/unit/metadata/__init__.py +2 -0
  1013. ccbt-0.0.1/tests/unit/metadata/test_metadata_exchange.py +169 -0
  1014. ccbt-0.0.1/tests/unit/metadata/test_metadata_exchange_complete.py +361 -0
  1015. ccbt-0.0.1/tests/unit/metadata/test_metadata_exchange_expanded.py +498 -0
  1016. ccbt-0.0.1/tests/unit/metadata/test_metadata_exchange_smoke.py +24 -0
  1017. ccbt-0.0.1/tests/unit/metadata/test_parallel_metadata.py +341 -0
  1018. ccbt-0.0.1/tests/unit/ml/test_adaptive_limiter.py +561 -0
  1019. ccbt-0.0.1/tests/unit/ml/test_peer_selector.py +536 -0
  1020. ccbt-0.0.1/tests/unit/ml/test_piece_predictor.py +618 -0
  1021. ccbt-0.0.1/tests/unit/models/test_peer_info_ssl.py +70 -0
  1022. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_coverage.py +178 -0
  1023. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_http.py +189 -0
  1024. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_http_comprehensive.py +211 -0
  1025. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_http_coverage.py +151 -0
  1026. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_http_errors.py +200 -0
  1027. ccbt-0.0.1/tests/unit/monitoring/test_metrics_collector_http_final_coverage.py +172 -0
  1028. ccbt-0.0.1/tests/unit/monitoring/test_metrics_helpers.py +708 -0
  1029. ccbt-0.0.1/tests/unit/monitoring/test_metrics_helpers_edge_cases.py +223 -0
  1030. ccbt-0.0.1/tests/unit/nat/test_nat_manager.py +759 -0
  1031. ccbt-0.0.1/tests/unit/nat/test_natpmp.py +411 -0
  1032. ccbt-0.0.1/tests/unit/nat/test_port_mapping.py +240 -0
  1033. ccbt-0.0.1/tests/unit/nat/test_port_mapping_renewal.py +745 -0
  1034. ccbt-0.0.1/tests/unit/nat/test_upnp.py +558 -0
  1035. ccbt-0.0.1/tests/unit/network/__init__.py +2 -0
  1036. ccbt-0.0.1/tests/unit/network/test_connection_pool.py +240 -0
  1037. ccbt-0.0.1/tests/unit/network/test_connection_pool_100_coverage.py +216 -0
  1038. ccbt-0.0.1/tests/unit/network/test_connection_pool_boost.py +491 -0
  1039. ccbt-0.0.1/tests/unit/network/test_connection_pool_edge_cases.py +290 -0
  1040. ccbt-0.0.1/tests/unit/network/test_connection_pool_final_coverage.py +165 -0
  1041. ccbt-0.0.1/tests/unit/network/test_connection_pool_gaps.py +268 -0
  1042. ccbt-0.0.1/tests/unit/network/test_connection_pool_phase1.py +477 -0
  1043. ccbt-0.0.1/tests/unit/network/test_connection_pool_phase1_coverage.py +261 -0
  1044. ccbt-0.0.1/tests/unit/network/test_network_optimizer.py +554 -0
  1045. ccbt-0.0.1/tests/unit/network/test_network_optimizer_100_coverage.py +301 -0
  1046. ccbt-0.0.1/tests/unit/network/test_network_optimizer_comprehensive.py +507 -0
  1047. ccbt-0.0.1/tests/unit/network/test_network_optimizer_phase1.py +220 -0
  1048. ccbt-0.0.1/tests/unit/network/test_network_optimizer_remaining_coverage.py +123 -0
  1049. ccbt-0.0.1/tests/unit/network/test_network_optimizer_smoke.py +15 -0
  1050. ccbt-0.0.1/tests/unit/peer/__init__.py +2 -0
  1051. ccbt-0.0.1/tests/unit/peer/test_async_peer_connection.py +702 -0
  1052. ccbt-0.0.1/tests/unit/peer/test_async_peer_connection_coverage_gaps.py +1035 -0
  1053. ccbt-0.0.1/tests/unit/peer/test_async_peer_connection_error_handling.py +624 -0
  1054. ccbt-0.0.1/tests/unit/peer/test_async_peer_connection_expanded.py +830 -0
  1055. ccbt-0.0.1/tests/unit/peer/test_async_peer_connection_phase1_integration.py +168 -0
  1056. ccbt-0.0.1/tests/unit/peer/test_async_peer_pipelining_phase1.py +281 -0
  1057. ccbt-0.0.1/tests/unit/peer/test_async_peer_timeout_phase1.py +120 -0
  1058. ccbt-0.0.1/tests/unit/peer/test_connection_pool_creation.py +469 -0
  1059. ccbt-0.0.1/tests/unit/peer/test_peer.py +722 -0
  1060. ccbt-0.0.1/tests/unit/peer/test_peer_connection.py +1039 -0
  1061. ccbt-0.0.1/tests/unit/peer/test_peer_connection_cleanup.py +509 -0
  1062. ccbt-0.0.1/tests/unit/peer/test_peer_connection_coverage.py +842 -0
  1063. ccbt-0.0.1/tests/unit/peer/test_peer_connection_encryption.py +307 -0
  1064. ccbt-0.0.1/tests/unit/peer/test_peer_connection_error_handling.py +269 -0
  1065. ccbt-0.0.1/tests/unit/peer/test_peer_coverage_gaps.py +1106 -0
  1066. ccbt-0.0.1/tests/unit/peer/test_peer_expanded.py +582 -0
  1067. ccbt-0.0.1/tests/unit/peer/test_peer_source_validation.py +246 -0
  1068. ccbt-0.0.1/tests/unit/peer/test_ssl_extension_protocol.py +1160 -0
  1069. ccbt-0.0.1/tests/unit/peer/test_ssl_peer.py +635 -0
  1070. ccbt-0.0.1/tests/unit/peer/test_utp_peer_connection.py +503 -0
  1071. ccbt-0.0.1/tests/unit/peer/test_utp_peer_stream.py +170 -0
  1072. ccbt-0.0.1/tests/unit/peer/test_webrtc_peer.py +596 -0
  1073. ccbt-0.0.1/tests/unit/piece/__init__.py +2 -0
  1074. ccbt-0.0.1/tests/unit/piece/test_async_metadata_expanded.py +1093 -0
  1075. ccbt-0.0.1/tests/unit/piece/test_async_piece_manager.py +490 -0
  1076. ccbt-0.0.1/tests/unit/piece/test_async_piece_manager_comprehensive.py +939 -0
  1077. ccbt-0.0.1/tests/unit/piece/test_file_selection.py +637 -0
  1078. ccbt-0.0.1/tests/unit/piece/test_file_selection_integration.py +255 -0
  1079. ccbt-0.0.1/tests/unit/piece/test_hash_v2.py +408 -0
  1080. ccbt-0.0.1/tests/unit/piece/test_hash_v2_coverage.py +140 -0
  1081. ccbt-0.0.1/tests/unit/piece/test_piece_manager.py +456 -0
  1082. ccbt-0.0.1/tests/unit/piece/test_piece_manager_comprehensive.py +360 -0
  1083. ccbt-0.0.1/tests/unit/piece/test_rarest_first.py +327 -0
  1084. ccbt-0.0.1/tests/unit/piece/test_sequential.py +423 -0
  1085. ccbt-0.0.1/tests/unit/plugins/test_metrics_plugin.py +233 -0
  1086. ccbt-0.0.1/tests/unit/plugins/test_plugin_base_comprehensive.py +687 -0
  1087. ccbt-0.0.1/tests/unit/plugins/test_plugin_manager_singleton.py +84 -0
  1088. ccbt-0.0.1/tests/unit/property/__init__.py +5 -0
  1089. ccbt-0.0.1/tests/unit/property/test_bencode_properties.py +313 -0
  1090. ccbt-0.0.1/tests/unit/property/test_piece_selection_properties.py +323 -0
  1091. ccbt-0.0.1/tests/unit/protocols/__init__.py +8 -0
  1092. ccbt-0.0.1/tests/unit/protocols/test_bittorrent_disconnect.py +320 -0
  1093. ccbt-0.0.1/tests/unit/protocols/test_bittorrent_integration.py +486 -0
  1094. ccbt-0.0.1/tests/unit/protocols/test_bittorrent_scrape.py +349 -0
  1095. ccbt-0.0.1/tests/unit/protocols/test_bittorrent_v2.py +1319 -0
  1096. ccbt-0.0.1/tests/unit/protocols/test_bittorrent_v2_upgrade.py +542 -0
  1097. ccbt-0.0.1/tests/unit/protocols/test_hybrid_protocol.py +419 -0
  1098. ccbt-0.0.1/tests/unit/protocols/test_ipfs_connection.py +237 -0
  1099. ccbt-0.0.1/tests/unit/protocols/test_ipfs_content_discovery.py +220 -0
  1100. ccbt-0.0.1/tests/unit/protocols/test_ipfs_content_operations.py +260 -0
  1101. ccbt-0.0.1/tests/unit/protocols/test_ipfs_content_retrieval.py +269 -0
  1102. ccbt-0.0.1/tests/unit/protocols/test_ipfs_message_receiving.py +210 -0
  1103. ccbt-0.0.1/tests/unit/protocols/test_ipfs_message_sending.py +241 -0
  1104. ccbt-0.0.1/tests/unit/protocols/test_ipfs_protocol_comprehensive.py +824 -0
  1105. ccbt-0.0.1/tests/unit/protocols/test_ipfs_torrent_conversion.py +229 -0
  1106. ccbt-0.0.1/tests/unit/protocols/test_protocol_base.py +382 -0
  1107. ccbt-0.0.1/tests/unit/protocols/test_protocol_base_comprehensive.py +760 -0
  1108. ccbt-0.0.1/tests/unit/protocols/test_protocols_init.py +57 -0
  1109. ccbt-0.0.1/tests/unit/protocols/test_webrtc_manager.py +527 -0
  1110. ccbt-0.0.1/tests/unit/protocols/test_webrtc_manager_complete.py +332 -0
  1111. ccbt-0.0.1/tests/unit/protocols/test_webrtc_manager_coverage.py +167 -0
  1112. ccbt-0.0.1/tests/unit/protocols/test_webtorrent_protocol.py +586 -0
  1113. ccbt-0.0.1/tests/unit/protocols/test_webtorrent_signaling.py +442 -0
  1114. ccbt-0.0.1/tests/unit/protocols/test_xet_protocol.py +795 -0
  1115. ccbt-0.0.1/tests/unit/proxy/__init__.py +2 -0
  1116. ccbt-0.0.1/tests/unit/proxy/conftest.py +75 -0
  1117. ccbt-0.0.1/tests/unit/proxy/test_auth_comprehensive.py +292 -0
  1118. ccbt-0.0.1/tests/unit/proxy/test_auth_coverage_additional.py +203 -0
  1119. ccbt-0.0.1/tests/unit/proxy/test_client_comprehensive.py +351 -0
  1120. ccbt-0.0.1/tests/unit/proxy/test_client_coverage_additional.py +259 -0
  1121. ccbt-0.0.1/tests/unit/proxy/test_proxy_auth.py +390 -0
  1122. ccbt-0.0.1/tests/unit/proxy/test_proxy_auth_coverage.py +228 -0
  1123. ccbt-0.0.1/tests/unit/proxy/test_proxy_bypass.py +151 -0
  1124. ccbt-0.0.1/tests/unit/proxy/test_proxy_client.py +850 -0
  1125. ccbt-0.0.1/tests/unit/proxy/test_proxy_client_coverage.py +288 -0
  1126. ccbt-0.0.1/tests/unit/queue_mgmt/__init__.py +2 -0
  1127. ccbt-0.0.1/tests/unit/queue_mgmt/test_bandwidth.py +469 -0
  1128. ccbt-0.0.1/tests/unit/queue_mgmt/test_queue_manager.py +945 -0
  1129. ccbt-0.0.1/tests/unit/resilience/__init__.py +2 -0
  1130. ccbt-0.0.1/tests/unit/resilience/test_peer_circuit_breaker.py +205 -0
  1131. ccbt-0.0.1/tests/unit/resilience/test_resilience.py +353 -0
  1132. ccbt-0.0.1/tests/unit/resilience/test_resilience_additional_coverage.py +213 -0
  1133. ccbt-0.0.1/tests/unit/resilience/test_resilience_comprehensive.py +557 -0
  1134. ccbt-0.0.1/tests/unit/resilience/test_resilience_edge_cases_final.py +364 -0
  1135. ccbt-0.0.1/tests/unit/resilience/test_resilience_timeout.py +191 -0
  1136. ccbt-0.0.1/tests/unit/security/__init__.py +9 -0
  1137. ccbt-0.0.1/tests/unit/security/test_anomaly_detector.py +932 -0
  1138. ccbt-0.0.1/tests/unit/security/test_blacklist_persistence.py +247 -0
  1139. ccbt-0.0.1/tests/unit/security/test_blacklist_updater.py +239 -0
  1140. ccbt-0.0.1/tests/unit/security/test_ciphers.py +268 -0
  1141. ccbt-0.0.1/tests/unit/security/test_ciphers_chacha20.py +219 -0
  1142. ccbt-0.0.1/tests/unit/security/test_dh_exchange.py +315 -0
  1143. ccbt-0.0.1/tests/unit/security/test_encrypted_stream.py +404 -0
  1144. ccbt-0.0.1/tests/unit/security/test_encryption.py +735 -0
  1145. ccbt-0.0.1/tests/unit/security/test_encryption_coverage.py +521 -0
  1146. ccbt-0.0.1/tests/unit/security/test_encryption_coverage_gaps.py +380 -0
  1147. ccbt-0.0.1/tests/unit/security/test_encryption_init_coverage.py +32 -0
  1148. ccbt-0.0.1/tests/unit/security/test_ip_filter_coverage.py +264 -0
  1149. ccbt-0.0.1/tests/unit/security/test_ip_filter_coverage_final.py +179 -0
  1150. ccbt-0.0.1/tests/unit/security/test_ip_filter_coverage_gaps.py +113 -0
  1151. ccbt-0.0.1/tests/unit/security/test_ip_filter_integration.py +164 -0
  1152. ccbt-0.0.1/tests/unit/security/test_ip_filter_loading.py +171 -0
  1153. ccbt-0.0.1/tests/unit/security/test_ip_filter_matching.py +119 -0
  1154. ccbt-0.0.1/tests/unit/security/test_ip_filter_parsing.py +97 -0
  1155. ccbt-0.0.1/tests/unit/security/test_ip_filter_rules.py +145 -0
  1156. ccbt-0.0.1/tests/unit/security/test_key_manager.py +120 -0
  1157. ccbt-0.0.1/tests/unit/security/test_mse_handshake.py +1270 -0
  1158. ccbt-0.0.1/tests/unit/security/test_mse_handshake_coverage.py +770 -0
  1159. ccbt-0.0.1/tests/unit/security/test_mse_handshake_pe.py +212 -0
  1160. ccbt-0.0.1/tests/unit/security/test_peer_validator.py +557 -0
  1161. ccbt-0.0.1/tests/unit/security/test_peer_validator_coverage.py +119 -0
  1162. ccbt-0.0.1/tests/unit/security/test_rate_limiter.py +1205 -0
  1163. ccbt-0.0.1/tests/unit/security/test_rate_limiter_coverage_gaps.py +401 -0
  1164. ccbt-0.0.1/tests/unit/security/test_security_manager.py +321 -0
  1165. ccbt-0.0.1/tests/unit/security/test_security_manager_additional_coverage.py +80 -0
  1166. ccbt-0.0.1/tests/unit/security/test_security_manager_coverage.py +32 -0
  1167. ccbt-0.0.1/tests/unit/security/test_ssl_context.py +870 -0
  1168. ccbt-0.0.1/tests/unit/security/test_xet_allowlist.py +188 -0
  1169. ccbt-0.0.1/tests/unit/services/conftest.py +43 -0
  1170. ccbt-0.0.1/tests/unit/services/test_base_comprehensive.py +574 -0
  1171. ccbt-0.0.1/tests/unit/services/test_peer_service_comprehensive.py +789 -0
  1172. ccbt-0.0.1/tests/unit/services/test_storage_service.py +1130 -0
  1173. ccbt-0.0.1/tests/unit/services/test_storage_service_coverage.py +158 -0
  1174. ccbt-0.0.1/tests/unit/services/test_storage_service_write_implementation.py +454 -0
  1175. ccbt-0.0.1/tests/unit/services/test_tracker_service.py +909 -0
  1176. ccbt-0.0.1/tests/unit/services/test_tracker_service_coverage.py +88 -0
  1177. ccbt-0.0.1/tests/unit/session/__init__.py +2 -0
  1178. ccbt-0.0.1/tests/unit/session/test_announce_controller.py +67 -0
  1179. ccbt-0.0.1/tests/unit/session/test_async_main_coverage.py +156 -0
  1180. ccbt-0.0.1/tests/unit/session/test_async_main_metrics.py +339 -0
  1181. ccbt-0.0.1/tests/unit/session/test_async_main_metrics_coverage.py +178 -0
  1182. ccbt-0.0.1/tests/unit/session/test_async_main_missing_coverage.py +60 -0
  1183. ccbt-0.0.1/tests/unit/session/test_async_tracker_client.py +198 -0
  1184. ccbt-0.0.1/tests/unit/session/test_checkpoint_controller.py +65 -0
  1185. ccbt-0.0.1/tests/unit/session/test_checkpoint_persistence.py +337 -0
  1186. ccbt-0.0.1/tests/unit/session/test_fast_resume.py +867 -0
  1187. ccbt-0.0.1/tests/unit/session/test_lifecycle_controller.py +169 -0
  1188. ccbt-0.0.1/tests/unit/session/test_magnet_download_continuation.py +461 -0
  1189. ccbt-0.0.1/tests/unit/session/test_magnet_handler.py +146 -0
  1190. ccbt-0.0.1/tests/unit/session/test_manager_background_tasks.py +322 -0
  1191. ccbt-0.0.1/tests/unit/session/test_manager_startup.py +82 -0
  1192. ccbt-0.0.1/tests/unit/session/test_peer_events_binder.py +211 -0
  1193. ccbt-0.0.1/tests/unit/session/test_peer_initializer.py +59 -0
  1194. ccbt-0.0.1/tests/unit/session/test_pex_refresh.py +99 -0
  1195. ccbt-0.0.1/tests/unit/session/test_scrape_features.py +1109 -0
  1196. ccbt-0.0.1/tests/unit/session/test_scrape_manager.py +182 -0
  1197. ccbt-0.0.1/tests/unit/session/test_session_admin_ops_extended.py +318 -0
  1198. ccbt-0.0.1/tests/unit/session/test_session_background_loops.py +207 -0
  1199. ccbt-0.0.1/tests/unit/session/test_session_checkpoint_ops.py +178 -0
  1200. ccbt-0.0.1/tests/unit/session/test_session_checkpoint_utilities.py +485 -0
  1201. ccbt-0.0.1/tests/unit/session/test_session_coverage_boost.py +679 -0
  1202. ccbt-0.0.1/tests/unit/session/test_session_edge_cases.py +398 -0
  1203. ccbt-0.0.1/tests/unit/session/test_session_error_paths_coverage.py +979 -0
  1204. ccbt-0.0.1/tests/unit/session/test_session_event_handlers.py +256 -0
  1205. ccbt-0.0.1/tests/unit/session/test_session_import_export.py +101 -0
  1206. ccbt-0.0.1/tests/unit/session/test_session_init.py +73 -0
  1207. ccbt-0.0.1/tests/unit/session/test_session_lifecycle.py +852 -0
  1208. ccbt-0.0.1/tests/unit/session/test_session_manager_coverage.py +377 -0
  1209. ccbt-0.0.1/tests/unit/session/test_session_manager_metrics_and_admin.py +88 -0
  1210. ccbt-0.0.1/tests/unit/session/test_session_missing_coverage.py +336 -0
  1211. ccbt-0.0.1/tests/unit/session/test_session_normalize_coverage.py +114 -0
  1212. ccbt-0.0.1/tests/unit/session/test_session_rehash_and_ops.py +155 -0
  1213. ccbt-0.0.1/tests/unit/session/test_session_remaining_coverage.py +292 -0
  1214. ccbt-0.0.1/tests/unit/session/test_session_resume_checkpoint.py +319 -0
  1215. ccbt-0.0.1/tests/unit/session/test_session_status_and_utils.py +260 -0
  1216. ccbt-0.0.1/tests/unit/session/test_session_sync_methods.py +121 -0
  1217. ccbt-0.0.1/tests/unit/session/test_session_validate_checkpoint.py +291 -0
  1218. ccbt-0.0.1/tests/unit/session/test_status_aggregator.py +123 -0
  1219. ccbt-0.0.1/tests/unit/session/test_task_supervisor.py +24 -0
  1220. ccbt-0.0.1/tests/unit/session/test_torrent_addition_handler.py +90 -0
  1221. ccbt-0.0.1/tests/unit/session/test_tracker_announce.py +267 -0
  1222. ccbt-0.0.1/tests/unit/storage/test_xet_chunking.py +322 -0
  1223. ccbt-0.0.1/tests/unit/storage/test_xet_data_aggregator.py +262 -0
  1224. ccbt-0.0.1/tests/unit/storage/test_xet_deduplication.py +1156 -0
  1225. ccbt-0.0.1/tests/unit/storage/test_xet_defrag_prevention.py +212 -0
  1226. ccbt-0.0.1/tests/unit/storage/test_xet_file_deduplication.py +289 -0
  1227. ccbt-0.0.1/tests/unit/storage/test_xet_hashing.py +288 -0
  1228. ccbt-0.0.1/tests/unit/storage/test_xet_shard.py +518 -0
  1229. ccbt-0.0.1/tests/unit/storage/test_xet_xorb.py +492 -0
  1230. ccbt-0.0.1/tests/unit/test_package_init.py +191 -0
  1231. ccbt-0.0.1/tests/unit/test_utils_bitfield.py +20 -0
  1232. ccbt-0.0.1/tests/unit/test_utils_di.py +21 -0
  1233. ccbt-0.0.1/tests/unit/tracker/__init__.py +2 -0
  1234. ccbt-0.0.1/tests/unit/tracker/test_tracker.py +320 -0
  1235. ccbt-0.0.1/tests/unit/tracker/test_tracker_server_http.py +16 -0
  1236. ccbt-0.0.1/tests/unit/tracker/test_tracker_server_http_comprehensive.py +332 -0
  1237. ccbt-0.0.1/tests/unit/tracker/test_tracker_server_udp.py +266 -0
  1238. ccbt-0.0.1/tests/unit/tracker/test_tracker_udp_client.py +729 -0
  1239. ccbt-0.0.1/tests/unit/tracker/test_tracker_udp_client_comprehensive.py +1004 -0
  1240. ccbt-0.0.1/tests/unit/transport/__init__.py +2 -0
  1241. ccbt-0.0.1/tests/unit/transport/test_utp.py +1881 -0
  1242. ccbt-0.0.1/tests/unit/transport/test_utp_100_coverage.py +882 -0
  1243. ccbt-0.0.1/tests/unit/transport/test_utp_additional.py +540 -0
  1244. ccbt-0.0.1/tests/unit/transport/test_utp_additional_coverage.py +1006 -0
  1245. ccbt-0.0.1/tests/unit/transport/test_utp_comprehensive.py +556 -0
  1246. ccbt-0.0.1/tests/unit/transport/test_utp_congestion_control.py +287 -0
  1247. ccbt-0.0.1/tests/unit/transport/test_utp_connection_id_collision.py +155 -0
  1248. ccbt-0.0.1/tests/unit/transport/test_utp_delayed_ack.py +250 -0
  1249. ccbt-0.0.1/tests/unit/transport/test_utp_ecn.py +254 -0
  1250. ccbt-0.0.1/tests/unit/transport/test_utp_edge_cases.py +237 -0
  1251. ccbt-0.0.1/tests/unit/transport/test_utp_extensions.py +301 -0
  1252. ccbt-0.0.1/tests/unit/transport/test_utp_final_coverage.py +1220 -0
  1253. ccbt-0.0.1/tests/unit/transport/test_utp_packet.py +213 -0
  1254. ccbt-0.0.1/tests/unit/transport/test_utp_passive_connections.py +251 -0
  1255. ccbt-0.0.1/tests/unit/transport/test_utp_retransmission.py +287 -0
  1256. ccbt-0.0.1/tests/unit/transport/test_utp_sack.py +348 -0
  1257. ccbt-0.0.1/tests/unit/transport/test_utp_window_scaling.py +133 -0
  1258. ccbt-0.0.1/tests/unit/utils/test_events_comprehensive.py +889 -0
  1259. ccbt-0.0.1/tests/unit/utils/test_exceptions_comprehensive.py +220 -0
  1260. ccbt-0.0.1/tests/unit/utils/test_logging_config_comprehensive.py +755 -0
  1261. ccbt-0.0.1/tests/unit/utils/test_metrics_comprehensive.py +768 -0
  1262. ccbt-0.0.1/tests/utils/__init__.py +3 -0
  1263. ccbt-0.0.1/tests/utils/asyncio_tools.py +27 -0
  1264. ccbt-0.0.1/uv +0 -0
  1265. ccbt-0.0.1/uv.lock +7848 -0
ccbt-0.0.1/.env copy ADDED
@@ -0,0 +1,469 @@
1
+ # ccBitTorrent Environment Variables Configuration
2
+ # Copy this file to .env and modify values as needed
3
+ # All variables are prefixed with CCBT_ to avoid conflicts
4
+
5
+ # =============================================================================
6
+ # NETWORK CONFIGURATION
7
+ # =============================================================================
8
+
9
+ # Connection limits
10
+ CCBT_MAX_PEERS=200 # Maximum global peers (1-10000)
11
+ CCBT_MAX_PEERS_PER_TORRENT=50 # Maximum peers per torrent (1-1000)
12
+ CCBT_MAX_CONNECTIONS_PER_PEER=1 # Max parallel connections per peer (1-8)
13
+
14
+ # Request pipeline settings
15
+ CCBT_PIPELINE_DEPTH=16 # Request pipeline depth (1-128)
16
+ CCBT_BLOCK_SIZE_KIB=16 # Block size in KiB (1-64)
17
+ CCBT_MIN_BLOCK_SIZE_KIB=4 # Minimum block size in KiB (1-64)
18
+ CCBT_MAX_BLOCK_SIZE_KIB=64 # Maximum block size in KiB (1-1024)
19
+
20
+ # Socket tuning
21
+ CCBT_SOCKET_RCVBUF_KIB=256 # Socket receive buffer size in KiB (1-65536)
22
+ CCBT_SOCKET_SNDBUF_KIB=256 # Socket send buffer size in KiB (1-65536)
23
+ CCBT_TCP_NODELAY=true # Enable TCP_NODELAY (true/false)
24
+
25
+ # Timeouts (seconds)
26
+ CCBT_CONNECTION_TIMEOUT=30.0 # Connection timeout (1.0-300.0)
27
+ CCBT_HANDSHAKE_TIMEOUT=10.0 # Handshake timeout (1.0-60.0)
28
+ CCBT_KEEP_ALIVE_INTERVAL=120.0 # Keep alive interval (30.0-600.0)
29
+ CCBT_PEER_TIMEOUT=60.0 # Peer inactivity timeout (5.0-600.0)
30
+ CCBT_DHT_TIMEOUT=2.0 # DHT request timeout (1.0-60.0)
31
+
32
+ # Listen settings
33
+ CCBT_LISTEN_PORT=6881 # Listen port (1024-65535)
34
+ CCBT_LISTEN_INTERFACE=0.0.0.0 # Listen interface
35
+ CCBT_ENABLE_IPV6=true # Enable IPv6 support (true/false)
36
+ CCBT_XET_PORT= # XET protocol port (uses listen_port_udp if not set) (1024-65535)
37
+ CCBT_XET_MULTICAST_ADDRESS=239.255.255.250 # XET multicast address for local network discovery
38
+ CCBT_XET_MULTICAST_PORT=6882 # XET multicast port (1024-65535)
39
+
40
+ # Transport protocols
41
+ CCBT_ENABLE_TCP=true # Enable TCP transport (true/false)
42
+ CCBT_ENABLE_UTP=false # Enable uTP transport (true/false)
43
+ CCBT_ENABLE_ENCRYPTION=false # Enable protocol encryption (true/false)
44
+
45
+ # uTP (uTorrent Transport Protocol) Configuration (BEP 29)
46
+ CCBT_UTP_PREFER_OVER_TCP=true # Prefer uTP over TCP when both are supported (true/false)
47
+ CCBT_UTP_CONNECTION_TIMEOUT=30.0 # uTP connection timeout in seconds (5.0-300.0)
48
+ CCBT_UTP_MAX_WINDOW_SIZE=65535 # Maximum uTP receive window size in bytes (8192-65535)
49
+ CCBT_UTP_MTU=1200 # uTP MTU size (maximum UDP packet size) (576-65507)
50
+ CCBT_UTP_INITIAL_RATE=1500 # Initial send rate in bytes/second (1024-100000)
51
+ CCBT_UTP_MIN_RATE=512 # Minimum send rate in bytes/second (256-10000)
52
+ CCBT_UTP_MAX_RATE=1000000 # Maximum send rate in bytes/second (10000-10000000)
53
+ CCBT_UTP_ACK_INTERVAL=0.1 # ACK packet send interval in seconds (0.01-1.0)
54
+ CCBT_UTP_RETRANSMIT_TIMEOUT_FACTOR=4.0 # RTT multiplier for retransmit timeout (2.0-10.0)
55
+ CCBT_UTP_MAX_RETRANSMITS=10 # Maximum retransmission attempts before connection failure (3-50)
56
+
57
+ # Choking strategy
58
+ CCBT_MAX_UPLOAD_SLOTS=4 # Maximum upload slots (1-20)
59
+ CCBT_OPTIMISTIC_UNCHOKE_INTERVAL=30.0 # Optimistic unchoke interval (1.0-600.0)
60
+ CCBT_UNCHOKE_INTERVAL=10.0 # Unchoke interval (1.0-600.0)
61
+
62
+ # IMPROVEMENT: Choking optimization weights
63
+ CCBT_CHOKING_UPLOAD_RATE_WEIGHT=0.6 # Weight for upload rate in choking/unchoking decisions (0.0-1.0)
64
+ CCBT_CHOKING_DOWNLOAD_RATE_WEIGHT=0.4 # Weight for download rate in choking/unchoking decisions (0.0-1.0)
65
+ CCBT_CHOKING_PERFORMANCE_SCORE_WEIGHT=0.2 # Weight for performance score in choking/unchoking decisions (0.0-1.0)
66
+
67
+ # IMPROVEMENT: Peer quality ranking weights
68
+ CCBT_PEER_QUALITY_PERFORMANCE_WEIGHT=0.4 # Weight for historical performance in peer quality ranking (0.0-1.0)
69
+ CCBT_PEER_QUALITY_SUCCESS_RATE_WEIGHT=0.2 # Weight for connection success rate in peer quality ranking (0.0-1.0)
70
+ CCBT_PEER_QUALITY_SOURCE_WEIGHT=0.2 # Weight for source quality in peer quality ranking (0.0-1.0)
71
+ CCBT_PEER_QUALITY_PROXIMITY_WEIGHT=0.2 # Weight for geographic proximity in peer quality ranking (0.0-1.0)
72
+
73
+ # Rate limiting (KiB/s, 0 = unlimited)
74
+ CCBT_GLOBAL_DOWN_KIB=0 # Global download limit (0+)
75
+ CCBT_GLOBAL_UP_KIB=0 # Global upload limit (0+)
76
+ CCBT_PER_PEER_DOWN_KIB=0 # Per-peer download limit (0+)
77
+ CCBT_PER_PEER_UP_KIB=0 # Per-peer upload limit (0+)
78
+
79
+ # Tracker settings
80
+ CCBT_TRACKER_TIMEOUT=30.0 # Tracker request timeout (5.0-120.0)
81
+ CCBT_TRACKER_CONNECT_TIMEOUT=10.0 # Tracker connection timeout (1.0-60.0)
82
+ CCBT_TRACKER_CONNECTION_LIMIT=50 # Maximum tracker connections (1-200)
83
+ CCBT_TRACKER_CONNECTIONS_PER_HOST=10 # Max connections per tracker host (1-50)
84
+ CCBT_DNS_CACHE_TTL=300 # DNS cache TTL in seconds (60-3600)
85
+
86
+ # Connection pool settings
87
+ CCBT_CONNECTION_POOL_GRACE_PERIOD=60.0 # Grace period in seconds for new connections before quality checks (allows time for bandwidth establishment) (0.0-600.0)
88
+
89
+ # Connection health and failure management (BitTorrent spec compliant)
90
+ CCBT_MAX_CONCURRENT_CONNECTION_ATTEMPTS=20 # Maximum concurrent connection attempts to prevent OS socket exhaustion (5-100)
91
+ CCBT_CONNECTION_FAILURE_THRESHOLD=3 # Number of consecutive failures before applying backoff to a peer (1-10)
92
+ CCBT_CONNECTION_FAILURE_BACKOFF_BASE=2.0 # Exponential backoff base multiplier for connection failures (1.0-10.0)
93
+ CCBT_CONNECTION_FAILURE_BACKOFF_MAX=300.0 # Maximum backoff delay in seconds for failed connection attempts (60.0-3600.0)
94
+ CCBT_ENABLE_FAIL_FAST_DHT=true # Enable fail-fast DHT trigger when active_peers == 0 for >30s (allows DHT even if <50 peers)
95
+ CCBT_FAIL_FAST_DHT_TIMEOUT=30.0 # Timeout in seconds before triggering fail-fast DHT when active_peers == 0 (10.0-120.0)
96
+
97
+ # BitTorrent Protocol v2 (BEP 52) settings
98
+ CCBT_PROTOCOL_V2_ENABLE=true # Enable BitTorrent Protocol v2 support (BEP 52) (true/false)
99
+ CCBT_PROTOCOL_V2_PREFER=false # Prefer v2 protocol when both v1 and v2 are available (true/false)
100
+ CCBT_PROTOCOL_V2_SUPPORT_HYBRID=true # Support hybrid torrents (both v1 and v2 metadata) (true/false)
101
+ CCBT_PROTOCOL_V2_HANDSHAKE_TIMEOUT=30.0 # v2 handshake timeout in seconds (5.0-300.0)
102
+
103
+ # =============================================================================
104
+ # DISK CONFIGURATION
105
+ # =============================================================================
106
+
107
+ # Preallocation strategy: none, sparse, full, fallocate
108
+ CCBT_PREALLOCATE=full # Preallocation strategy
109
+ CCBT_SPARSE_FILES=false # Use sparse files if supported (true/false)
110
+
111
+ # Write optimization
112
+ CCBT_WRITE_BATCH_KIB=64 # Write batch size in KiB (1-1024)
113
+ CCBT_WRITE_BUFFER_KIB=1024 # Write buffer size in KiB (0-65536)
114
+ CCBT_USE_MMAP=true # Use memory mapping (true/false)
115
+ CCBT_MMAP_CACHE_MB=128 # Memory-mapped cache size in MB (16-2048)
116
+ CCBT_MMAP_CACHE_CLEANUP_INTERVAL=30.0 # MMap cache cleanup interval (1.0-300.0)
117
+
118
+ # Hash verification
119
+ CCBT_HASH_WORKERS=4 # Number of hash verification workers (1-32)
120
+ CCBT_HASH_CHUNK_SIZE=65536 # Chunk size for hash verification (1024-1048576)
121
+ CCBT_HASH_BATCH_SIZE=4 # Number of pieces to verify in parallel batches (1-64)
122
+ CCBT_HASH_QUEUE_SIZE=100 # Hash verification queue size (10-500)
123
+
124
+ # I/O threading
125
+ CCBT_DISK_WORKERS=2 # Number of disk I/O workers (1-16)
126
+ CCBT_DISK_QUEUE_SIZE=200 # Disk I/O queue size (10-1000)
127
+ CCBT_CACHE_SIZE_MB=256 # Cache size in MB (16-4096)
128
+
129
+ # Advanced settings
130
+ CCBT_DIRECT_IO=false # Use direct I/O (true/false)
131
+ CCBT_SYNC_WRITES=false # Synchronize writes (true/false)
132
+ CCBT_READ_AHEAD_KIB=64 # Read ahead size in KiB (0-1024)
133
+ CCBT_ENABLE_IO_URING=false # Enable io_uring on Linux if available (true/false)
134
+ CCBT_DOWNLOAD_PATH= # Default download path
135
+
136
+ # Checkpoint settings
137
+ CCBT_CHECKPOINT_ENABLED=true # Enable download checkpointing (true/false)
138
+ CCBT_CHECKPOINT_FORMAT=both # Checkpoint file format (json/binary/both)
139
+ CCBT_CHECKPOINT_DIR= # Checkpoint directory (defaults to download_dir/.ccbt/checkpoints)
140
+ CCBT_CHECKPOINT_INTERVAL=30.0 # Checkpoint save interval in seconds (1.0-3600.0)
141
+ CCBT_CHECKPOINT_ON_PIECE=true # Save checkpoint after each verified piece (true/false)
142
+ CCBT_AUTO_RESUME=true # Automatically resume from checkpoint on startup (true/false)
143
+ CCBT_CHECKPOINT_COMPRESSION=true # Compress binary checkpoint files (true/false)
144
+ CCBT_AUTO_DELETE_CHECKPOINT_ON_COMPLETE=true # Auto-delete checkpoint when download completes (true/false)
145
+ CCBT_CHECKPOINT_RETENTION_DAYS=30 # Days to retain checkpoints before cleanup (1-365)
146
+
147
+ # Fast Resume settings
148
+ CCBT_FAST_RESUME_ENABLED=true # Enable fast resume support (true/false)
149
+ CCBT_RESUME_SAVE_INTERVAL=30.0 # Interval to save resume data in seconds (1.0-3600.0)
150
+ CCBT_RESUME_VERIFY_ON_LOAD=true # Verify resume data integrity on load (true/false)
151
+ CCBT_RESUME_VERIFY_PIECES=10 # Number of pieces to verify on resume (0-100, 0 = disable)
152
+ CCBT_RESUME_DATA_FORMAT_VERSION=1 # Resume data format version (1-100)
153
+
154
+ # BEP 47: File Attributes Configuration
155
+ CCBT_ATTRIBUTES_PRESERVE_ATTRIBUTES=true # Preserve file attributes (executable, hidden, symlinks) (true/false)
156
+ CCBT_ATTRIBUTES_SKIP_PADDING_FILES=true # Skip downloading padding files (BEP 47) (true/false)
157
+ CCBT_ATTRIBUTES_VERIFY_FILE_SHA1=false # Verify file SHA-1 hashes when provided (BEP 47) (true/false)
158
+ CCBT_ATTRIBUTES_APPLY_SYMLINKS=true # Create symlinks for files with attr='l' (true/false)
159
+ CCBT_ATTRIBUTES_APPLY_EXECUTABLE_BIT=true # Set executable bit for files with attr='x' (true/false)
160
+ CCBT_ATTRIBUTES_APPLY_HIDDEN_ATTR=true # Apply hidden attribute for files with attr='h' (Windows) (true/false)
161
+
162
+ # XET Protocol Configuration
163
+ CCBT_XET_ENABLED=false # Enable Xet protocol for content-defined chunking and deduplication (true/false)
164
+ CCBT_XET_CHUNK_MIN_SIZE=8192 # Minimum Xet chunk size in bytes
165
+ CCBT_XET_CHUNK_MAX_SIZE=131072 # Maximum Xet chunk size in bytes
166
+ CCBT_XET_CHUNK_TARGET_SIZE=16384 # Target Xet chunk size in bytes
167
+ CCBT_XET_DEDUPLICATION_ENABLED=true # Enable chunk-level deduplication (true/false)
168
+ CCBT_XET_CACHE_DB_PATH= # Path to Xet deduplication cache database
169
+ CCBT_XET_CHUNK_STORE_PATH= # Path to Xet chunk storage directory
170
+ CCBT_XET_USE_P2P_CAS=true # Use peer-to-peer Content Addressable Storage (DHT-based) (true/false)
171
+ CCBT_XET_COMPRESSION_ENABLED=false # Enable LZ4 compression for stored chunks (true/false)
172
+
173
+ # =============================================================================
174
+ # STRATEGY CONFIGURATION
175
+ # =============================================================================
176
+
177
+ # Piece selection strategy: round_robin, rarest_first, sequential
178
+ CCBT_PIECE_SELECTION=rarest_first # Piece selection strategy
179
+ CCBT_ENDGAME_DUPLICATES=2 # Endgame duplicate requests (1-10)
180
+ CCBT_ENDGAME_THRESHOLD=0.95 # Endgame mode threshold (0.1-1.0)
181
+ CCBT_STREAMING_MODE=false # Enable streaming mode (true/false)
182
+
183
+ # Advanced strategy settings
184
+ CCBT_RAREST_FIRST_THRESHOLD=0.1 # Rarest first threshold (0.0-1.0)
185
+ CCBT_SEQUENTIAL_WINDOW=10 # Sequential window size (1-100)
186
+ CCBT_SEQUENTIAL_PRIORITY_FILES= # File paths to prioritize in sequential mode (comma-separated, optional)
187
+ CCBT_SEQUENTIAL_FALLBACK_THRESHOLD=0.1 # Fallback to rarest-first if availability < threshold (0.0-1.0)
188
+ CCBT_PIPELINE_CAPACITY=4 # Request pipeline capacity (1-32)
189
+
190
+ # Piece priorities
191
+ CCBT_FIRST_PIECE_PRIORITY=true # Prioritize first piece (true/false)
192
+ CCBT_LAST_PIECE_PRIORITY=false # Prioritize last piece (true/false)
193
+
194
+ # =============================================================================
195
+ # DISCOVERY CONFIGURATION
196
+ # =============================================================================
197
+
198
+ # DHT settings
199
+ CCBT_ENABLE_DHT=true # Enable DHT (true/false)
200
+ CCBT_DHT_PORT=6882 # DHT port (1024-65535)
201
+ # DHT bootstrap nodes (comma-separated)
202
+ CCBT_DHT_BOOTSTRAP_NODES=router.bittorrent.com:6881,dht.transmissionbt.com:6881,router.utorrent.com:6881,dht.libtorrent.org:25401,dht.aelitis.com:6881,router.silotis.us:6881,router.bitcomet.com:6881
203
+
204
+ # BEP 32: IPv6 Extension for DHT
205
+ CCBT_DHT_ENABLE_IPV6=true # Enable IPv6 DHT support (BEP 32) (true/false)
206
+ CCBT_DHT_PREFER_IPV6=true # Prefer IPv6 addresses over IPv4 when available (true/false)
207
+ # IPv6 DHT bootstrap nodes (comma-separated, format: [hostname:port or [IPv6]:port])
208
+ CCBT_DHT_IPV6_BOOTSTRAP_NODES=
209
+
210
+ # BEP 43: Read-only DHT Nodes
211
+ CCBT_DHT_READONLY_MODE=false # Enable read-only DHT mode (BEP 43) (true/false)
212
+
213
+ # BEP 45: Multiple-Address Operation for DHT
214
+ CCBT_DHT_ENABLE_MULTIADDRESS=true # Enable multi-address support (BEP 45) (true/false)
215
+ CCBT_DHT_MAX_ADDRESSES_PER_NODE=4 # Maximum addresses to track per node (BEP 45) (1-16)
216
+
217
+ # BEP 44: Storing Arbitrary Data in the DHT
218
+ CCBT_DHT_ENABLE_STORAGE=false # Enable DHT storage (BEP 44) (true/false)
219
+ CCBT_DHT_STORAGE_TTL=3600 # Storage TTL in seconds (BEP 44) (60-86400)
220
+ CCBT_DHT_MAX_STORAGE_SIZE=1000 # Maximum storage value size in bytes (BEP 44) (100-10000)
221
+
222
+ # BEP 51: DHT Infohash Indexing
223
+ CCBT_DHT_ENABLE_INDEXING=true # Enable infohash indexing (BEP 51) (true/false)
224
+ CCBT_DHT_INDEX_SAMPLES_PER_KEY=8 # Maximum samples per index key (BEP 51) (1-100)
225
+
226
+ # XET chunk discovery settings
227
+ CCBT_XET_CHUNK_QUERY_BATCH_SIZE=50 # Batch size for parallel chunk queries (1-200)
228
+ CCBT_XET_CHUNK_QUERY_MAX_CONCURRENT=50 # Maximum concurrent chunk queries (1-200)
229
+ CCBT_DISCOVERY_CACHE_TTL=60.0 # Discovery result cache TTL in seconds (1.0-3600.0)
230
+
231
+ # PEX settings
232
+ CCBT_ENABLE_PEX=true # Enable Peer Exchange (true/false)
233
+ CCBT_PEX_INTERVAL=30.0 # Peer Exchange announce interval in seconds (5.0-3600.0)
234
+
235
+ # Tracker settings
236
+ CCBT_ENABLE_HTTP_TRACKERS=true # Enable HTTP trackers (true/false)
237
+ CCBT_ENABLE_UDP_TRACKERS=true # Enable UDP trackers (true/false)
238
+ CCBT_TRACKER_ANNOUNCE_INTERVAL=1800.0 # Tracker announce interval in seconds (60.0-86400.0)
239
+ CCBT_TRACKER_SCRAPE_INTERVAL=3600.0 # Tracker scrape interval in seconds (60.0-86400.0)
240
+ CCBT_TRACKER_AUTO_SCRAPE=false # Automatically scrape trackers when adding torrents (true/false)
241
+ # Default trackers for magnet links without tr= parameters (comma-separated)
242
+ CCBT_DEFAULT_TRACKERS=https://tracker.opentrackr.org:443/announce,https://tracker.torrent.eu.org:443/announce,https://tracker.openbittorrent.com:443/announce,http://tracker.opentrackr.org:1337/announce,http://tracker.openbittorrent.com:80/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.openbittorrent.com:80/announce
243
+
244
+ # Private torrent settings (BEP 27)
245
+ CCBT_STRICT_PRIVATE_MODE=true # Enforce strict BEP 27 rules for private torrents (true/false)
246
+
247
+ # IMPROVEMENT: Aggressive discovery for popular torrents
248
+ CCBT_AGGRESSIVE_DISCOVERY_POPULAR_THRESHOLD=20 # Minimum peer count to enable aggressive discovery mode (5-100)
249
+ CCBT_AGGRESSIVE_DISCOVERY_ACTIVE_THRESHOLD_KIB=1.0 # Minimum download rate (KB/s) to enable aggressive discovery mode (0.1-100.0)
250
+ CCBT_AGGRESSIVE_DISCOVERY_INTERVAL_POPULAR=10.0 # DHT query interval in seconds for popular torrents (20+ peers) (5.0-60.0)
251
+ CCBT_AGGRESSIVE_DISCOVERY_INTERVAL_ACTIVE=5.0 # DHT query interval in seconds for actively downloading torrents (>1KB/s) (2.0-30.0)
252
+ CCBT_AGGRESSIVE_DISCOVERY_MAX_PEERS_PER_QUERY=100 # Maximum peers to query per DHT query in aggressive mode (50-500)
253
+
254
+ # DHT query parameters (Kademlia algorithm)
255
+ CCBT_DHT_NORMAL_ALPHA=5 # Number of parallel queries for normal DHT lookups (BEP 5 alpha parameter) (3-20)
256
+ CCBT_DHT_NORMAL_K=16 # Bucket size for normal DHT lookups (BEP 5 k parameter) (8-64)
257
+ CCBT_DHT_NORMAL_MAX_DEPTH=12 # Maximum depth for normal DHT iterative lookups (3-30)
258
+ CCBT_DHT_AGGRESSIVE_ALPHA=8 # Number of parallel queries for aggressive DHT lookups (BEP 5 alpha parameter) (5-30)
259
+ CCBT_DHT_AGGRESSIVE_K=32 # Bucket size for aggressive DHT lookups (BEP 5 k parameter) (16-128)
260
+ CCBT_DHT_AGGRESSIVE_MAX_DEPTH=15 # Maximum depth for aggressive DHT iterative lookups (5-50)
261
+
262
+ # =============================================================================
263
+ # OBSERVABILITY CONFIGURATION
264
+ # =============================================================================
265
+
266
+ # Logging
267
+ CCBT_LOG_LEVEL=INFO # Log level (DEBUG/INFO/WARNING/ERROR/CRITICAL)
268
+ CCBT_LOG_FILE= # Log file path (empty = stdout)
269
+ CCBT_LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s # Log format string
270
+ CCBT_STRUCTURED_LOGGING=true # Use structured logging (true/false)
271
+ CCBT_LOG_CORRELATION_ID=true # Include correlation IDs (true/false)
272
+
273
+ # Metrics
274
+ CCBT_ENABLE_METRICS=true # Enable metrics collection (true/false)
275
+ CCBT_METRICS_PORT=9090 # Metrics port (1024-65535)
276
+ CCBT_METRICS_INTERVAL=5.0 # Metrics collection interval in seconds (0.5-3600.0)
277
+
278
+ # Tracing
279
+ CCBT_ENABLE_PEER_TRACING=false # Enable peer tracing (true/false)
280
+ CCBT_TRACE_FILE= # Path to write traces (empty = disabled)
281
+ CCBT_ALERTS_RULES_PATH=.ccbt/alerts.json # Path to alert rules JSON file
282
+
283
+ # Event bus configuration
284
+ CCBT_EVENT_BUS_MAX_QUEUE_SIZE=10000 # Maximum size of event queue (100-1000000)
285
+ CCBT_EVENT_BUS_BATCH_SIZE=50 # Maximum number of events to process per batch (1-1000)
286
+ CCBT_EVENT_BUS_BATCH_TIMEOUT=0.05 # Timeout in seconds to wait when collecting a batch (0.001-1.0)
287
+ CCBT_EVENT_BUS_EMIT_TIMEOUT=0.01 # Timeout in seconds when trying to emit to a full queue (0.001-1.0)
288
+ CCBT_EVENT_BUS_QUEUE_FULL_THRESHOLD=0.9 # Queue fullness threshold (0.0-1.0) for dropping low-priority events (0.1-1.0)
289
+ CCBT_EVENT_BUS_THROTTLE_DHT_NODE_FOUND=0.1 # Throttle interval for dht_node_found events in seconds (max 10/sec) (0.001-10.0)
290
+ CCBT_EVENT_BUS_THROTTLE_DHT_NODE_ADDED=0.1 # Throttle interval for dht_node_added events in seconds (max 10/sec) (0.001-10.0)
291
+ CCBT_EVENT_BUS_THROTTLE_MONITORING_HEARTBEAT=1.0 # Throttle interval for monitoring_heartbeat events in seconds (max 1/sec) (0.1-60.0)
292
+ CCBT_EVENT_BUS_THROTTLE_GLOBAL_METRICS_UPDATE=0.5 # Throttle interval for global_metrics_update events in seconds (max 2/sec) (0.1-10.0)
293
+
294
+ # =============================================================================
295
+ # LIMITS CONFIGURATION
296
+ # =============================================================================
297
+
298
+ # Global rate limits (KiB/s, 0 = unlimited)
299
+ CCBT_LIMITS_GLOBAL_DOWN_KIB=0 # Global download limit (0+)
300
+ CCBT_LIMITS_GLOBAL_UP_KIB=0 # Global upload limit (0+)
301
+
302
+ # Per-torrent rate limits (KiB/s, 0 = unlimited)
303
+ CCBT_LIMITS_PER_TORRENT_DOWN_KIB=0 # Per-torrent download limit (0+)
304
+ CCBT_LIMITS_PER_TORRENT_UP_KIB=0 # Per-torrent upload limit (0+)
305
+
306
+ # Per-peer rate limits (KiB/s, 0 = unlimited)
307
+ CCBT_LIMITS_PER_PEER_UP_KIB=0 # Per-peer upload limit (0+)
308
+
309
+ # Scheduler settings
310
+ CCBT_SCHEDULER_SLICE_MS=100 # Scheduler time slice in ms (1-1000)
311
+
312
+ # =============================================================================
313
+ # SECURITY CONFIGURATION
314
+ # =============================================================================
315
+
316
+ CCBT_ENABLE_ENCRYPTION=false # Enable protocol encryption (true/false)
317
+ CCBT_ENCRYPTION_MODE=preferred # Encryption mode: disabled/preferred/required
318
+ CCBT_ENCRYPTION_DH_KEY_SIZE=768 # DH key size in bits: 768 or 1024
319
+ CCBT_ENCRYPTION_PREFER_RC4=true # Prefer RC4 cipher for compatibility (true/false)
320
+ CCBT_ENCRYPTION_ALLOWED_CIPHERS=rc4,aes # Allowed ciphers (comma-separated: rc4,aes,chacha20)
321
+ CCBT_ENCRYPTION_ALLOW_PLAIN_FALLBACK=true # Allow fallback to plain connection (true/false)
322
+ CCBT_VALIDATE_PEERS=true # Validate peers before exchanging data (true/false)
323
+ CCBT_RATE_LIMIT_ENABLED=true # Enable security rate limiter (true/false)
324
+ CCBT_MAX_CONNECTIONS_PER_PEER=1 # Maximum parallel connections per peer (1-8)
325
+
326
+ # IP Filter settings
327
+ CCBT_ENABLE_IP_FILTER=false # Enable IP filtering (true/false)
328
+ CCBT_FILTER_MODE=block # Filter mode: block or allow
329
+ CCBT_FILTER_FILES= # Comma-separated filter file paths
330
+ CCBT_FILTER_URLS= # Comma-separated filter list URLs
331
+ CCBT_FILTER_UPDATE_INTERVAL=86400.0 # Update interval in seconds (3600.0-604800.0)
332
+ CCBT_FILTER_CACHE_DIR=~/.ccbt/filters # Filter cache directory
333
+ CCBT_FILTER_LOG_BLOCKED=true # Log blocked connections (true/false)
334
+
335
+ # Blacklist settings
336
+ CCBT_BLACKLIST_ENABLE_PERSISTENCE=true # Persist blacklist to disk (true/false)
337
+ CCBT_BLACKLIST_FILE=~/.ccbt/security/blacklist.json # Path to blacklist file
338
+ CCBT_BLACKLIST_AUTO_UPDATE_ENABLED=false # Enable automatic blacklist updates from external sources (true/false)
339
+ CCBT_BLACKLIST_AUTO_UPDATE_INTERVAL=3600.0 # Auto-update interval in seconds (5m-24h)
340
+ CCBT_BLACKLIST_AUTO_UPDATE_SOURCES= # URLs for automatic blacklist updates (comma-separated)
341
+ CCBT_BLACKLIST_DEFAULT_EXPIRATION_HOURS= # Default expiration time for auto-blacklisted IPs in hours (empty = permanent)
342
+
343
+ # Local metric-based blacklist source
344
+ CCBT_BLACKLIST_LOCAL_SOURCE_ENABLED=true # Enable local metric-based blacklisting (true/false)
345
+ CCBT_BLACKLIST_LOCAL_SOURCE_EVALUATION_INTERVAL=300.0 # Evaluation interval in seconds (1m-1h)
346
+ CCBT_BLACKLIST_LOCAL_SOURCE_METRIC_WINDOW=3600.0 # Metric aggregation window in seconds (5m-24h)
347
+ CCBT_BLACKLIST_LOCAL_SOURCE_EXPIRATION_HOURS=24.0 # Expiration time for auto-blacklisted IPs (hours, empty = permanent)
348
+ CCBT_BLACKLIST_LOCAL_SOURCE_MIN_OBSERVATIONS=3 # Minimum observations before blacklisting
349
+
350
+ # =============================================================================
351
+ # SSL/TLS CONFIGURATION
352
+ # =============================================================================
353
+
354
+ # SSL/TLS settings
355
+ CCBT_ENABLE_SSL_TRACKERS=true # Enable SSL for tracker connections (true/false)
356
+ CCBT_ENABLE_SSL_PEERS=false # Enable SSL for peer connections (true/false)
357
+ CCBT_SSL_VERIFY_CERTIFICATES=true # Verify SSL certificates (true/false)
358
+ CCBT_SSL_CA_CERTIFICATES= # Path to CA certificates file or directory
359
+ CCBT_SSL_CLIENT_CERTIFICATE= # Path to client certificate file (PEM format)
360
+ CCBT_SSL_CLIENT_KEY= # Path to client private key file (PEM format)
361
+ CCBT_SSL_PROTOCOL_VERSION=TLSv1.2 # TLS protocol version (TLSv1.2, TLSv1.3, PROTOCOL_TLS)
362
+ CCBT_SSL_ALLOW_INSECURE_PEERS=true # Allow insecure peers for opportunistic encryption (true/false)
363
+
364
+ # =============================================================================
365
+ # PROXY CONFIGURATION
366
+ # =============================================================================
367
+
368
+ CCBT_PROXY_ENABLE_PROXY=false # Enable proxy support (true/false)
369
+ CCBT_PROXY_TYPE=http # Proxy type: http/socks4/socks5
370
+ CCBT_PROXY_HOST= # Proxy server hostname or IP
371
+ CCBT_PROXY_PORT= # Proxy server port (1-65535)
372
+ CCBT_PROXY_USERNAME= # Proxy username for authentication
373
+ CCBT_PROXY_PASSWORD= # Proxy password (encrypted in storage)
374
+ CCBT_PROXY_FOR_TRACKERS=true # Use proxy for tracker requests (true/false)
375
+ CCBT_PROXY_FOR_PEERS=false # Use proxy for peer connections (true/false)
376
+ CCBT_PROXY_FOR_WEBSEEDS=true # Use proxy for WebSeed requests (true/false)
377
+ CCBT_PROXY_BYPASS_LIST= # Comma-separated list of hosts/IPs to bypass proxy
378
+
379
+ # =============================================================================
380
+ # MACHINE LEARNING CONFIGURATION
381
+ # =============================================================================
382
+
383
+ CCBT_ML_PEER_SELECTION_ENABLED=false # Enable ML-based peer selection (true/false)
384
+ CCBT_ML_PIECE_PREDICTION_ENABLED=false # Enable ML piece prediction (true/false)
385
+
386
+ # =============================================================================
387
+ # NAT CONFIGURATION
388
+ # =============================================================================
389
+
390
+ CCBT_NAT_ENABLE_NAT_PMP=true # Enable NAT-PMP protocol (true/false)
391
+ CCBT_NAT_ENABLE_UPNP=true # Enable UPnP IGD protocol (true/false)
392
+ CCBT_NAT_DISCOVERY_INTERVAL=300.0 # NAT device discovery interval in seconds (0.0-3600.0)
393
+ CCBT_NAT_PORT_MAPPING_LEASE_TIME=3600 # Port mapping lease time in seconds (60-86400)
394
+ CCBT_NAT_AUTO_MAP_PORTS=true # Automatically map ports on startup (true/false)
395
+ CCBT_NAT_MAP_TCP_PORT=true # Map TCP listen port (true/false)
396
+ CCBT_NAT_MAP_UDP_PORT=true # Map UDP listen port (true/false)
397
+ CCBT_NAT_MAP_DHT_PORT=true # Map DHT UDP port (true/false)
398
+ CCBT_NAT_MAP_XET_PORT=true # Map XET protocol UDP port (true/false)
399
+ CCBT_NAT_MAP_XET_MULTICAST_PORT=false # Map XET multicast UDP port (usually not needed for multicast) (true/false)
400
+
401
+ # =============================================================================
402
+ # UI/INTERNATIONALIZATION CONFIGURATION
403
+ # =============================================================================
404
+
405
+ CCBT_LOCALE=en # Language/locale code (e.g., 'en', 'es', 'fr', 'hi', 'ur', 'fa', 'ja', 'ko', 'zh', 'th', 'sw', 'ha', 'yo', 'eu', 'arc')
406
+ CCBT_UI_LOCALE= # UI-specific locale override (takes precedence over CCBT_LOCALE if set)
407
+
408
+ # Locale precedence order (highest to lowest):
409
+ # 1. CCBT_UI_LOCALE environment variable
410
+ # 2. CCBT_LOCALE environment variable
411
+ # 3. LANG environment variable
412
+ # 4. Config file [ui] section (ccbt.toml)
413
+ # 5. System locale
414
+ # 6. Default locale ('en')
415
+
416
+ # Available locales: en, es, fr, hi, ur, fa, arc, ja, ko, zh, th, sw, ha, yo, eu
417
+ # If an invalid locale is specified, the system will fall back to 'en'
418
+
419
+ # =============================================================================
420
+ # CLI-SPECIFIC OVERRIDES
421
+ # =============================================================================
422
+ # These can be used to override any configuration value via environment variables
423
+ # Format: CCBT_<SECTION>_<OPTION>=<value>
424
+ # Example: CCBT_NETWORK_LISTEN_PORT=8080
425
+
426
+ # =============================================================================
427
+ # DEVELOPMENT AND DEBUGGING
428
+ # =============================================================================
429
+
430
+ # Debug mode
431
+ CCBT_DEBUG=false # Enable debug mode (true/false)
432
+ CCBT_VERBOSE=false # Enable verbose output (true/false)
433
+
434
+ # Performance profiling
435
+ CCBT_ENABLE_PROFILING=false # Enable performance profiling (true/false)
436
+ CCBT_PROFILE_OUTPUT= # Profile output file path
437
+
438
+ # Testing
439
+ CCBT_TEST_MODE=false # Enable test mode (true/false)
440
+ CCBT_MOCK_NETWORK=false # Use mock network for testing (true/false)
441
+
442
+ # =============================================================================
443
+ # NOTES
444
+ # =============================================================================
445
+ # 1. All boolean values can be set as: true/false, 1/0, yes/no, on/off
446
+ # 2. Numeric values must be within the specified ranges
447
+ # 3. Enum values must match exactly (case-sensitive)
448
+ # 4. Empty values will use defaults
449
+ # 5. Environment variables take precedence over config file values
450
+ # 6. CLI arguments take precedence over environment variables
451
+ # 7. Use quotes for values containing spaces or special characters
452
+
453
+ CCBT_ENABLE_PROFILING=false # Enable performance profiling (true/false)
454
+ CCBT_PROFILE_OUTPUT= # Profile output file path
455
+
456
+ # Testing
457
+ CCBT_TEST_MODE=false # Enable test mode (true/false)
458
+ CCBT_MOCK_NETWORK=false # Use mock network for testing (true/false)
459
+
460
+ # =============================================================================
461
+ # NOTES
462
+ # =============================================================================
463
+ # 1. All boolean values can be set as: true/false, 1/0, yes/no, on/off
464
+ # 2. Numeric values must be within the specified ranges
465
+ # 3. Enum values must match exactly (case-sensitive)
466
+ # 4. Empty values will use defaults
467
+ # 5. Environment variables take precedence over config file values
468
+ # 6. CLI arguments take precedence over environment variables
469
+ # 7. Use quotes for values containing spaces or special characters
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a report to help us improve
4
+ title: '[BUG] '
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Bug Description
10
+
11
+ A clear and concise description of what the bug is.
12
+
13
+ ## Steps to Reproduce
14
+
15
+ 1. Go to '...'
16
+ 2. Run command '...'
17
+ 3. See error
18
+
19
+ ## Expected Behavior
20
+
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ ## Actual Behavior
24
+
25
+ A clear and concise description of what actually happened.
26
+
27
+ ## Environment
28
+
29
+ - **OS**: [e.g., Ubuntu 22.04, Windows 11, macOS 13.0]
30
+ - **Python Version**: [e.g., 3.11.0]
31
+ - **ccBitTorrent Version**: [e.g., 0.1.0]
32
+ - **Installation Method**: [e.g., PyPI, source, UV]
33
+
34
+ ## Configuration
35
+
36
+ If applicable, paste relevant parts of your `ccbt.toml` configuration:
37
+
38
+ ```toml
39
+ # Paste relevant config here
40
+ ```
41
+
42
+ ## Logs
43
+
44
+ ```
45
+ Paste relevant logs here. Use code blocks with triple backticks.
46
+ ```
47
+
48
+ ## Additional Context
49
+
50
+ Add any other context about the problem here.
51
+
52
+ ## Checklist
53
+
54
+ - [ ] I have searched existing issues to ensure this is not a duplicate
55
+ - [ ] I have included all relevant information
56
+ - [ ] I have tested with the latest version
57
+ - [ ] I have checked the documentation
58
+
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: Compatibility Issue
3
+ about: Report compatibility problems with specific environments
4
+ title: '[COMPAT] '
5
+ labels: compatibility
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Environment Details
10
+
11
+ - **OS**: [e.g., Ubuntu 22.04, Windows 11, macOS 13.0]
12
+ - **OS Version**: [e.g., 22.04.2 LTS]
13
+ - **Python Version**: [e.g., 3.11.0]
14
+ - **Python Distribution**: [e.g., CPython, PyPy, Anaconda]
15
+ - **Architecture**: [e.g., x86_64, arm64, aarch64]
16
+ - **ccBitTorrent Version**: [e.g., 0.1.0]
17
+ - **Installation Method**: [e.g., PyPI, source, UV]
18
+
19
+ ## Compatibility Problem
20
+
21
+ Describe the compatibility issue you're experiencing.
22
+
23
+ ## Error Messages
24
+
25
+ ```
26
+ Paste error messages or stack traces here.
27
+ ```
28
+
29
+ ## Steps to Reproduce
30
+
31
+ 1. Environment setup: '...'
32
+ 2. Installation method: '...'
33
+ 3. Command run: '...'
34
+ 4. Error occurs: '...'
35
+
36
+ ## Expected Behavior
37
+
38
+ What should happen in a compatible environment?
39
+
40
+ ## Actual Behavior
41
+
42
+ What actually happens in your environment?
43
+
44
+ ## System Information
45
+
46
+ If applicable, provide additional system information:
47
+
48
+ ```bash
49
+ # Paste output of relevant system commands
50
+ python --version
51
+ pip --version
52
+ uname -a # or equivalent for your OS
53
+ ```
54
+
55
+ ## Dependencies
56
+
57
+ List any relevant system dependencies or libraries:
58
+
59
+ - [e.g., libtorrent, specific Python packages]
60
+
61
+ ## Workarounds
62
+
63
+ Have you found any workarounds? If so, describe them.
64
+
65
+ ## Additional Context
66
+
67
+ Add any other context about the compatibility issue here.
68
+
69
+ ## Checklist
70
+
71
+ - [ ] I have searched existing issues to ensure this is not a duplicate
72
+ - [ ] I have included all relevant environment details
73
+ - [ ] I have tested with the latest version
74
+ - [ ] I have checked the documentation for known compatibility issues
75
+
@@ -0,0 +1,15 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 💬 Discussions
4
+ url: https://github.com/ccBittorrent/ccbt/discussions
5
+ about: Ask questions and discuss ideas with the community
6
+ - name: 📚 Documentation
7
+ url: https://ccbittorrent.readthedocs.io/
8
+ about: Check the documentation for guides and API reference
9
+ - name: 🐛 Bug Reports
10
+ url: https://github.com/ccBittorrent/ccbt/issues/new?template=bug_report.md
11
+ about: Report a bug or unexpected behavior
12
+ - name: ✨ Feature Requests
13
+ url: https://github.com/ccBittorrent/ccbt/issues/new?template=feature_request.md
14
+ about: Suggest a new feature or enhancement
15
+
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest an idea for this project
4
+ title: '[FEATURE] '
5
+ labels: enhancement
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Feature Description
10
+
11
+ A clear and concise description of the feature you'd like to see.
12
+
13
+ ## Use Case
14
+
15
+ Describe the problem this feature would solve or the use case it would enable.
16
+
17
+ ## Proposed Solution
18
+
19
+ A clear and concise description of what you want to happen.
20
+
21
+ ## Alternative Solutions
22
+
23
+ A clear and concise description of any alternative solutions or features you've considered.
24
+
25
+ ## Implementation Ideas
26
+
27
+ If you have ideas about how this could be implemented, please share them here.
28
+
29
+ ## Related Issues
30
+
31
+ Link to any related issues or discussions.
32
+
33
+ ## Additional Context
34
+
35
+ Add any other context, mockups, or examples about the feature request here.
36
+
37
+ ## Checklist
38
+
39
+ - [ ] I have searched existing issues to ensure this is not a duplicate
40
+ - [ ] I have checked the documentation
41
+ - [ ] This feature aligns with the project's goals
42
+