sing-box-python 1.13.18__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 (1036) hide show
  1. sing_box_python-1.13.18/CMakeLists.txt +74 -0
  2. sing_box_python-1.13.18/LICENSE +17 -0
  3. sing_box_python-1.13.18/MANIFEST.in +9 -0
  4. sing_box_python-1.13.18/PKG-INFO +196 -0
  5. sing_box_python-1.13.18/README.md +169 -0
  6. sing_box_python-1.13.18/pyproject.toml +60 -0
  7. sing_box_python-1.13.18/setup.cfg +4 -0
  8. sing_box_python-1.13.18/setup.py +337 -0
  9. sing_box_python-1.13.18/sing_box_python.egg-info/PKG-INFO +196 -0
  10. sing_box_python-1.13.18/sing_box_python.egg-info/SOURCES.txt +1034 -0
  11. sing_box_python-1.13.18/sing_box_python.egg-info/dependency_links.txt +1 -0
  12. sing_box_python-1.13.18/sing_box_python.egg-info/not-zip-safe +1 -0
  13. sing_box_python-1.13.18/sing_box_python.egg-info/top_level.txt +1 -0
  14. sing_box_python-1.13.18/singbox/__init__.py +31 -0
  15. sing_box_python-1.13.18/singbox/_native.pyi +24 -0
  16. sing_box_python-1.13.18/singbox/py.typed +0 -0
  17. sing_box_python-1.13.18/singbox-go/.fpm_openwrt +31 -0
  18. sing_box_python-1.13.18/singbox-go/.fpm_pacman +23 -0
  19. sing_box_python-1.13.18/singbox-go/.fpm_systemd +26 -0
  20. sing_box_python-1.13.18/singbox-go/.github/CRONET_GO_VERSION +1 -0
  21. sing_box_python-1.13.18/singbox-go/.github/FUNDING.yml +1 -0
  22. sing_box_python-1.13.18/singbox-go/.github/ISSUE_TEMPLATE/bug_report.yml +88 -0
  23. sing_box_python-1.13.18/singbox-go/.github/ISSUE_TEMPLATE/bug_report_zh.yml +88 -0
  24. sing_box_python-1.13.18/singbox-go/.github/build_alpine_apk.sh +94 -0
  25. sing_box_python-1.13.18/singbox-go/.github/build_openwrt_apk.sh +93 -0
  26. sing_box_python-1.13.18/singbox-go/.github/deb2ipk.sh +28 -0
  27. sing_box_python-1.13.18/singbox-go/.github/detect_track.sh +33 -0
  28. sing_box_python-1.13.18/singbox-go/.github/renovate.json +28 -0
  29. sing_box_python-1.13.18/singbox-go/.github/setup_go_for_macos1013.sh +45 -0
  30. sing_box_python-1.13.18/singbox-go/.github/setup_go_for_windows7.sh +46 -0
  31. sing_box_python-1.13.18/singbox-go/.github/update_clients.sh +14 -0
  32. sing_box_python-1.13.18/singbox-go/.github/update_cronet.sh +13 -0
  33. sing_box_python-1.13.18/singbox-go/.github/update_cronet_dev.sh +13 -0
  34. sing_box_python-1.13.18/singbox-go/.github/update_dependencies.sh +5 -0
  35. sing_box_python-1.13.18/singbox-go/.github/workflows/build.yml +1473 -0
  36. sing_box_python-1.13.18/singbox-go/.github/workflows/docker.yml +296 -0
  37. sing_box_python-1.13.18/singbox-go/.github/workflows/lint.yml +79 -0
  38. sing_box_python-1.13.18/singbox-go/.github/workflows/linux.yml +245 -0
  39. sing_box_python-1.13.18/singbox-go/.github/workflows/stale.yml +16 -0
  40. sing_box_python-1.13.18/singbox-go/.gitignore +23 -0
  41. sing_box_python-1.13.18/singbox-go/.gitmodules +6 -0
  42. sing_box_python-1.13.18/singbox-go/.golangci.yml +56 -0
  43. sing_box_python-1.13.18/singbox-go/Dockerfile +26 -0
  44. sing_box_python-1.13.18/singbox-go/Dockerfile.binary +14 -0
  45. sing_box_python-1.13.18/singbox-go/LICENSE +17 -0
  46. sing_box_python-1.13.18/singbox-go/Makefile +290 -0
  47. sing_box_python-1.13.18/singbox-go/README.md +31 -0
  48. sing_box_python-1.13.18/singbox-go/adapter/certificate.go +21 -0
  49. sing_box_python-1.13.18/singbox-go/adapter/connections.go +18 -0
  50. sing_box_python-1.13.18/singbox-go/adapter/dns.go +95 -0
  51. sing_box_python-1.13.18/singbox-go/adapter/endpoint/adapter.go +43 -0
  52. sing_box_python-1.13.18/singbox-go/adapter/endpoint/manager.go +156 -0
  53. sing_box_python-1.13.18/singbox-go/adapter/endpoint/registry.go +72 -0
  54. sing_box_python-1.13.18/singbox-go/adapter/endpoint.go +28 -0
  55. sing_box_python-1.13.18/singbox-go/adapter/experimental.go +146 -0
  56. sing_box_python-1.13.18/singbox-go/adapter/fakeip.go +31 -0
  57. sing_box_python-1.13.18/singbox-go/adapter/fakeip_metadata.go +50 -0
  58. sing_box_python-1.13.18/singbox-go/adapter/handler.go +61 -0
  59. sing_box_python-1.13.18/singbox-go/adapter/inbound/adapter.go +21 -0
  60. sing_box_python-1.13.18/singbox-go/adapter/inbound/manager.go +158 -0
  61. sing_box_python-1.13.18/singbox-go/adapter/inbound/registry.go +72 -0
  62. sing_box_python-1.13.18/singbox-go/adapter/inbound.go +143 -0
  63. sing_box_python-1.13.18/singbox-go/adapter/lifecycle.go +114 -0
  64. sing_box_python-1.13.18/singbox-go/adapter/lifecycle_legacy.go +52 -0
  65. sing_box_python-1.13.18/singbox-go/adapter/network.go +81 -0
  66. sing_box_python-1.13.18/singbox-go/adapter/outbound/adapter.go +45 -0
  67. sing_box_python-1.13.18/singbox-go/adapter/outbound/manager.go +310 -0
  68. sing_box_python-1.13.18/singbox-go/adapter/outbound/registry.go +72 -0
  69. sing_box_python-1.13.18/singbox-go/adapter/outbound.go +52 -0
  70. sing_box_python-1.13.18/singbox-go/adapter/platform.go +74 -0
  71. sing_box_python-1.13.18/singbox-go/adapter/prestart.go +1 -0
  72. sing_box_python-1.13.18/singbox-go/adapter/router.go +114 -0
  73. sing_box_python-1.13.18/singbox-go/adapter/rule.go +37 -0
  74. sing_box_python-1.13.18/singbox-go/adapter/service/adapter.go +21 -0
  75. sing_box_python-1.13.18/singbox-go/adapter/service/manager.go +153 -0
  76. sing_box_python-1.13.18/singbox-go/adapter/service/registry.go +72 -0
  77. sing_box_python-1.13.18/singbox-go/adapter/service.go +27 -0
  78. sing_box_python-1.13.18/singbox-go/adapter/ssm.go +18 -0
  79. sing_box_python-1.13.18/singbox-go/adapter/time.go +8 -0
  80. sing_box_python-1.13.18/singbox-go/adapter/upstream.go +168 -0
  81. sing_box_python-1.13.18/singbox-go/adapter/upstream_legacy.go +234 -0
  82. sing_box_python-1.13.18/singbox-go/adapter/v2ray.go +24 -0
  83. sing_box_python-1.13.18/singbox-go/binding/cronet_purego.go +15 -0
  84. sing_box_python-1.13.18/singbox-go/binding/main.go +392 -0
  85. sing_box_python-1.13.18/singbox-go/box.go +561 -0
  86. sing_box_python-1.13.18/singbox-go/cmd/internal/app_store_connect/main.go +452 -0
  87. sing_box_python-1.13.18/singbox-go/cmd/internal/build/main.go +26 -0
  88. sing_box_python-1.13.18/singbox-go/cmd/internal/build_libbox/main.go +245 -0
  89. sing_box_python-1.13.18/singbox-go/cmd/internal/build_shared/sdk.go +106 -0
  90. sing_box_python-1.13.18/singbox-go/cmd/internal/build_shared/tag.go +38 -0
  91. sing_box_python-1.13.18/singbox-go/cmd/internal/format_docs/main.go +117 -0
  92. sing_box_python-1.13.18/singbox-go/cmd/internal/merge_aar/main.go +165 -0
  93. sing_box_python-1.13.18/singbox-go/cmd/internal/merge_apple_xcframework/main.go +172 -0
  94. sing_box_python-1.13.18/singbox-go/cmd/internal/protogen/main.go +218 -0
  95. sing_box_python-1.13.18/singbox-go/cmd/internal/read_tag/main.go +71 -0
  96. sing_box_python-1.13.18/singbox-go/cmd/internal/tun_bench/main.go +284 -0
  97. sing_box_python-1.13.18/singbox-go/cmd/internal/update_android_version/main.go +84 -0
  98. sing_box_python-1.13.18/singbox-go/cmd/internal/update_apple_version/main.go +184 -0
  99. sing_box_python-1.13.18/singbox-go/cmd/internal/update_certificates/main.go +162 -0
  100. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd.go +71 -0
  101. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_check.go +43 -0
  102. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_format.go +75 -0
  103. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate.go +92 -0
  104. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_ech.go +36 -0
  105. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_tls.go +40 -0
  106. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_vapid.go +40 -0
  107. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_wireguard.go +61 -0
  108. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip.go +43 -0
  109. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_export.go +99 -0
  110. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_list.go +31 -0
  111. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_lookup.go +47 -0
  112. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite.go +41 -0
  113. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_export.go +82 -0
  114. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_list.go +50 -0
  115. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_lookup.go +97 -0
  116. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_matcher.go +56 -0
  117. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_merge.go +143 -0
  118. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set.go +14 -0
  119. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_compile.go +97 -0
  120. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_convert.go +89 -0
  121. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_decompile.go +101 -0
  122. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_format.go +83 -0
  123. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_match.go +105 -0
  124. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_merge.go +162 -0
  125. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_upgrade.go +95 -0
  126. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_run.go +212 -0
  127. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools.go +54 -0
  128. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_connect.go +73 -0
  129. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch.go +115 -0
  130. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch_http3.go +36 -0
  131. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch_http3_stub.go +18 -0
  132. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_synctime.go +67 -0
  133. sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_version.go +64 -0
  134. sing_box_python-1.13.18/singbox-go/cmd/sing-box/generate_completions.go +28 -0
  135. sing_box_python-1.13.18/singbox-go/cmd/sing-box/main.go +11 -0
  136. sing_box_python-1.13.18/singbox-go/common/badtls/raw_conn.go +176 -0
  137. sing_box_python-1.13.18/singbox-go/common/badtls/raw_half_conn.go +121 -0
  138. sing_box_python-1.13.18/singbox-go/common/badtls/read_wait.go +82 -0
  139. sing_box_python-1.13.18/singbox-go/common/badtls/read_wait_stub.go +13 -0
  140. sing_box_python-1.13.18/singbox-go/common/badtls/registry.go +62 -0
  141. sing_box_python-1.13.18/singbox-go/common/badtls/registry_utls.go +56 -0
  142. sing_box_python-1.13.18/singbox-go/common/badversion/version.go +150 -0
  143. sing_box_python-1.13.18/singbox-go/common/badversion/version_json.go +17 -0
  144. sing_box_python-1.13.18/singbox-go/common/badversion/version_test.go +18 -0
  145. sing_box_python-1.13.18/singbox-go/common/certificate/chrome.go +2816 -0
  146. sing_box_python-1.13.18/singbox-go/common/certificate/mozilla.go +4592 -0
  147. sing_box_python-1.13.18/singbox-go/common/certificate/store.go +210 -0
  148. sing_box_python-1.13.18/singbox-go/common/compatible/map.go +58 -0
  149. sing_box_python-1.13.18/singbox-go/common/convertor/adguard/convertor.go +454 -0
  150. sing_box_python-1.13.18/singbox-go/common/convertor/adguard/convertor_test.go +145 -0
  151. sing_box_python-1.13.18/singbox-go/common/dialer/default.go +400 -0
  152. sing_box_python-1.13.18/singbox-go/common/dialer/default_parallel_interface.go +248 -0
  153. sing_box_python-1.13.18/singbox-go/common/dialer/default_parallel_network.go +161 -0
  154. sing_box_python-1.13.18/singbox-go/common/dialer/detour.go +85 -0
  155. sing_box_python-1.13.18/singbox-go/common/dialer/dialer.go +151 -0
  156. sing_box_python-1.13.18/singbox-go/common/dialer/resolve.go +194 -0
  157. sing_box_python-1.13.18/singbox-go/common/dialer/router.go +33 -0
  158. sing_box_python-1.13.18/singbox-go/common/dialer/tfo.go +176 -0
  159. sing_box_python-1.13.18/singbox-go/common/dialer/wireguard.go +9 -0
  160. sing_box_python-1.13.18/singbox-go/common/geoip/reader.go +38 -0
  161. sing_box_python-1.13.18/singbox-go/common/geosite/compat_test.go +229 -0
  162. sing_box_python-1.13.18/singbox-go/common/geosite/geosite_test.go +34 -0
  163. sing_box_python-1.13.18/singbox-go/common/geosite/reader.go +155 -0
  164. sing_box_python-1.13.18/singbox-go/common/geosite/rule.go +103 -0
  165. sing_box_python-1.13.18/singbox-go/common/geosite/writer.go +73 -0
  166. sing_box_python-1.13.18/singbox-go/common/interrupt/conn.go +75 -0
  167. sing_box_python-1.13.18/singbox-go/common/interrupt/context.go +13 -0
  168. sing_box_python-1.13.18/singbox-go/common/interrupt/group.go +52 -0
  169. sing_box_python-1.13.18/singbox-go/common/ja3/LICENSE +29 -0
  170. sing_box_python-1.13.18/singbox-go/common/ja3/README.md +3 -0
  171. sing_box_python-1.13.18/singbox-go/common/ja3/error.go +31 -0
  172. sing_box_python-1.13.18/singbox-go/common/ja3/ja3.go +83 -0
  173. sing_box_python-1.13.18/singbox-go/common/ja3/parser.go +357 -0
  174. sing_box_python-1.13.18/singbox-go/common/ktls/ktls.go +133 -0
  175. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_alert.go +80 -0
  176. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_cipher_suites_linux.go +326 -0
  177. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_close.go +67 -0
  178. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_const.go +24 -0
  179. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_handshake_messages.go +186 -0
  180. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_key_update.go +173 -0
  181. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_linux.go +329 -0
  182. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_prf.go +24 -0
  183. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_read.go +293 -0
  184. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_read_wait.go +41 -0
  185. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_nolinkname.go +15 -0
  186. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_nonlinux.go +15 -0
  187. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_oldgo.go +15 -0
  188. sing_box_python-1.13.18/singbox-go/common/ktls/ktls_write.go +81 -0
  189. sing_box_python-1.13.18/singbox-go/common/listener/listener.go +172 -0
  190. sing_box_python-1.13.18/singbox-go/common/listener/listener_tcp.go +111 -0
  191. sing_box_python-1.13.18/singbox-go/common/listener/listener_udp.go +207 -0
  192. sing_box_python-1.13.18/singbox-go/common/mux/client.go +59 -0
  193. sing_box_python-1.13.18/singbox-go/common/mux/router.go +80 -0
  194. sing_box_python-1.13.18/singbox-go/common/pipelistener/listener.go +57 -0
  195. sing_box_python-1.13.18/singbox-go/common/process/searcher.go +39 -0
  196. sing_box_python-1.13.18/singbox-go/common/process/searcher_android.go +52 -0
  197. sing_box_python-1.13.18/singbox-go/common/process/searcher_darwin.go +45 -0
  198. sing_box_python-1.13.18/singbox-go/common/process/searcher_darwin_shared.go +269 -0
  199. sing_box_python-1.13.18/singbox-go/common/process/searcher_linux.go +85 -0
  200. sing_box_python-1.13.18/singbox-go/common/process/searcher_linux_shared.go +384 -0
  201. sing_box_python-1.13.18/singbox-go/common/process/searcher_linux_shared_test.go +60 -0
  202. sing_box_python-1.13.18/singbox-go/common/process/searcher_stub.go +11 -0
  203. sing_box_python-1.13.18/singbox-go/common/process/searcher_windows.go +66 -0
  204. sing_box_python-1.13.18/singbox-go/common/redir/redir_darwin.go +64 -0
  205. sing_box_python-1.13.18/singbox-go/common/redir/redir_linux.go +40 -0
  206. sing_box_python-1.13.18/singbox-go/common/redir/redir_other.go +13 -0
  207. sing_box_python-1.13.18/singbox-go/common/redir/tproxy_linux.go +59 -0
  208. sing_box_python-1.13.18/singbox-go/common/redir/tproxy_other.go +22 -0
  209. sing_box_python-1.13.18/singbox-go/common/settings/proxy_android.go +73 -0
  210. sing_box_python-1.13.18/singbox-go/common/settings/proxy_darwin.go +121 -0
  211. sing_box_python-1.13.18/singbox-go/common/settings/proxy_linux.go +176 -0
  212. sing_box_python-1.13.18/singbox-go/common/settings/proxy_stub.go +14 -0
  213. sing_box_python-1.13.18/singbox-go/common/settings/proxy_windows.go +43 -0
  214. sing_box_python-1.13.18/singbox-go/common/settings/system_proxy.go +7 -0
  215. sing_box_python-1.13.18/singbox-go/common/settings/wifi.go +9 -0
  216. sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux.go +46 -0
  217. sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_connman.go +168 -0
  218. sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_iwd.go +190 -0
  219. sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_nm.go +165 -0
  220. sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_wpa.go +226 -0
  221. sing_box_python-1.13.18/singbox-go/common/settings/wifi_stub.go +28 -0
  222. sing_box_python-1.13.18/singbox-go/common/settings/wifi_windows.go +144 -0
  223. sing_box_python-1.13.18/singbox-go/common/sniff/bittorrent.go +107 -0
  224. sing_box_python-1.13.18/singbox-go/common/sniff/bittorrent_test.go +110 -0
  225. sing_box_python-1.13.18/singbox-go/common/sniff/dns.go +57 -0
  226. sing_box_python-1.13.18/singbox-go/common/sniff/dns_test.go +53 -0
  227. sing_box_python-1.13.18/singbox-go/common/sniff/dtls.go +32 -0
  228. sing_box_python-1.13.18/singbox-go/common/sniff/dtls_test.go +33 -0
  229. sing_box_python-1.13.18/singbox-go/common/sniff/http.go +28 -0
  230. sing_box_python-1.13.18/singbox-go/common/sniff/http_test.go +30 -0
  231. sing_box_python-1.13.18/singbox-go/common/sniff/internal/qtls/qtls.go +147 -0
  232. sing_box_python-1.13.18/singbox-go/common/sniff/ntp.go +58 -0
  233. sing_box_python-1.13.18/singbox-go/common/sniff/ntp_test.go +33 -0
  234. sing_box_python-1.13.18/singbox-go/common/sniff/quic.go +373 -0
  235. sing_box_python-1.13.18/singbox-go/common/sniff/quic_blacklist.go +24 -0
  236. sing_box_python-1.13.18/singbox-go/common/sniff/quic_capture_test.go +188 -0
  237. sing_box_python-1.13.18/singbox-go/common/sniff/quic_test.go +93 -0
  238. sing_box_python-1.13.18/singbox-go/common/sniff/rdp.go +91 -0
  239. sing_box_python-1.13.18/singbox-go/common/sniff/rdp_test.go +25 -0
  240. sing_box_python-1.13.18/singbox-go/common/sniff/sniff.go +88 -0
  241. sing_box_python-1.13.18/singbox-go/common/sniff/ssh.go +31 -0
  242. sing_box_python-1.13.18/singbox-go/common/sniff/ssh_test.go +47 -0
  243. sing_box_python-1.13.18/singbox-go/common/sniff/stun.go +25 -0
  244. sing_box_python-1.13.18/singbox-go/common/sniff/stun_test.go +32 -0
  245. sing_box_python-1.13.18/singbox-go/common/sniff/tls.go +33 -0
  246. sing_box_python-1.13.18/singbox-go/common/srs/binary.go +692 -0
  247. sing_box_python-1.13.18/singbox-go/common/srs/compat_test.go +494 -0
  248. sing_box_python-1.13.18/singbox-go/common/srs/ip_cidr.go +44 -0
  249. sing_box_python-1.13.18/singbox-go/common/srs/ip_set.go +98 -0
  250. sing_box_python-1.13.18/singbox-go/common/taskmonitor/monitor.go +31 -0
  251. sing_box_python-1.13.18/singbox-go/common/tls/acme.go +165 -0
  252. sing_box_python-1.13.18/singbox-go/common/tls/acme_contstant.go +3 -0
  253. sing_box_python-1.13.18/singbox-go/common/tls/acme_stub.go +17 -0
  254. sing_box_python-1.13.18/singbox-go/common/tls/client.go +139 -0
  255. sing_box_python-1.13.18/singbox-go/common/tls/common.go +12 -0
  256. sing_box_python-1.13.18/singbox-go/common/tls/config.go +37 -0
  257. sing_box_python-1.13.18/singbox-go/common/tls/ech.go +208 -0
  258. sing_box_python-1.13.18/singbox-go/common/tls/ech_shared.go +81 -0
  259. sing_box_python-1.13.18/singbox-go/common/tls/ech_tag_stub.go +5 -0
  260. sing_box_python-1.13.18/singbox-go/common/tls/ktls.go +67 -0
  261. sing_box_python-1.13.18/singbox-go/common/tls/mkcert.go +65 -0
  262. sing_box_python-1.13.18/singbox-go/common/tls/reality_client.go +332 -0
  263. sing_box_python-1.13.18/singbox-go/common/tls/reality_server.go +235 -0
  264. sing_box_python-1.13.18/singbox-go/common/tls/reality_stub.go +5 -0
  265. sing_box_python-1.13.18/singbox-go/common/tls/server.go +62 -0
  266. sing_box_python-1.13.18/singbox-go/common/tls/std_client.go +240 -0
  267. sing_box_python-1.13.18/singbox-go/common/tls/std_server.go +391 -0
  268. sing_box_python-1.13.18/singbox-go/common/tls/time_wrapper.go +25 -0
  269. sing_box_python-1.13.18/singbox-go/common/tls/utls_client.go +332 -0
  270. sing_box_python-1.13.18/singbox-go/common/tls/utls_stub.go +24 -0
  271. sing_box_python-1.13.18/singbox-go/common/tlsfragment/conn.go +146 -0
  272. sing_box_python-1.13.18/singbox-go/common/tlsfragment/conn_test.go +42 -0
  273. sing_box_python-1.13.18/singbox-go/common/tlsfragment/index.go +133 -0
  274. sing_box_python-1.13.18/singbox-go/common/tlsfragment/index_test.go +20 -0
  275. sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_darwin.go +93 -0
  276. sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_linux.go +40 -0
  277. sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_stub.go +18 -0
  278. sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_windows.go +31 -0
  279. sing_box_python-1.13.18/singbox-go/common/uot/router.go +86 -0
  280. sing_box_python-1.13.18/singbox-go/common/urltest/urltest.go +142 -0
  281. sing_box_python-1.13.18/singbox-go/constant/certificate.go +8 -0
  282. sing_box_python-1.13.18/singbox-go/constant/cgo.go +5 -0
  283. sing_box_python-1.13.18/singbox-go/constant/cgo_disabled.go +5 -0
  284. sing_box_python-1.13.18/singbox-go/constant/dhcp.go +8 -0
  285. sing_box_python-1.13.18/singbox-go/constant/dns.go +37 -0
  286. sing_box_python-1.13.18/singbox-go/constant/err.go +7 -0
  287. sing_box_python-1.13.18/singbox-go/constant/goos/gengoos.go +68 -0
  288. sing_box_python-1.13.18/singbox-go/constant/goos/goos.go +12 -0
  289. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_aix.go +25 -0
  290. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_android.go +25 -0
  291. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_darwin.go +25 -0
  292. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_dragonfly.go +25 -0
  293. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_freebsd.go +25 -0
  294. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_hurd.go +25 -0
  295. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_illumos.go +25 -0
  296. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_ios.go +25 -0
  297. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_js.go +25 -0
  298. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_linux.go +25 -0
  299. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_netbsd.go +25 -0
  300. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_openbsd.go +25 -0
  301. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_plan9.go +25 -0
  302. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_solaris.go +25 -0
  303. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_windows.go +25 -0
  304. sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_zos.go +25 -0
  305. sing_box_python-1.13.18/singbox-go/constant/hysteria2.go +7 -0
  306. sing_box_python-1.13.18/singbox-go/constant/network.go +58 -0
  307. sing_box_python-1.13.18/singbox-go/constant/os.go +37 -0
  308. sing_box_python-1.13.18/singbox-go/constant/path.go +41 -0
  309. sing_box_python-1.13.18/singbox-go/constant/path_unix.go +17 -0
  310. sing_box_python-1.13.18/singbox-go/constant/protocol.go +22 -0
  311. sing_box_python-1.13.18/singbox-go/constant/proxy.go +98 -0
  312. sing_box_python-1.13.18/singbox-go/constant/quic.go +5 -0
  313. sing_box_python-1.13.18/singbox-go/constant/quic_stub.go +5 -0
  314. sing_box_python-1.13.18/singbox-go/constant/rule.go +45 -0
  315. sing_box_python-1.13.18/singbox-go/constant/speed.go +3 -0
  316. sing_box_python-1.13.18/singbox-go/constant/time.go +3 -0
  317. sing_box_python-1.13.18/singbox-go/constant/timeout.go +36 -0
  318. sing_box_python-1.13.18/singbox-go/constant/v2ray.go +9 -0
  319. sing_box_python-1.13.18/singbox-go/constant/version.go +3 -0
  320. sing_box_python-1.13.18/singbox-go/daemon/deprecated.go +29 -0
  321. sing_box_python-1.13.18/singbox-go/daemon/instance.go +148 -0
  322. sing_box_python-1.13.18/singbox-go/daemon/platform.go +9 -0
  323. sing_box_python-1.13.18/singbox-go/daemon/started_service.go +1054 -0
  324. sing_box_python-1.13.18/singbox-go/daemon/started_service.pb.go +2072 -0
  325. sing_box_python-1.13.18/singbox-go/daemon/started_service.proto +217 -0
  326. sing_box_python-1.13.18/singbox-go/daemon/started_service_grpc.pb.go +916 -0
  327. sing_box_python-1.13.18/singbox-go/debug.go +34 -0
  328. sing_box_python-1.13.18/singbox-go/debug_http.go +76 -0
  329. sing_box_python-1.13.18/singbox-go/debug_stub.go +7 -0
  330. sing_box_python-1.13.18/singbox-go/debug_unix.go +25 -0
  331. sing_box_python-1.13.18/singbox-go/dns/client.go +704 -0
  332. sing_box_python-1.13.18/singbox-go/dns/client_log.go +69 -0
  333. sing_box_python-1.13.18/singbox-go/dns/client_truncate.go +30 -0
  334. sing_box_python-1.13.18/singbox-go/dns/extension_edns0_subnet.go +57 -0
  335. sing_box_python-1.13.18/singbox-go/dns/rcode.go +18 -0
  336. sing_box_python-1.13.18/singbox-go/dns/router.go +460 -0
  337. sing_box_python-1.13.18/singbox-go/dns/transport/conn_pool.go +444 -0
  338. sing_box_python-1.13.18/singbox-go/dns/transport/dhcp/dhcp.go +316 -0
  339. sing_box_python-1.13.18/singbox-go/dns/transport/dhcp/dhcp_shared.go +205 -0
  340. sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/fakeip.go +79 -0
  341. sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/memory.go +93 -0
  342. sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/store.go +161 -0
  343. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts.go +87 -0
  344. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_file.go +102 -0
  345. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_test.go +16 -0
  346. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_unix.go +5 -0
  347. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_windows.go +17 -0
  348. sing_box_python-1.13.18/singbox-go/dns/transport/hosts/testdata/hosts +2 -0
  349. sing_box_python-1.13.18/singbox-go/dns/transport/https.go +227 -0
  350. sing_box_python-1.13.18/singbox-go/dns/transport/https_transport.go +90 -0
  351. sing_box_python-1.13.18/singbox-go/dns/transport/local/local.go +94 -0
  352. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin.go +140 -0
  353. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin_dhcp.go +16 -0
  354. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin_nodhcp.go +15 -0
  355. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved.go +13 -0
  356. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved_linux.go +501 -0
  357. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved_stub.go +19 -0
  358. sing_box_python-1.13.18/singbox-go/dns/transport/local/local_shared.go +183 -0
  359. sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv.go +145 -0
  360. sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_default.go +24 -0
  361. sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_test.go +13 -0
  362. sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_unix.go +156 -0
  363. sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_windows.go +119 -0
  364. sing_box_python-1.13.18/singbox-go/dns/transport/quic/http3.go +211 -0
  365. sing_box_python-1.13.18/singbox-go/dns/transport/quic/quic.go +203 -0
  366. sing_box_python-1.13.18/singbox-go/dns/transport/tcp.go +137 -0
  367. sing_box_python-1.13.18/singbox-go/dns/transport/tls.go +146 -0
  368. sing_box_python-1.13.18/singbox-go/dns/transport/udp.go +262 -0
  369. sing_box_python-1.13.18/singbox-go/dns/transport_adapter.go +78 -0
  370. sing_box_python-1.13.18/singbox-go/dns/transport_dialer.go +105 -0
  371. sing_box_python-1.13.18/singbox-go/dns/transport_manager.go +300 -0
  372. sing_box_python-1.13.18/singbox-go/dns/transport_registry.go +72 -0
  373. sing_box_python-1.13.18/singbox-go/docs/CNAME +1 -0
  374. sing_box_python-1.13.18/singbox-go/docs/assets/icon.svg +37 -0
  375. sing_box_python-1.13.18/singbox-go/docs/changelog.md +4058 -0
  376. sing_box_python-1.13.18/singbox-go/docs/clients/android/features.md +66 -0
  377. sing_box_python-1.13.18/singbox-go/docs/clients/android/index.md +23 -0
  378. sing_box_python-1.13.18/singbox-go/docs/clients/apple/features.md +54 -0
  379. sing_box_python-1.13.18/singbox-go/docs/clients/apple/index.md +41 -0
  380. sing_box_python-1.13.18/singbox-go/docs/clients/general.md +63 -0
  381. sing_box_python-1.13.18/singbox-go/docs/clients/index.md +13 -0
  382. sing_box_python-1.13.18/singbox-go/docs/clients/index.zh.md +12 -0
  383. sing_box_python-1.13.18/singbox-go/docs/clients/privacy.md +18 -0
  384. sing_box_python-1.13.18/singbox-go/docs/configuration/certificate/index.md +59 -0
  385. sing_box_python-1.13.18/singbox-go/docs/configuration/certificate/index.zh.md +59 -0
  386. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/fakeip.md +31 -0
  387. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/fakeip.zh.md +31 -0
  388. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/index.md +91 -0
  389. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/index.zh.md +93 -0
  390. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule.md +549 -0
  391. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule.zh.md +553 -0
  392. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule_action.md +144 -0
  393. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule_action.zh.md +144 -0
  394. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/dhcp.md +38 -0
  395. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/dhcp.zh.md +38 -0
  396. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/fakeip.md +35 -0
  397. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/fakeip.zh.md +35 -0
  398. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/hosts.md +96 -0
  399. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/hosts.zh.md +96 -0
  400. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/http3.md +71 -0
  401. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/http3.zh.md +71 -0
  402. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/https.md +71 -0
  403. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/https.zh.md +71 -0
  404. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/index.md +48 -0
  405. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/index.zh.md +48 -0
  406. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/legacy.md +113 -0
  407. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/legacy.zh.md +113 -0
  408. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/local.md +61 -0
  409. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/local.zh.md +61 -0
  410. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/quic.md +58 -0
  411. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/quic.zh.md +58 -0
  412. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/resolved.md +84 -0
  413. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/resolved.zh.md +83 -0
  414. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tailscale.md +83 -0
  415. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tailscale.zh.md +83 -0
  416. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tcp.md +52 -0
  417. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tcp.zh.md +52 -0
  418. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tls.md +58 -0
  419. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tls.zh.md +58 -0
  420. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/udp.md +52 -0
  421. sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/udp.zh.md +52 -0
  422. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/index.md +29 -0
  423. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/index.zh.md +29 -0
  424. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/tailscale.md +157 -0
  425. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/tailscale.zh.md +156 -0
  426. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/wireguard.md +129 -0
  427. sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/wireguard.zh.md +131 -0
  428. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/cache-file.md +54 -0
  429. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/cache-file.zh.md +51 -0
  430. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/clash-api.md +166 -0
  431. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/clash-api.zh.md +164 -0
  432. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/index.md +26 -0
  433. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/index.zh.md +26 -0
  434. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/v2ray-api.md +50 -0
  435. sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/v2ray-api.zh.md +50 -0
  436. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/anytls.md +61 -0
  437. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/anytls.zh.md +61 -0
  438. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/direct.md +36 -0
  439. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/direct.zh.md +37 -0
  440. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/http.md +47 -0
  441. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/http.zh.md +47 -0
  442. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria.md +107 -0
  443. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria.zh.md +107 -0
  444. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria2.md +146 -0
  445. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria2.zh.md +143 -0
  446. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/index.md +40 -0
  447. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/index.zh.md +40 -0
  448. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/mixed.md +44 -0
  449. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/mixed.zh.md +44 -0
  450. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/naive.md +63 -0
  451. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/naive.zh.md +63 -0
  452. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/redirect.md +18 -0
  453. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/redirect.zh.md +17 -0
  454. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowsocks.md +96 -0
  455. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowsocks.zh.md +96 -0
  456. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowtls.md +107 -0
  457. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowtls.zh.md +107 -0
  458. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/socks.md +31 -0
  459. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/socks.zh.md +31 -0
  460. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tproxy.md +28 -0
  461. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tproxy.zh.md +28 -0
  462. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/trojan.md +68 -0
  463. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/trojan.zh.md +68 -0
  464. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tuic.md +78 -0
  465. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tuic.zh.md +78 -0
  466. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tun.md +605 -0
  467. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tun.zh.md +588 -0
  468. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vless.md +59 -0
  469. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vless.zh.md +59 -0
  470. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vmess.md +54 -0
  471. sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vmess.zh.md +54 -0
  472. sing_box_python-1.13.18/singbox-go/docs/configuration/index.md +53 -0
  473. sing_box_python-1.13.18/singbox-go/docs/configuration/index.zh.md +53 -0
  474. sing_box_python-1.13.18/singbox-go/docs/configuration/log/index.md +33 -0
  475. sing_box_python-1.13.18/singbox-go/docs/configuration/log/index.zh.md +33 -0
  476. sing_box_python-1.13.18/singbox-go/docs/configuration/ntp/index.md +50 -0
  477. sing_box_python-1.13.18/singbox-go/docs/configuration/ntp/index.zh.md +49 -0
  478. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/anytls.md +73 -0
  479. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/anytls.zh.md +73 -0
  480. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/block.md +16 -0
  481. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/block.zh.md +18 -0
  482. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/direct.md +48 -0
  483. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/direct.zh.md +46 -0
  484. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/dns.md +26 -0
  485. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/dns.zh.md +26 -0
  486. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/http.md +58 -0
  487. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/http.zh.md +58 -0
  488. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria.md +141 -0
  489. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria.zh.md +142 -0
  490. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria2.md +118 -0
  491. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria2.zh.md +116 -0
  492. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/index.md +49 -0
  493. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/index.zh.md +49 -0
  494. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/naive.md +116 -0
  495. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/naive.zh.md +116 -0
  496. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/selector.md +38 -0
  497. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/selector.zh.md +38 -0
  498. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowsocks.md +102 -0
  499. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowsocks.zh.md +102 -0
  500. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowtls.md +56 -0
  501. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowtls.zh.md +56 -0
  502. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/socks.md +66 -0
  503. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/socks.zh.md +66 -0
  504. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/ssh.md +71 -0
  505. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/ssh.zh.md +71 -0
  506. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tor.md +51 -0
  507. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tor.zh.md +51 -0
  508. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/trojan.md +62 -0
  509. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/trojan.zh.md +62 -0
  510. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tuic.md +96 -0
  511. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tuic.zh.md +104 -0
  512. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/urltest.md +49 -0
  513. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/urltest.zh.md +49 -0
  514. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vless.md +82 -0
  515. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vless.zh.md +82 -0
  516. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vmess.md +107 -0
  517. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vmess.zh.md +107 -0
  518. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/wireguard.md +168 -0
  519. sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/wireguard.zh.md +142 -0
  520. sing_box_python-1.13.18/singbox-go/docs/configuration/route/geoip.md +41 -0
  521. sing_box_python-1.13.18/singbox-go/docs/configuration/route/geoip.zh.md +41 -0
  522. sing_box_python-1.13.18/singbox-go/docs/configuration/route/geosite.md +41 -0
  523. sing_box_python-1.13.18/singbox-go/docs/configuration/route/geosite.zh.md +41 -0
  524. sing_box_python-1.13.18/singbox-go/docs/configuration/route/index.md +146 -0
  525. sing_box_python-1.13.18/singbox-go/docs/configuration/route/index.zh.md +145 -0
  526. sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule.md +506 -0
  527. sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule.zh.md +504 -0
  528. sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule_action.md +319 -0
  529. sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule_action.zh.md +308 -0
  530. sing_box_python-1.13.18/singbox-go/docs/configuration/route/sniff.md +32 -0
  531. sing_box_python-1.13.18/singbox-go/docs/configuration/route/sniff.zh.md +32 -0
  532. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/adguard.md +65 -0
  533. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/adguard.zh.md +64 -0
  534. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/headless-rule.md +297 -0
  535. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/headless-rule.zh.md +291 -0
  536. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/index.md +115 -0
  537. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/index.zh.md +115 -0
  538. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/source-format.md +49 -0
  539. sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/source-format.zh.md +49 -0
  540. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ccm.md +131 -0
  541. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ccm.zh.md +131 -0
  542. sing_box_python-1.13.18/singbox-go/docs/configuration/service/derp.md +135 -0
  543. sing_box_python-1.13.18/singbox-go/docs/configuration/service/derp.zh.md +135 -0
  544. sing_box_python-1.13.18/singbox-go/docs/configuration/service/index.md +34 -0
  545. sing_box_python-1.13.18/singbox-go/docs/configuration/service/index.zh.md +34 -0
  546. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ocm.md +185 -0
  547. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ocm.zh.md +186 -0
  548. sing_box_python-1.13.18/singbox-go/docs/configuration/service/resolved.md +44 -0
  549. sing_box_python-1.13.18/singbox-go/docs/configuration/service/resolved.zh.md +44 -0
  550. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ssm-api.md +58 -0
  551. sing_box_python-1.13.18/singbox-go/docs/configuration/service/ssm-api.zh.md +58 -0
  552. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dial.md +270 -0
  553. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dial.zh.md +258 -0
  554. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dns01_challenge.md +73 -0
  555. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dns01_challenge.zh.md +73 -0
  556. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/listen.md +202 -0
  557. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/listen.zh.md +200 -0
  558. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/multiplex.md +86 -0
  559. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/multiplex.zh.md +85 -0
  560. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/pre-match.md +50 -0
  561. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/pre-match.zh.md +47 -0
  562. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tcp-brutal.md +28 -0
  563. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tcp-brutal.zh.md +28 -0
  564. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tls.md +680 -0
  565. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tls.zh.md +670 -0
  566. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/udp-over-tcp.md +82 -0
  567. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/udp-over-tcp.zh.md +82 -0
  568. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/v2ray-transport.md +229 -0
  569. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/v2ray-transport.zh.md +218 -0
  570. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/wifi-state.md +41 -0
  571. sing_box_python-1.13.18/singbox-go/docs/configuration/shared/wifi-state.zh.md +41 -0
  572. sing_box_python-1.13.18/singbox-go/docs/deprecated.md +129 -0
  573. sing_box_python-1.13.18/singbox-go/docs/deprecated.zh.md +121 -0
  574. sing_box_python-1.13.18/singbox-go/docs/index.md +31 -0
  575. sing_box_python-1.13.18/singbox-go/docs/index.zh.md +31 -0
  576. sing_box_python-1.13.18/singbox-go/docs/installation/build-from-source.md +125 -0
  577. sing_box_python-1.13.18/singbox-go/docs/installation/build-from-source.zh.md +129 -0
  578. sing_box_python-1.13.18/singbox-go/docs/installation/docker.md +31 -0
  579. sing_box_python-1.13.18/singbox-go/docs/installation/docker.zh.md +31 -0
  580. sing_box_python-1.13.18/singbox-go/docs/installation/package-manager.md +157 -0
  581. sing_box_python-1.13.18/singbox-go/docs/installation/package-manager.zh.md +150 -0
  582. sing_box_python-1.13.18/singbox-go/docs/installation/tools/arch-install.sh +22 -0
  583. sing_box_python-1.13.18/singbox-go/docs/installation/tools/deb-install.sh +23 -0
  584. sing_box_python-1.13.18/singbox-go/docs/installation/tools/install.sh +127 -0
  585. sing_box_python-1.13.18/singbox-go/docs/installation/tools/rpm-install.sh +22 -0
  586. sing_box_python-1.13.18/singbox-go/docs/installation/tools/sing-box.repo +7 -0
  587. sing_box_python-1.13.18/singbox-go/docs/manual/misc/anytls-client-metadata.md +67 -0
  588. sing_box_python-1.13.18/singbox-go/docs/manual/misc/anytls-client-metadata.zh.md +35 -0
  589. sing_box_python-1.13.18/singbox-go/docs/manual/misc/tunnelvision.md +38 -0
  590. sing_box_python-1.13.18/singbox-go/docs/manual/proxy/client.md +503 -0
  591. sing_box_python-1.13.18/singbox-go/docs/manual/proxy/server.md +10 -0
  592. sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/hysteria2.md +212 -0
  593. sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/shadowsocks.md +125 -0
  594. sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/trojan.md +200 -0
  595. sing_box_python-1.13.18/singbox-go/docs/migration.md +1191 -0
  596. sing_box_python-1.13.18/singbox-go/docs/migration.zh.md +1189 -0
  597. sing_box_python-1.13.18/singbox-go/docs/sponsors.md +26 -0
  598. sing_box_python-1.13.18/singbox-go/docs/support.md +12 -0
  599. sing_box_python-1.13.18/singbox-go/docs/support.zh.md +13 -0
  600. sing_box_python-1.13.18/singbox-go/experimental/cachefile/cache.go +361 -0
  601. sing_box_python-1.13.18/singbox-go/experimental/cachefile/fakeip.go +194 -0
  602. sing_box_python-1.13.18/singbox-go/experimental/cachefile/rdrc.go +109 -0
  603. sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta.go +96 -0
  604. sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta_group.go +136 -0
  605. sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta_upgrade.go +36 -0
  606. sing_box_python-1.13.18/singbox-go/experimental/clashapi/cache.go +44 -0
  607. sing_box_python-1.13.18/singbox-go/experimental/clashapi/common.go +17 -0
  608. sing_box_python-1.13.18/singbox-go/experimental/clashapi/configs.go +71 -0
  609. sing_box_python-1.13.18/singbox-go/experimental/clashapi/connections.go +108 -0
  610. sing_box_python-1.13.18/singbox-go/experimental/clashapi/ctxkeys.go +14 -0
  611. sing_box_python-1.13.18/singbox-go/experimental/clashapi/dns.go +82 -0
  612. sing_box_python-1.13.18/singbox-go/experimental/clashapi/errors.go +22 -0
  613. sing_box_python-1.13.18/singbox-go/experimental/clashapi/profile.go +53 -0
  614. sing_box_python-1.13.18/singbox-go/experimental/clashapi/provider.go +74 -0
  615. sing_box_python-1.13.18/singbox-go/experimental/clashapi/proxies.go +234 -0
  616. sing_box_python-1.13.18/singbox-go/experimental/clashapi/ruleprovider.go +58 -0
  617. sing_box_python-1.13.18/singbox-go/experimental/clashapi/rules.go +40 -0
  618. sing_box_python-1.13.18/singbox-go/experimental/clashapi/script.go +98 -0
  619. sing_box_python-1.13.18/singbox-go/experimental/clashapi/server.go +435 -0
  620. sing_box_python-1.13.18/singbox-go/experimental/clashapi/server_fs.go +18 -0
  621. sing_box_python-1.13.18/singbox-go/experimental/clashapi/server_resources.go +170 -0
  622. sing_box_python-1.13.18/singbox-go/experimental/clashapi/trafficontrol/manager.go +181 -0
  623. sing_box_python-1.13.18/singbox-go/experimental/clashapi/trafficontrol/tracker.go +254 -0
  624. sing_box_python-1.13.18/singbox-go/experimental/clashapi.go +81 -0
  625. sing_box_python-1.13.18/singbox-go/experimental/deprecated/constants.go +111 -0
  626. sing_box_python-1.13.18/singbox-go/experimental/deprecated/manager.go +19 -0
  627. sing_box_python-1.13.18/singbox-go/experimental/deprecated/stderr.go +46 -0
  628. sing_box_python-1.13.18/singbox-go/experimental/libbox/build_info.go +234 -0
  629. sing_box_python-1.13.18/singbox-go/experimental/libbox/command.go +9 -0
  630. sing_box_python-1.13.18/singbox-go/experimental/libbox/command_client.go +578 -0
  631. sing_box_python-1.13.18/singbox-go/experimental/libbox/command_server.go +276 -0
  632. sing_box_python-1.13.18/singbox-go/experimental/libbox/command_types.go +420 -0
  633. sing_box_python-1.13.18/singbox-go/experimental/libbox/config.go +209 -0
  634. sing_box_python-1.13.18/singbox-go/experimental/libbox/connection_owner_darwin.go +57 -0
  635. sing_box_python-1.13.18/singbox-go/experimental/libbox/deprecated.go +33 -0
  636. sing_box_python-1.13.18/singbox-go/experimental/libbox/dns.go +147 -0
  637. sing_box_python-1.13.18/singbox-go/experimental/libbox/fdroid.go +493 -0
  638. sing_box_python-1.13.18/singbox-go/experimental/libbox/fdroid_mirrors.go +92 -0
  639. sing_box_python-1.13.18/singbox-go/experimental/libbox/ffi.json +257 -0
  640. sing_box_python-1.13.18/singbox-go/experimental/libbox/http.go +274 -0
  641. sing_box_python-1.13.18/singbox-go/experimental/libbox/internal/procfs/procfs.go +148 -0
  642. sing_box_python-1.13.18/singbox-go/experimental/libbox/iterator.go +63 -0
  643. sing_box_python-1.13.18/singbox-go/experimental/libbox/link_flags_stub.go +11 -0
  644. sing_box_python-1.13.18/singbox-go/experimental/libbox/link_flags_unix.go +32 -0
  645. sing_box_python-1.13.18/singbox-go/experimental/libbox/log.go +34 -0
  646. sing_box_python-1.13.18/singbox-go/experimental/libbox/memory.go +26 -0
  647. sing_box_python-1.13.18/singbox-go/experimental/libbox/monitor.go +116 -0
  648. sing_box_python-1.13.18/singbox-go/experimental/libbox/panic.go +12 -0
  649. sing_box_python-1.13.18/singbox-go/experimental/libbox/pidfd_android.go +19 -0
  650. sing_box_python-1.13.18/singbox-go/experimental/libbox/platform.go +97 -0
  651. sing_box_python-1.13.18/singbox-go/experimental/libbox/pprof.go +33 -0
  652. sing_box_python-1.13.18/singbox-go/experimental/libbox/profile_import.go +278 -0
  653. sing_box_python-1.13.18/singbox-go/experimental/libbox/remote_profile.go +41 -0
  654. sing_box_python-1.13.18/singbox-go/experimental/libbox/semver.go +27 -0
  655. sing_box_python-1.13.18/singbox-go/experimental/libbox/semver_test.go +16 -0
  656. sing_box_python-1.13.18/singbox-go/experimental/libbox/service.go +261 -0
  657. sing_box_python-1.13.18/singbox-go/experimental/libbox/service_other.go +9 -0
  658. sing_box_python-1.13.18/singbox-go/experimental/libbox/service_windows.go +7 -0
  659. sing_box_python-1.13.18/singbox-go/experimental/libbox/setup.go +87 -0
  660. sing_box_python-1.13.18/singbox-go/experimental/libbox/tun.go +168 -0
  661. sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_darwin.go +34 -0
  662. sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_darwin.go +11 -0
  663. sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_linux.go +26 -0
  664. sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_other.go +9 -0
  665. sing_box_python-1.13.18/singbox-go/experimental/locale/locale.go +32 -0
  666. sing_box_python-1.13.18/singbox-go/experimental/locale/locale_zh_CN.go +11 -0
  667. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/server.go +82 -0
  668. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.go +222 -0
  669. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.pb.go +538 -0
  670. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.proto +53 -0
  671. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats_grpc.pb.go +194 -0
  672. sing_box_python-1.13.18/singbox-go/experimental/v2rayapi.go +24 -0
  673. sing_box_python-1.13.18/singbox-go/go.mod +168 -0
  674. sing_box_python-1.13.18/singbox-go/go.sum +403 -0
  675. sing_box_python-1.13.18/singbox-go/include/ccm.go +12 -0
  676. sing_box_python-1.13.18/singbox-go/include/ccm_stub.go +20 -0
  677. sing_box_python-1.13.18/singbox-go/include/ccm_stub_darwin.go +20 -0
  678. sing_box_python-1.13.18/singbox-go/include/clashapi.go +5 -0
  679. sing_box_python-1.13.18/singbox-go/include/clashapi_stub.go +19 -0
  680. sing_box_python-1.13.18/singbox-go/include/dhcp.go +12 -0
  681. sing_box_python-1.13.18/singbox-go/include/dhcp_stub.go +20 -0
  682. sing_box_python-1.13.18/singbox-go/include/naive_outbound.go +12 -0
  683. sing_box_python-1.13.18/singbox-go/include/naive_outbound_stub.go +20 -0
  684. sing_box_python-1.13.18/singbox-go/include/ocm.go +12 -0
  685. sing_box_python-1.13.18/singbox-go/include/ocm_stub.go +20 -0
  686. sing_box_python-1.13.18/singbox-go/include/oom_killer.go +10 -0
  687. sing_box_python-1.13.18/singbox-go/include/quic.go +32 -0
  688. sing_box_python-1.13.18/singbox-go/include/quic_stub.go +71 -0
  689. sing_box_python-1.13.18/singbox-go/include/registry.go +155 -0
  690. sing_box_python-1.13.18/singbox-go/include/tailscale.go +23 -0
  691. sing_box_python-1.13.18/singbox-go/include/tailscale_stub.go +34 -0
  692. sing_box_python-1.13.18/singbox-go/include/tz_android.go +21 -0
  693. sing_box_python-1.13.18/singbox-go/include/tz_ios.go +30 -0
  694. sing_box_python-1.13.18/singbox-go/include/v2rayapi.go +5 -0
  695. sing_box_python-1.13.18/singbox-go/include/v2rayapi_stub.go +17 -0
  696. sing_box_python-1.13.18/singbox-go/include/wireguard.go +12 -0
  697. sing_box_python-1.13.18/singbox-go/include/wireguard_stub.go +20 -0
  698. sing_box_python-1.13.18/singbox-go/log/export.go +84 -0
  699. sing_box_python-1.13.18/singbox-go/log/factory.go +30 -0
  700. sing_box_python-1.13.18/singbox-go/log/format.go +174 -0
  701. sing_box_python-1.13.18/singbox-go/log/id.go +30 -0
  702. sing_box_python-1.13.18/singbox-go/log/level.go +59 -0
  703. sing_box_python-1.13.18/singbox-go/log/log.go +71 -0
  704. sing_box_python-1.13.18/singbox-go/log/nop.go +88 -0
  705. sing_box_python-1.13.18/singbox-go/log/observable.go +199 -0
  706. sing_box_python-1.13.18/singbox-go/log/override.go +19 -0
  707. sing_box_python-1.13.18/singbox-go/log/platform.go +5 -0
  708. sing_box_python-1.13.18/singbox-go/mkdocs.yml +287 -0
  709. sing_box_python-1.13.18/singbox-go/option/anytls.go +26 -0
  710. sing_box_python-1.13.18/singbox-go/option/ccm.go +20 -0
  711. sing_box_python-1.13.18/singbox-go/option/certificate.go +36 -0
  712. sing_box_python-1.13.18/singbox-go/option/debug.go +14 -0
  713. sing_box_python-1.13.18/singbox-go/option/direct.go +39 -0
  714. sing_box_python-1.13.18/singbox-go/option/dns.go +409 -0
  715. sing_box_python-1.13.18/singbox-go/option/dns_record.go +102 -0
  716. sing_box_python-1.13.18/singbox-go/option/endpoint.go +47 -0
  717. sing_box_python-1.13.18/singbox-go/option/experimental.go +54 -0
  718. sing_box_python-1.13.18/singbox-go/option/group.go +18 -0
  719. sing_box_python-1.13.18/singbox-go/option/hysteria.go +46 -0
  720. sing_box_python-1.13.18/singbox-go/option/hysteria2.go +124 -0
  721. sing_box_python-1.13.18/singbox-go/option/inbound.go +117 -0
  722. sing_box_python-1.13.18/singbox-go/option/multiplex.go +23 -0
  723. sing_box_python-1.13.18/singbox-go/option/naive.go +40 -0
  724. sing_box_python-1.13.18/singbox-go/option/ntp.go +11 -0
  725. sing_box_python-1.13.18/singbox-go/option/ocm.go +20 -0
  726. sing_box_python-1.13.18/singbox-go/option/oom_killer.go +14 -0
  727. sing_box_python-1.13.18/singbox-go/option/options.go +100 -0
  728. sing_box_python-1.13.18/singbox-go/option/outbound.go +167 -0
  729. sing_box_python-1.13.18/singbox-go/option/platform.go +105 -0
  730. sing_box_python-1.13.18/singbox-go/option/redir.go +10 -0
  731. sing_box_python-1.13.18/singbox-go/option/resolved.go +49 -0
  732. sing_box_python-1.13.18/singbox-go/option/route.go +33 -0
  733. sing_box_python-1.13.18/singbox-go/option/rule.go +163 -0
  734. sing_box_python-1.13.18/singbox-go/option/rule_action.go +322 -0
  735. sing_box_python-1.13.18/singbox-go/option/rule_dns.go +166 -0
  736. sing_box_python-1.13.18/singbox-go/option/rule_set.go +287 -0
  737. sing_box_python-1.13.18/singbox-go/option/service.go +47 -0
  738. sing_box_python-1.13.18/singbox-go/option/shadowsocks.go +35 -0
  739. sing_box_python-1.13.18/singbox-go/option/shadowsocksr.go +13 -0
  740. sing_box_python-1.13.18/singbox-go/option/shadowtls.go +81 -0
  741. sing_box_python-1.13.18/singbox-go/option/simple.go +40 -0
  742. sing_box_python-1.13.18/singbox-go/option/ssh.go +16 -0
  743. sing_box_python-1.13.18/singbox-go/option/ssmapi.go +12 -0
  744. sing_box_python-1.13.18/singbox-go/option/tailscale.go +122 -0
  745. sing_box_python-1.13.18/singbox-go/option/tls.go +238 -0
  746. sing_box_python-1.13.18/singbox-go/option/tls_acme.go +96 -0
  747. sing_box_python-1.13.18/singbox-go/option/tor.go +9 -0
  748. sing_box_python-1.13.18/singbox-go/option/trojan.go +26 -0
  749. sing_box_python-1.13.18/singbox-go/option/tuic.go +33 -0
  750. sing_box_python-1.13.18/singbox-go/option/tun.go +86 -0
  751. sing_box_python-1.13.18/singbox-go/option/tun_platform.go +14 -0
  752. sing_box_python-1.13.18/singbox-go/option/types.go +195 -0
  753. sing_box_python-1.13.18/singbox-go/option/udp_over_tcp.go +30 -0
  754. sing_box_python-1.13.18/singbox-go/option/v2ray.go +1 -0
  755. sing_box_python-1.13.18/singbox-go/option/v2ray_transport.go +100 -0
  756. sing_box_python-1.13.18/singbox-go/option/vless.go +27 -0
  757. sing_box_python-1.13.18/singbox-go/option/vmess.go +30 -0
  758. sing_box_python-1.13.18/singbox-go/option/wireguard.go +30 -0
  759. sing_box_python-1.13.18/singbox-go/protocol/anytls/client_metadata.go +64 -0
  760. sing_box_python-1.13.18/singbox-go/protocol/anytls/inbound.go +134 -0
  761. sing_box_python-1.13.18/singbox-go/protocol/anytls/outbound.go +156 -0
  762. sing_box_python-1.13.18/singbox-go/protocol/block/outbound.go +42 -0
  763. sing_box_python-1.13.18/singbox-go/protocol/direct/inbound.go +144 -0
  764. sing_box_python-1.13.18/singbox-go/protocol/direct/outbound.go +215 -0
  765. sing_box_python-1.13.18/singbox-go/protocol/dns/handle.go +220 -0
  766. sing_box_python-1.13.18/singbox-go/protocol/dns/outbound.go +63 -0
  767. sing_box_python-1.13.18/singbox-go/protocol/group/selector.go +192 -0
  768. sing_box_python-1.13.18/singbox-go/protocol/group/urltest.go +431 -0
  769. sing_box_python-1.13.18/singbox-go/protocol/http/inbound.go +132 -0
  770. sing_box_python-1.13.18/singbox-go/protocol/http/outbound.go +65 -0
  771. sing_box_python-1.13.18/singbox-go/protocol/hysteria/inbound.go +180 -0
  772. sing_box_python-1.13.18/singbox-go/protocol/hysteria/outbound.go +126 -0
  773. sing_box_python-1.13.18/singbox-go/protocol/hysteria2/inbound.go +213 -0
  774. sing_box_python-1.13.18/singbox-go/protocol/hysteria2/outbound.go +120 -0
  775. sing_box_python-1.13.18/singbox-go/protocol/mixed/inbound.go +168 -0
  776. sing_box_python-1.13.18/singbox-go/protocol/naive/inbound.go +251 -0
  777. sing_box_python-1.13.18/singbox-go/protocol/naive/inbound_conn.go +257 -0
  778. sing_box_python-1.13.18/singbox-go/protocol/naive/outbound.go +275 -0
  779. sing_box_python-1.13.18/singbox-go/protocol/naive/quic/inbound_init.go +132 -0
  780. sing_box_python-1.13.18/singbox-go/protocol/redirect/redirect.go +68 -0
  781. sing_box_python-1.13.18/singbox-go/protocol/redirect/tproxy.go +150 -0
  782. sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound.go +188 -0
  783. sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound_multi.go +212 -0
  784. sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound_relay.go +166 -0
  785. sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/outbound.go +184 -0
  786. sing_box_python-1.13.18/singbox-go/protocol/shadowtls/inbound.go +141 -0
  787. sing_box_python-1.13.18/singbox-go/protocol/shadowtls/outbound.go +104 -0
  788. sing_box_python-1.13.18/singbox-go/protocol/socks/inbound.go +119 -0
  789. sing_box_python-1.13.18/singbox-go/protocol/socks/outbound.go +117 -0
  790. sing_box_python-1.13.18/singbox-go/protocol/ssh/outbound.go +219 -0
  791. sing_box_python-1.13.18/singbox-go/protocol/tailscale/dns_transport.go +372 -0
  792. sing_box_python-1.13.18/singbox-go/protocol/tailscale/endpoint.go +930 -0
  793. sing_box_python-1.13.18/singbox-go/protocol/tailscale/tun_device_unix.go +155 -0
  794. sing_box_python-1.13.18/singbox-go/protocol/tailscale/tun_device_windows.go +136 -0
  795. sing_box_python-1.13.18/singbox-go/protocol/tor/outbound.go +212 -0
  796. sing_box_python-1.13.18/singbox-go/protocol/tor/proxy.go +121 -0
  797. sing_box_python-1.13.18/singbox-go/protocol/trojan/inbound.go +262 -0
  798. sing_box_python-1.13.18/singbox-go/protocol/trojan/outbound.go +164 -0
  799. sing_box_python-1.13.18/singbox-go/protocol/tuic/inbound.go +170 -0
  800. sing_box_python-1.13.18/singbox-go/protocol/tuic/outbound.go +141 -0
  801. sing_box_python-1.13.18/singbox-go/protocol/tun/hook.go +3 -0
  802. sing_box_python-1.13.18/singbox-go/protocol/tun/inbound.go +541 -0
  803. sing_box_python-1.13.18/singbox-go/protocol/vless/inbound.go +222 -0
  804. sing_box_python-1.13.18/singbox-go/protocol/vless/outbound.go +224 -0
  805. sing_box_python-1.13.18/singbox-go/protocol/vmess/inbound.go +228 -0
  806. sing_box_python-1.13.18/singbox-go/protocol/vmess/outbound.go +212 -0
  807. sing_box_python-1.13.18/singbox-go/protocol/wireguard/endpoint.go +288 -0
  808. sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS +1 -0
  809. sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS_OTHERS +1 -0
  810. sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS_WINDOWS +1 -0
  811. sing_box_python-1.13.18/singbox-go/release/LDFLAGS +1 -0
  812. sing_box_python-1.13.18/singbox-go/release/completions/sing-box.bash +1580 -0
  813. sing_box_python-1.13.18/singbox-go/release/completions/sing-box.fish +235 -0
  814. sing_box_python-1.13.18/singbox-go/release/completions/sing-box.zsh +212 -0
  815. sing_box_python-1.13.18/singbox-go/release/config/config.json +41 -0
  816. sing_box_python-1.13.18/singbox-go/release/config/openwrt.conf +5 -0
  817. sing_box_python-1.13.18/singbox-go/release/config/openwrt.init +32 -0
  818. sing_box_python-1.13.18/singbox-go/release/config/openwrt.keep +1 -0
  819. sing_box_python-1.13.18/singbox-go/release/config/openwrt.prerm +4 -0
  820. sing_box_python-1.13.18/singbox-go/release/config/sing-box-split-dns.xml +15 -0
  821. sing_box_python-1.13.18/singbox-go/release/config/sing-box.confd +6 -0
  822. sing_box_python-1.13.18/singbox-go/release/config/sing-box.initd +44 -0
  823. sing_box_python-1.13.18/singbox-go/release/config/sing-box.postinst +3 -0
  824. sing_box_python-1.13.18/singbox-go/release/config/sing-box.rules +8 -0
  825. sing_box_python-1.13.18/singbox-go/release/config/sing-box.service +18 -0
  826. sing_box_python-1.13.18/singbox-go/release/config/sing-box.sysusers +1 -0
  827. sing_box_python-1.13.18/singbox-go/release/config/sing-box@.service +18 -0
  828. sing_box_python-1.13.18/singbox-go/release/local/common.sh +102 -0
  829. sing_box_python-1.13.18/singbox-go/release/local/debug.sh +26 -0
  830. sing_box_python-1.13.18/singbox-go/release/local/enable.sh +7 -0
  831. sing_box_python-1.13.18/singbox-go/release/local/install.sh +19 -0
  832. sing_box_python-1.13.18/singbox-go/release/local/install_go.sh +9 -0
  833. sing_box_python-1.13.18/singbox-go/release/local/reinstall.sh +19 -0
  834. sing_box_python-1.13.18/singbox-go/release/local/sing-box.service +16 -0
  835. sing_box_python-1.13.18/singbox-go/release/local/uninstall.sh +30 -0
  836. sing_box_python-1.13.18/singbox-go/release/local/update.sh +16 -0
  837. sing_box_python-1.13.18/singbox-go/route/conn.go +431 -0
  838. sing_box_python-1.13.18/singbox-go/route/dns.go +109 -0
  839. sing_box_python-1.13.18/singbox-go/route/network.go +542 -0
  840. sing_box_python-1.13.18/singbox-go/route/platform_searcher.go +49 -0
  841. sing_box_python-1.13.18/singbox-go/route/process_cache.go +94 -0
  842. sing_box_python-1.13.18/singbox-go/route/route.go +785 -0
  843. sing_box_python-1.13.18/singbox-go/route/router.go +229 -0
  844. sing_box_python-1.13.18/singbox-go/route/rule/match_state.go +118 -0
  845. sing_box_python-1.13.18/singbox-go/route/rule/rule_abstract.go +303 -0
  846. sing_box_python-1.13.18/singbox-go/route/rule/rule_abstract_test.go +156 -0
  847. sing_box_python-1.13.18/singbox-go/route/rule/rule_action.go +556 -0
  848. sing_box_python-1.13.18/singbox-go/route/rule/rule_default.go +326 -0
  849. sing_box_python-1.13.18/singbox-go/route/rule/rule_default_interface_address.go +56 -0
  850. sing_box_python-1.13.18/singbox-go/route/rule/rule_dns.go +379 -0
  851. sing_box_python-1.13.18/singbox-go/route/rule/rule_headless.go +238 -0
  852. sing_box_python-1.13.18/singbox-go/route/rule/rule_interface_address.go +62 -0
  853. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_adguard.go +43 -0
  854. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_auth_user.go +37 -0
  855. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_cidr.go +91 -0
  856. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_clash_mode.go +40 -0
  857. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_client.go +37 -0
  858. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain.go +76 -0
  859. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain_keyword.go +47 -0
  860. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain_regex.go +61 -0
  861. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_inbound.go +35 -0
  862. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ip_accept_any.go +21 -0
  863. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ip_is_private.go +46 -0
  864. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ipversion.go +30 -0
  865. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network.go +42 -0
  866. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_is_constrained.go +29 -0
  867. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_is_expensive.go +29 -0
  868. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_type.go +40 -0
  869. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_outbound.go +46 -0
  870. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_package_name.go +48 -0
  871. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_port.go +52 -0
  872. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_port_range.go +87 -0
  873. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_preferred_by.go +86 -0
  874. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_name.go +44 -0
  875. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_path.go +54 -0
  876. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_path_regex.go +54 -0
  877. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_protocol.go +37 -0
  878. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_query_type.go +47 -0
  879. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_rule_set.go +78 -0
  880. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_user.go +40 -0
  881. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_user_id.go +44 -0
  882. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_wifi_bssid.go +39 -0
  883. sing_box_python-1.13.18/singbox-go/route/rule/rule_item_wifi_ssid.go +39 -0
  884. sing_box_python-1.13.18/singbox-go/route/rule/rule_network_interface_address.go +68 -0
  885. sing_box_python-1.13.18/singbox-go/route/rule/rule_set.go +71 -0
  886. sing_box_python-1.13.18/singbox-go/route/rule/rule_set_local.go +221 -0
  887. sing_box_python-1.13.18/singbox-go/route/rule/rule_set_remote.go +341 -0
  888. sing_box_python-1.13.18/singbox-go/route/rule/rule_set_semantics_test.go +849 -0
  889. sing_box_python-1.13.18/singbox-go/route/rule_conds.go +54 -0
  890. sing_box_python-1.13.18/singbox-go/service/ccm/credential.go +139 -0
  891. sing_box_python-1.13.18/singbox-go/service/ccm/credential_darwin.go +116 -0
  892. sing_box_python-1.13.18/singbox-go/service/ccm/credential_other.go +25 -0
  893. sing_box_python-1.13.18/singbox-go/service/ccm/service.go +595 -0
  894. sing_box_python-1.13.18/singbox-go/service/ccm/service_usage.go +706 -0
  895. sing_box_python-1.13.18/singbox-go/service/ccm/service_user.go +29 -0
  896. sing_box_python-1.13.18/singbox-go/service/derp/service.go +529 -0
  897. sing_box_python-1.13.18/singbox-go/service/ocm/credential.go +173 -0
  898. sing_box_python-1.13.18/singbox-go/service/ocm/credential_darwin.go +25 -0
  899. sing_box_python-1.13.18/singbox-go/service/ocm/credential_other.go +25 -0
  900. sing_box_python-1.13.18/singbox-go/service/ocm/service.go +707 -0
  901. sing_box_python-1.13.18/singbox-go/service/ocm/service_usage.go +1199 -0
  902. sing_box_python-1.13.18/singbox-go/service/ocm/service_user.go +29 -0
  903. sing_box_python-1.13.18/singbox-go/service/ocm/service_websocket.go +285 -0
  904. sing_box_python-1.13.18/singbox-go/service/oomkiller/config.go +51 -0
  905. sing_box_python-1.13.18/singbox-go/service/oomkiller/service.go +193 -0
  906. sing_box_python-1.13.18/singbox-go/service/oomkiller/service_stub.go +81 -0
  907. sing_box_python-1.13.18/singbox-go/service/oomkiller/service_timer.go +143 -0
  908. sing_box_python-1.13.18/singbox-go/service/resolved/resolve1.go +657 -0
  909. sing_box_python-1.13.18/singbox-go/service/resolved/service.go +256 -0
  910. sing_box_python-1.13.18/singbox-go/service/resolved/stub.go +27 -0
  911. sing_box_python-1.13.18/singbox-go/service/resolved/transport.go +306 -0
  912. sing_box_python-1.13.18/singbox-go/service/ssmapi/api.go +177 -0
  913. sing_box_python-1.13.18/singbox-go/service/ssmapi/cache.go +239 -0
  914. sing_box_python-1.13.18/singbox-go/service/ssmapi/server.go +163 -0
  915. sing_box_python-1.13.18/singbox-go/service/ssmapi/traffic.go +223 -0
  916. sing_box_python-1.13.18/singbox-go/service/ssmapi/user.go +87 -0
  917. sing_box_python-1.13.18/singbox-go/test/box_test.go +182 -0
  918. sing_box_python-1.13.18/singbox-go/test/brutal_test.go +392 -0
  919. sing_box_python-1.13.18/singbox-go/test/clash_darwin_test.go +71 -0
  920. sing_box_python-1.13.18/singbox-go/test/clash_other_test.go +12 -0
  921. sing_box_python-1.13.18/singbox-go/test/clash_test.go +524 -0
  922. sing_box_python-1.13.18/singbox-go/test/config/hysteria-client.json +12 -0
  923. sing_box_python-1.13.18/singbox-go/test/config/hysteria-server.json +9 -0
  924. sing_box_python-1.13.18/singbox-go/test/config/hysteria2-client.yml +11 -0
  925. sing_box_python-1.13.18/singbox-go/test/config/hysteria2-server.yml +12 -0
  926. sing_box_python-1.13.18/singbox-go/test/config/naive-nginx.conf +18 -0
  927. sing_box_python-1.13.18/singbox-go/test/config/naive-quic.json +6 -0
  928. sing_box_python-1.13.18/singbox-go/test/config/naive.json +6 -0
  929. sing_box_python-1.13.18/singbox-go/test/config/nginx.conf +29 -0
  930. sing_box_python-1.13.18/singbox-go/test/config/shadowsocksr.json +19 -0
  931. sing_box_python-1.13.18/singbox-go/test/config/trojan.json +40 -0
  932. sing_box_python-1.13.18/singbox-go/test/config/tuic-client.json +16 -0
  933. sing_box_python-1.13.18/singbox-go/test/config/tuic-server.json +10 -0
  934. sing_box_python-1.13.18/singbox-go/test/config/vless-server.json +25 -0
  935. sing_box_python-1.13.18/singbox-go/test/config/vless-tls-client.json +51 -0
  936. sing_box_python-1.13.18/singbox-go/test/config/vless-tls-server.json +39 -0
  937. sing_box_python-1.13.18/singbox-go/test/config/vmess-client.json +38 -0
  938. sing_box_python-1.13.18/singbox-go/test/config/vmess-grpc-client.json +51 -0
  939. sing_box_python-1.13.18/singbox-go/test/config/vmess-grpc-server.json +40 -0
  940. sing_box_python-1.13.18/singbox-go/test/config/vmess-mux-client.json +41 -0
  941. sing_box_python-1.13.18/singbox-go/test/config/vmess-server.json +25 -0
  942. sing_box_python-1.13.18/singbox-go/test/config/vmess-ws-client.json +52 -0
  943. sing_box_python-1.13.18/singbox-go/test/config/vmess-ws-server.json +41 -0
  944. sing_box_python-1.13.18/singbox-go/test/config/wireguard.conf +8 -0
  945. sing_box_python-1.13.18/singbox-go/test/direct_test.go +73 -0
  946. sing_box_python-1.13.18/singbox-go/test/docker_test.go +121 -0
  947. sing_box_python-1.13.18/singbox-go/test/domain_inbound_test.go +94 -0
  948. sing_box_python-1.13.18/singbox-go/test/ech_test.go +287 -0
  949. sing_box_python-1.13.18/singbox-go/test/go.mod +179 -0
  950. sing_box_python-1.13.18/singbox-go/test/go.sum +429 -0
  951. sing_box_python-1.13.18/singbox-go/test/http_test.go +72 -0
  952. sing_box_python-1.13.18/singbox-go/test/hysteria2_test.go +234 -0
  953. sing_box_python-1.13.18/singbox-go/test/hysteria_test.go +189 -0
  954. sing_box_python-1.13.18/singbox-go/test/inbound_detour_test.go +103 -0
  955. sing_box_python-1.13.18/singbox-go/test/ktls_test.go +295 -0
  956. sing_box_python-1.13.18/singbox-go/test/mkcert.go +88 -0
  957. sing_box_python-1.13.18/singbox-go/test/mux_cool_test.go +182 -0
  958. sing_box_python-1.13.18/singbox-go/test/mux_test.go +198 -0
  959. sing_box_python-1.13.18/singbox-go/test/naive_self_test.go +533 -0
  960. sing_box_python-1.13.18/singbox-go/test/naive_test.go +147 -0
  961. sing_box_python-1.13.18/singbox-go/test/reality_test.go +108 -0
  962. sing_box_python-1.13.18/singbox-go/test/shadowsocks_legacy_test.go +55 -0
  963. sing_box_python-1.13.18/singbox-go/test/shadowsocks_test.go +367 -0
  964. sing_box_python-1.13.18/singbox-go/test/shadowtls_test.go +498 -0
  965. sing_box_python-1.13.18/singbox-go/test/socks_test.go +133 -0
  966. sing_box_python-1.13.18/singbox-go/test/ss_plugin_test.go +66 -0
  967. sing_box_python-1.13.18/singbox-go/test/tfo_test.go +83 -0
  968. sing_box_python-1.13.18/singbox-go/test/tls_test.go +99 -0
  969. sing_box_python-1.13.18/singbox-go/test/trojan_test.go +209 -0
  970. sing_box_python-1.13.18/singbox-go/test/tuic_test.go +198 -0
  971. sing_box_python-1.13.18/singbox-go/test/v2ray_api_test.go +60 -0
  972. sing_box_python-1.13.18/singbox-go/test/v2ray_grpc_test.go +219 -0
  973. sing_box_python-1.13.18/singbox-go/test/v2ray_httpupgrade_test.go +16 -0
  974. sing_box_python-1.13.18/singbox-go/test/v2ray_transport_test.go +384 -0
  975. sing_box_python-1.13.18/singbox-go/test/v2ray_ws_test.go +205 -0
  976. sing_box_python-1.13.18/singbox-go/test/vmess_test.go +337 -0
  977. sing_box_python-1.13.18/singbox-go/test/wrapper_test.go +30 -0
  978. sing_box_python-1.13.18/singbox-go/transport/simple-obfs/README.md +4 -0
  979. sing_box_python-1.13.18/singbox-go/transport/simple-obfs/http.go +98 -0
  980. sing_box_python-1.13.18/singbox-go/transport/simple-obfs/tls.go +205 -0
  981. sing_box_python-1.13.18/singbox-go/transport/sip003/args.go +107 -0
  982. sing_box_python-1.13.18/singbox-go/transport/sip003/obfs.go +62 -0
  983. sing_box_python-1.13.18/singbox-go/transport/sip003/plugin.go +38 -0
  984. sing_box_python-1.13.18/singbox-go/transport/sip003/v2ray.go +119 -0
  985. sing_box_python-1.13.18/singbox-go/transport/trojan/mux.go +84 -0
  986. sing_box_python-1.13.18/singbox-go/transport/trojan/protocol.go +321 -0
  987. sing_box_python-1.13.18/singbox-go/transport/trojan/protocol_wait.go +45 -0
  988. sing_box_python-1.13.18/singbox-go/transport/trojan/service.go +149 -0
  989. sing_box_python-1.13.18/singbox-go/transport/trojan/service_wait.go +45 -0
  990. sing_box_python-1.13.18/singbox-go/transport/v2ray/grpc.go +30 -0
  991. sing_box_python-1.13.18/singbox-go/transport/v2ray/grpc_lite.go +23 -0
  992. sing_box_python-1.13.18/singbox-go/transport/v2ray/quic.go +37 -0
  993. sing_box_python-1.13.18/singbox-go/transport/v2ray/transport.go +68 -0
  994. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/client.go +117 -0
  995. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/conn.go +106 -0
  996. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/credentials.go +49 -0
  997. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/spiffe.go +75 -0
  998. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/syscallconn.go +58 -0
  999. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/util.go +51 -0
  1000. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/custom_name.go +51 -0
  1001. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/server.go +97 -0
  1002. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream.pb.go +125 -0
  1003. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream.proto +12 -0
  1004. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream_grpc.pb.go +110 -0
  1005. sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/tls_credentials.go +86 -0
  1006. sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/client.go +108 -0
  1007. sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/conn.go +169 -0
  1008. sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/server.go +119 -0
  1009. sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/client.go +157 -0
  1010. sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/conn.go +267 -0
  1011. sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/force_close.go +47 -0
  1012. sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/pool.go +13 -0
  1013. sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/server.go +183 -0
  1014. sing_box_python-1.13.18/singbox-go/transport/v2rayhttpupgrade/client.go +120 -0
  1015. sing_box_python-1.13.18/singbox-go/transport/v2rayhttpupgrade/server.go +145 -0
  1016. sing_box_python-1.13.18/singbox-go/transport/v2rayquic/client.go +116 -0
  1017. sing_box_python-1.13.18/singbox-go/transport/v2rayquic/init.go +9 -0
  1018. sing_box_python-1.13.18/singbox-go/transport/v2rayquic/server.go +99 -0
  1019. sing_box_python-1.13.18/singbox-go/transport/v2rayquic/stream.go +45 -0
  1020. sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/client.go +125 -0
  1021. sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/conn.go +307 -0
  1022. sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/server.go +145 -0
  1023. sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/writer.go +74 -0
  1024. sing_box_python-1.13.18/singbox-go/transport/wireguard/client_bind.go +262 -0
  1025. sing_box_python-1.13.18/singbox-go/transport/wireguard/device.go +52 -0
  1026. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_nat.go +103 -0
  1027. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack.go +352 -0
  1028. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack_gonet.go +79 -0
  1029. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack_stub.go +13 -0
  1030. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_system.go +196 -0
  1031. sing_box_python-1.13.18/singbox-go/transport/wireguard/device_system_stack.go +248 -0
  1032. sing_box_python-1.13.18/singbox-go/transport/wireguard/endpoint.go +296 -0
  1033. sing_box_python-1.13.18/singbox-go/transport/wireguard/endpoint_options.go +40 -0
  1034. sing_box_python-1.13.18/src/cronet.c +4 -0
  1035. sing_box_python-1.13.18/src/singbox.cpp +334 -0
  1036. sing_box_python-1.13.18/tests/test_binding.py +219 -0
@@ -0,0 +1,74 @@
1
+ cmake_minimum_required(VERSION 3.15)
2
+ project(singbox_native C CXX)
3
+
4
+ set(CMAKE_C_STANDARD 99)
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
7
+ set(PYBIND11_FINDPYTHON ON)
8
+
9
+ find_package(pybind11 CONFIG REQUIRED)
10
+
11
+ if(NOT SINGBOX_ARCHIVE)
12
+ message(FATAL_ERROR "SINGBOX_ARCHIVE must name the Go c-archive")
13
+ endif()
14
+ if(NOT SINGBOX_INCLUDE_DIR)
15
+ message(FATAL_ERROR "SINGBOX_INCLUDE_DIR must name the generated-header directory")
16
+ endif()
17
+
18
+ pybind11_add_module(_native src/singbox.cpp)
19
+ target_include_directories(_native PRIVATE "${SINGBOX_INCLUDE_DIR}")
20
+
21
+ if(WIN32)
22
+ if(MINGW)
23
+ target_compile_options(_native PRIVATE "-Wa,-mbig-obj")
24
+ target_link_options(
25
+ _native PRIVATE
26
+ "-static-libgcc" "-static-libstdc++"
27
+ "-Wl,-Bstatic,--whole-archive"
28
+ "-lwinpthread"
29
+ "-Wl,--no-whole-archive"
30
+ )
31
+ endif()
32
+ target_link_libraries(_native PRIVATE "${SINGBOX_ARCHIVE}")
33
+ else()
34
+ target_link_libraries(_native PRIVATE "${SINGBOX_ARCHIVE}" "-lresolv")
35
+
36
+ if(APPLE AND SINGBOX_CRONET_ARCHIVE)
37
+ # Chromium's archive includes a private libc++/libc++abi. Keep it in a
38
+ # separate image so its exception runtime cannot interpose pybind11's.
39
+ add_library(cronet SHARED src/cronet.c)
40
+ set_target_properties(cronet PROPERTIES OUTPUT_NAME cronet)
41
+ target_link_options(
42
+ cronet PRIVATE
43
+ "-Wl,-force_load,${SINGBOX_CRONET_ARCHIVE}"
44
+ )
45
+ target_link_libraries(
46
+ cronet PRIVATE
47
+ "-lbsm"
48
+ "-lpmenergy"
49
+ "-lpmsample"
50
+ "-lresolv"
51
+ "-framework AppKit"
52
+ "-framework ApplicationServices"
53
+ "-framework CFNetwork"
54
+ "-framework CoreFoundation"
55
+ "-framework CoreGraphics"
56
+ "-framework CoreServices"
57
+ "-framework CoreText"
58
+ "-framework CryptoTokenKit"
59
+ "-framework Foundation"
60
+ "-framework IOKit"
61
+ "-framework LocalAuthentication"
62
+ "-framework Network"
63
+ "-framework OpenDirectory"
64
+ "-framework Security"
65
+ "-framework SystemConfiguration"
66
+ "-framework UniformTypeIdentifiers"
67
+ )
68
+ add_dependencies(_native cronet)
69
+ endif()
70
+ endif()
71
+
72
+ if(SINGBOX_CRONET_SHARED)
73
+ target_compile_definitions(_native PRIVATE SINGBOX_CRONET_SHARED=1)
74
+ endif()
@@ -0,0 +1,17 @@
1
+ Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>
2
+
3
+ This program is free software: you can redistribute it and/or modify
4
+ it under the terms of the GNU General Public License as published by
5
+ the Free Software Foundation, either version 3 of the License, or
6
+ (at your option) any later version.
7
+
8
+ This program is distributed in the hope that it will be useful,
9
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ GNU General Public License for more details.
12
+
13
+ You should have received a copy of the GNU General Public License
14
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ In addition, no derivative work may use the name or imply association
17
+ with this application without prior consent.
@@ -0,0 +1,9 @@
1
+ recursive-include singbox *.py *.pyi py.typed
2
+ recursive-include singbox-go *
3
+ recursive-include src *.c *.cpp
4
+ recursive-include tests *.py
5
+ include CMakeLists.txt
6
+ include LICENSE
7
+ include README.md
8
+ include pyproject.toml
9
+ include setup.py
@@ -0,0 +1,196 @@
1
+ Metadata-Version: 2.4
2
+ Name: sing-box-python
3
+ Version: 1.13.18
4
+ Summary: Python binding for sing-box
5
+ License: GPL-3.0-or-later
6
+ Project-URL: Source, https://github.com/LorenEteval/sing-box-python
7
+ Project-URL: sing-box, https://github.com/SagerNet/sing-box
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Programming Language :: C++
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Operating System :: POSIX :: Linux
14
+ Classifier: Operating System :: MacOS :: MacOS X
15
+ Classifier: Topic :: Internet :: Proxy Servers
16
+ Requires-Python: >=3.8
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: license
23
+ Dynamic: license-file
24
+ Dynamic: project-url
25
+ Dynamic: requires-python
26
+ Dynamic: summary
27
+
28
+ # sing-box-python
29
+
30
+ [![Build and publish Python distributions](https://github.com/LorenEteval/sing-box-python/actions/workflows/build-and-publish.yml/badge.svg?branch=main)](https://github.com/LorenEteval/sing-box-python/actions/workflows/build-and-publish.yml)
31
+
32
+ Python bindings for [sing-box](https://github.com/SagerNet/sing-box).
33
+
34
+ ## Install
35
+
36
+ Prebuilt binary wheels include the native Go and C++ binding, so a supported installation does not require Go, CMake,
37
+ or a C++ compiler.
38
+
39
+ ```
40
+ pip install sing-box-python
41
+ ```
42
+
43
+ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64, and macOS Intel and Apple Silicon.
44
+
45
+ ### Build from Source
46
+
47
+ A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
48
+ binding from source. A source build requires:
49
+
50
+ * [Go 1.24.7](https://go.dev/doc/install) in `PATH`.
51
+ * A working C and C++ compiler toolchain.
52
+ * MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
53
+
54
+ The isolated Python build environment installs CMake, pybind11, setuptools, and wheel automatically. To build directly
55
+ from a repository checkout:
56
+
57
+ ```
58
+ pip install .
59
+ ```
60
+
61
+ The build downloads sing-box's checksum-pinned, platform-specific Cronet Go module automatically. Wheels contain an
62
+ isolated Cronet runtime (`libcronet.dylib`, `libcronet.so`, or `libcronet.dll`), loaded from an absolute package path
63
+ during import. On macOS the build converts the pinned static archive into a separate dynamic library so Chromium's
64
+ private C++ runtime cannot conflict with pybind11.
65
+
66
+ ## API
67
+
68
+ ```pycon
69
+ >>> import singbox
70
+ >>> help(singbox)
71
+ Help on package singbox:
72
+
73
+ NAME
74
+ singbox - Native Python bindings for starting and managing sing-box.
75
+
76
+ PACKAGE CONTENTS
77
+ _native
78
+
79
+ CLASSES
80
+ builtins.RuntimeError(builtins.Exception)
81
+ singbox._native.SingBoxError
82
+ pybind11_builtins.pybind11_object(builtins.object)
83
+ singbox._native.SingBox
84
+
85
+ class SingBox(pybind11_builtins.pybind11_object)
86
+ | An explicitly managed, non-blocking in-process sing-box instance.
87
+ |
88
+ | Unlike the module-level startFromJSON function, this class reports startup
89
+ | errors as Python exceptions and does not wait for operating-system signals.
90
+ | Call stop explicitly or use the instance as a context manager.
91
+ |
92
+ | Methods defined here:
93
+ |
94
+ | __enter__(...)
95
+ | __enter__(self: singbox._native.SingBox) -> singbox._native.SingBox
96
+ |
97
+ | Return this instance for use as a context manager.
98
+ |
99
+ | __exit__(...)
100
+ | __exit__(self: singbox._native.SingBox, arg0: object, arg1: object, arg2: object) -> None
101
+ |
102
+ | Stop the instance when leaving a context-manager block.
103
+ |
104
+ | __init__(...)
105
+ | __init__(self: singbox._native.SingBox) -> None
106
+ |
107
+ | Create a stopped sing-box instance.
108
+ |
109
+ | queryStats(...)
110
+ | queryStats(self: singbox._native.SingBox, patterns: collections.abc.Sequence[str] = [], reset: bool = False, regexp: bool = False) -> dict
111
+ |
112
+ | Return available runtime, Clash, and V2Ray statistics as a dictionary.
113
+ |
114
+ | patterns filters V2Ray counters. reset clears matched V2Ray counters after
115
+ | reading, and regexp interprets patterns as regular expressions. Clash and
116
+ | V2Ray sections are None when their corresponding sing-box services are not
117
+ | enabled by the configuration. Runtime memory counters are always present.
118
+ |
119
+ | startFromJSON(...)
120
+ | startFromJSON(self: singbox._native.SingBox, json: str) -> None
121
+ |
122
+ | Start this instance from a UTF-8 JSON configuration string.
123
+ |
124
+ | The call returns after the service starts. Invalid configuration, construction,
125
+ | or startup errors raise SingBoxError. Starting an already-running instance
126
+ | raises RuntimeError.
127
+ |
128
+ | stop(...)
129
+ | stop(self: singbox._native.SingBox) -> None
130
+ |
131
+ | Stop the instance and release its native resources; repeated calls are safe.
132
+ |
133
+ | Readonly properties defined here:
134
+ |
135
+ | handle
136
+ | Opaque numeric instance identifier, or 0 while stopped.
137
+ |
138
+ | running
139
+ | Whether this instance currently owns a running native service.
140
+
141
+ class SingBoxError(builtins.RuntimeError)
142
+ | An error reported by the managed sing-box native lifecycle API.
143
+
144
+ FUNCTIONS
145
+ startFromJSON(...) method of pybind11_builtins.pybind11_detail_function_record instance
146
+ startFromJSON(json: str) -> None
147
+
148
+ Start sing-box from JSON and block until SIGINT or SIGTERM is received.
149
+
150
+ This process-oriented entry point is intended to be the target of a
151
+ multiprocessing.Process. Configuration decoding or construction failures exit
152
+ the process with status 23. Service startup failures call os.Exit(-1), whose
153
+ observed status is platform-dependent. Use SingBox for exception-based,
154
+ non-blocking in-process lifecycle management.
155
+
156
+ DATA
157
+ __all__ = ['SingBox', 'SingBoxError', '__version__', 'startFromJSON']
158
+
159
+ VERSION
160
+ v1.13.18
161
+ ```
162
+
163
+ ## Source Code Modification
164
+
165
+ This repository, including the package that distributes to pypi,
166
+ contains [sing-box](https://github.com/SagerNet/sing-box) source code and the additional binding code required to build
167
+ the Python extension and its API.
168
+
169
+ To make installation of this package easier, the original [sing-box](https://github.com/SagerNet/sing-box) source code
170
+ is embedded instead of being added as a submodule. The official source files are unchanged. The binding is implemented
171
+ by the added `singbox-go/binding` package and the C++/Python packaging files in this repository. To track the difference,
172
+ compare `singbox-go` with the upstream commit while excluding the added `binding` directory.
173
+
174
+ ## Binary Wheel Platforms
175
+
176
+ The distributions are built and tested in [GitHub Actions](https://github.com/LorenEteval/sing-box-python/actions).
177
+
178
+ | Platform | Architecture | CPython |
179
+ |----------|--------------|---------|
180
+ | Linux | x86-64 | 3.8-3.14, 3.13t, 3.14t |
181
+ | Linux | ARM64 | 3.8-3.14, 3.13t, 3.14t |
182
+ | Windows | x86-64 | 3.8-3.14, 3.13t, 3.14t |
183
+ | Windows | ARM64 | 3.9-3.14, 3.13t, 3.14t |
184
+ | macOS | Intel | 3.8-3.14, 3.13t, 3.14t |
185
+ | macOS | Apple Silicon | 3.8-3.14, 3.13t, 3.14t |
186
+
187
+ Naive outbound is included on all wheel platforms in the table. Cronet is bundled as an isolated shared runtime on
188
+ macOS, Linux, and Windows. The macOS runtime is produced from the pinned static archive during the wheel build. The
189
+ Cronet artifact comes from the platform module and exact version already pinned by sing-box v1.13.18's `go.mod` and
190
+ verified by `go.sum`; the workflow does not build an unrelated Cronet revision.
191
+ Custom source builds can override the complete sing-box tag list with the `SINGBOX_BUILD_TAGS` environment variable.
192
+
193
+ ## License
194
+
195
+ The license for this project follows its original Go repository [sing-box](https://github.com/SagerNet/sing-box)
196
+ and is under [GNU GPL v3 or later](https://github.com/LorenEteval/sing-box-python/blob/main/LICENSE).
@@ -0,0 +1,169 @@
1
+ # sing-box-python
2
+
3
+ [![Build and publish Python distributions](https://github.com/LorenEteval/sing-box-python/actions/workflows/build-and-publish.yml/badge.svg?branch=main)](https://github.com/LorenEteval/sing-box-python/actions/workflows/build-and-publish.yml)
4
+
5
+ Python bindings for [sing-box](https://github.com/SagerNet/sing-box).
6
+
7
+ ## Install
8
+
9
+ Prebuilt binary wheels include the native Go and C++ binding, so a supported installation does not require Go, CMake,
10
+ or a C++ compiler.
11
+
12
+ ```
13
+ pip install sing-box-python
14
+ ```
15
+
16
+ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64, and macOS Intel and Apple Silicon.
17
+
18
+ ### Build from Source
19
+
20
+ A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
21
+ binding from source. A source build requires:
22
+
23
+ * [Go 1.24.7](https://go.dev/doc/install) in `PATH`.
24
+ * A working C and C++ compiler toolchain.
25
+ * MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
26
+
27
+ The isolated Python build environment installs CMake, pybind11, setuptools, and wheel automatically. To build directly
28
+ from a repository checkout:
29
+
30
+ ```
31
+ pip install .
32
+ ```
33
+
34
+ The build downloads sing-box's checksum-pinned, platform-specific Cronet Go module automatically. Wheels contain an
35
+ isolated Cronet runtime (`libcronet.dylib`, `libcronet.so`, or `libcronet.dll`), loaded from an absolute package path
36
+ during import. On macOS the build converts the pinned static archive into a separate dynamic library so Chromium's
37
+ private C++ runtime cannot conflict with pybind11.
38
+
39
+ ## API
40
+
41
+ ```pycon
42
+ >>> import singbox
43
+ >>> help(singbox)
44
+ Help on package singbox:
45
+
46
+ NAME
47
+ singbox - Native Python bindings for starting and managing sing-box.
48
+
49
+ PACKAGE CONTENTS
50
+ _native
51
+
52
+ CLASSES
53
+ builtins.RuntimeError(builtins.Exception)
54
+ singbox._native.SingBoxError
55
+ pybind11_builtins.pybind11_object(builtins.object)
56
+ singbox._native.SingBox
57
+
58
+ class SingBox(pybind11_builtins.pybind11_object)
59
+ | An explicitly managed, non-blocking in-process sing-box instance.
60
+ |
61
+ | Unlike the module-level startFromJSON function, this class reports startup
62
+ | errors as Python exceptions and does not wait for operating-system signals.
63
+ | Call stop explicitly or use the instance as a context manager.
64
+ |
65
+ | Methods defined here:
66
+ |
67
+ | __enter__(...)
68
+ | __enter__(self: singbox._native.SingBox) -> singbox._native.SingBox
69
+ |
70
+ | Return this instance for use as a context manager.
71
+ |
72
+ | __exit__(...)
73
+ | __exit__(self: singbox._native.SingBox, arg0: object, arg1: object, arg2: object) -> None
74
+ |
75
+ | Stop the instance when leaving a context-manager block.
76
+ |
77
+ | __init__(...)
78
+ | __init__(self: singbox._native.SingBox) -> None
79
+ |
80
+ | Create a stopped sing-box instance.
81
+ |
82
+ | queryStats(...)
83
+ | queryStats(self: singbox._native.SingBox, patterns: collections.abc.Sequence[str] = [], reset: bool = False, regexp: bool = False) -> dict
84
+ |
85
+ | Return available runtime, Clash, and V2Ray statistics as a dictionary.
86
+ |
87
+ | patterns filters V2Ray counters. reset clears matched V2Ray counters after
88
+ | reading, and regexp interprets patterns as regular expressions. Clash and
89
+ | V2Ray sections are None when their corresponding sing-box services are not
90
+ | enabled by the configuration. Runtime memory counters are always present.
91
+ |
92
+ | startFromJSON(...)
93
+ | startFromJSON(self: singbox._native.SingBox, json: str) -> None
94
+ |
95
+ | Start this instance from a UTF-8 JSON configuration string.
96
+ |
97
+ | The call returns after the service starts. Invalid configuration, construction,
98
+ | or startup errors raise SingBoxError. Starting an already-running instance
99
+ | raises RuntimeError.
100
+ |
101
+ | stop(...)
102
+ | stop(self: singbox._native.SingBox) -> None
103
+ |
104
+ | Stop the instance and release its native resources; repeated calls are safe.
105
+ |
106
+ | Readonly properties defined here:
107
+ |
108
+ | handle
109
+ | Opaque numeric instance identifier, or 0 while stopped.
110
+ |
111
+ | running
112
+ | Whether this instance currently owns a running native service.
113
+
114
+ class SingBoxError(builtins.RuntimeError)
115
+ | An error reported by the managed sing-box native lifecycle API.
116
+
117
+ FUNCTIONS
118
+ startFromJSON(...) method of pybind11_builtins.pybind11_detail_function_record instance
119
+ startFromJSON(json: str) -> None
120
+
121
+ Start sing-box from JSON and block until SIGINT or SIGTERM is received.
122
+
123
+ This process-oriented entry point is intended to be the target of a
124
+ multiprocessing.Process. Configuration decoding or construction failures exit
125
+ the process with status 23. Service startup failures call os.Exit(-1), whose
126
+ observed status is platform-dependent. Use SingBox for exception-based,
127
+ non-blocking in-process lifecycle management.
128
+
129
+ DATA
130
+ __all__ = ['SingBox', 'SingBoxError', '__version__', 'startFromJSON']
131
+
132
+ VERSION
133
+ v1.13.18
134
+ ```
135
+
136
+ ## Source Code Modification
137
+
138
+ This repository, including the package that distributes to pypi,
139
+ contains [sing-box](https://github.com/SagerNet/sing-box) source code and the additional binding code required to build
140
+ the Python extension and its API.
141
+
142
+ To make installation of this package easier, the original [sing-box](https://github.com/SagerNet/sing-box) source code
143
+ is embedded instead of being added as a submodule. The official source files are unchanged. The binding is implemented
144
+ by the added `singbox-go/binding` package and the C++/Python packaging files in this repository. To track the difference,
145
+ compare `singbox-go` with the upstream commit while excluding the added `binding` directory.
146
+
147
+ ## Binary Wheel Platforms
148
+
149
+ The distributions are built and tested in [GitHub Actions](https://github.com/LorenEteval/sing-box-python/actions).
150
+
151
+ | Platform | Architecture | CPython |
152
+ |----------|--------------|---------|
153
+ | Linux | x86-64 | 3.8-3.14, 3.13t, 3.14t |
154
+ | Linux | ARM64 | 3.8-3.14, 3.13t, 3.14t |
155
+ | Windows | x86-64 | 3.8-3.14, 3.13t, 3.14t |
156
+ | Windows | ARM64 | 3.9-3.14, 3.13t, 3.14t |
157
+ | macOS | Intel | 3.8-3.14, 3.13t, 3.14t |
158
+ | macOS | Apple Silicon | 3.8-3.14, 3.13t, 3.14t |
159
+
160
+ Naive outbound is included on all wheel platforms in the table. Cronet is bundled as an isolated shared runtime on
161
+ macOS, Linux, and Windows. The macOS runtime is produced from the pinned static archive during the wheel build. The
162
+ Cronet artifact comes from the platform module and exact version already pinned by sing-box v1.13.18's `go.mod` and
163
+ verified by `go.sum`; the workflow does not build an unrelated Cronet revision.
164
+ Custom source builds can override the complete sing-box tag list with the `SINGBOX_BUILD_TAGS` environment variable.
165
+
166
+ ## License
167
+
168
+ The license for this project follows its original Go repository [sing-box](https://github.com/SagerNet/sing-box)
169
+ and is under [GNU GPL v3 or later](https://github.com/LorenEteval/sing-box-python/blob/main/LICENSE).
@@ -0,0 +1,60 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=68",
4
+ "wheel",
5
+ "cmake>=3.15",
6
+ "pybind11>=3.0.1,<3.1; python_version == '3.8'",
7
+ "pybind11>=3.0.1,<4; python_version >= '3.9'",
8
+ ]
9
+ build-backend = "setuptools.build_meta"
10
+
11
+ [tool.cibuildwheel]
12
+ build = [
13
+ "cp38-*",
14
+ "cp39-*",
15
+ "cp310-*",
16
+ "cp311-*",
17
+ "cp312-*",
18
+ "cp313-*",
19
+ "cp313t-*",
20
+ "cp314-*",
21
+ "cp314t-*",
22
+ ]
23
+ enable = ["cpython-freethreading"]
24
+ skip = "*-musllinux_*"
25
+ build-verbosity = 1
26
+ test-requires = ["pytest>=8"]
27
+ test-sources = ["sample", "tests"]
28
+ test-environment = { PYTHONSAFEPATH = "1" }
29
+ test-command = [
30
+ "python sample/sample.py",
31
+ "pytest -q tests",
32
+ "python -c \"import pathlib, singbox; source = pathlib.Path(r'{project}').resolve(); installed = pathlib.Path(singbox.__file__).resolve(); assert source not in installed.parents, 'imported source checkout: ' + str(installed)\"",
33
+ ]
34
+
35
+ [tool.cibuildwheel.linux]
36
+ before-all = """
37
+ case "$(uname -m)" in
38
+ x86_64)
39
+ go_arch='amd64'
40
+ go_sha256='da18191ddb7db8a9339816f3e2b54bdded8047cdc2a5d67059478f8d1595c43f'
41
+ ;;
42
+ aarch64|arm64)
43
+ go_arch='arm64'
44
+ go_sha256='fd2bccce882e29369f56c86487663bb78ba7ea9e02188a5b0269303a0c3d33ab'
45
+ ;;
46
+ *)
47
+ echo "Unsupported Linux architecture: $(uname -m)" >&2
48
+ exit 1
49
+ ;;
50
+ esac
51
+ go_archive="/tmp/go1.24.7.linux-${go_arch}.tar.gz"
52
+ curl -fsSLo "${go_archive}" "https://go.dev/dl/go1.24.7.linux-${go_arch}.tar.gz"
53
+ echo "${go_sha256} ${go_archive}" | sha256sum -c -
54
+ tar -C /usr/local -xzf "${go_archive}"
55
+ /usr/local/go/bin/go version
56
+ """
57
+ environment = { PATH = "/usr/local/go/bin:$PATH", GOTOOLCHAIN = "local" }
58
+
59
+ [tool.cibuildwheel.macos]
60
+ environment = { MACOSX_DEPLOYMENT_TARGET = "12.0", GOTOOLCHAIN = "local" }
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+