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.
- sing_box_python-1.13.18/CMakeLists.txt +74 -0
- sing_box_python-1.13.18/LICENSE +17 -0
- sing_box_python-1.13.18/MANIFEST.in +9 -0
- sing_box_python-1.13.18/PKG-INFO +196 -0
- sing_box_python-1.13.18/README.md +169 -0
- sing_box_python-1.13.18/pyproject.toml +60 -0
- sing_box_python-1.13.18/setup.cfg +4 -0
- sing_box_python-1.13.18/setup.py +337 -0
- sing_box_python-1.13.18/sing_box_python.egg-info/PKG-INFO +196 -0
- sing_box_python-1.13.18/sing_box_python.egg-info/SOURCES.txt +1034 -0
- sing_box_python-1.13.18/sing_box_python.egg-info/dependency_links.txt +1 -0
- sing_box_python-1.13.18/sing_box_python.egg-info/not-zip-safe +1 -0
- sing_box_python-1.13.18/sing_box_python.egg-info/top_level.txt +1 -0
- sing_box_python-1.13.18/singbox/__init__.py +31 -0
- sing_box_python-1.13.18/singbox/_native.pyi +24 -0
- sing_box_python-1.13.18/singbox/py.typed +0 -0
- sing_box_python-1.13.18/singbox-go/.fpm_openwrt +31 -0
- sing_box_python-1.13.18/singbox-go/.fpm_pacman +23 -0
- sing_box_python-1.13.18/singbox-go/.fpm_systemd +26 -0
- sing_box_python-1.13.18/singbox-go/.github/CRONET_GO_VERSION +1 -0
- sing_box_python-1.13.18/singbox-go/.github/FUNDING.yml +1 -0
- sing_box_python-1.13.18/singbox-go/.github/ISSUE_TEMPLATE/bug_report.yml +88 -0
- sing_box_python-1.13.18/singbox-go/.github/ISSUE_TEMPLATE/bug_report_zh.yml +88 -0
- sing_box_python-1.13.18/singbox-go/.github/build_alpine_apk.sh +94 -0
- sing_box_python-1.13.18/singbox-go/.github/build_openwrt_apk.sh +93 -0
- sing_box_python-1.13.18/singbox-go/.github/deb2ipk.sh +28 -0
- sing_box_python-1.13.18/singbox-go/.github/detect_track.sh +33 -0
- sing_box_python-1.13.18/singbox-go/.github/renovate.json +28 -0
- sing_box_python-1.13.18/singbox-go/.github/setup_go_for_macos1013.sh +45 -0
- sing_box_python-1.13.18/singbox-go/.github/setup_go_for_windows7.sh +46 -0
- sing_box_python-1.13.18/singbox-go/.github/update_clients.sh +14 -0
- sing_box_python-1.13.18/singbox-go/.github/update_cronet.sh +13 -0
- sing_box_python-1.13.18/singbox-go/.github/update_cronet_dev.sh +13 -0
- sing_box_python-1.13.18/singbox-go/.github/update_dependencies.sh +5 -0
- sing_box_python-1.13.18/singbox-go/.github/workflows/build.yml +1473 -0
- sing_box_python-1.13.18/singbox-go/.github/workflows/docker.yml +296 -0
- sing_box_python-1.13.18/singbox-go/.github/workflows/lint.yml +79 -0
- sing_box_python-1.13.18/singbox-go/.github/workflows/linux.yml +245 -0
- sing_box_python-1.13.18/singbox-go/.github/workflows/stale.yml +16 -0
- sing_box_python-1.13.18/singbox-go/.gitignore +23 -0
- sing_box_python-1.13.18/singbox-go/.gitmodules +6 -0
- sing_box_python-1.13.18/singbox-go/.golangci.yml +56 -0
- sing_box_python-1.13.18/singbox-go/Dockerfile +26 -0
- sing_box_python-1.13.18/singbox-go/Dockerfile.binary +14 -0
- sing_box_python-1.13.18/singbox-go/LICENSE +17 -0
- sing_box_python-1.13.18/singbox-go/Makefile +290 -0
- sing_box_python-1.13.18/singbox-go/README.md +31 -0
- sing_box_python-1.13.18/singbox-go/adapter/certificate.go +21 -0
- sing_box_python-1.13.18/singbox-go/adapter/connections.go +18 -0
- sing_box_python-1.13.18/singbox-go/adapter/dns.go +95 -0
- sing_box_python-1.13.18/singbox-go/adapter/endpoint/adapter.go +43 -0
- sing_box_python-1.13.18/singbox-go/adapter/endpoint/manager.go +156 -0
- sing_box_python-1.13.18/singbox-go/adapter/endpoint/registry.go +72 -0
- sing_box_python-1.13.18/singbox-go/adapter/endpoint.go +28 -0
- sing_box_python-1.13.18/singbox-go/adapter/experimental.go +146 -0
- sing_box_python-1.13.18/singbox-go/adapter/fakeip.go +31 -0
- sing_box_python-1.13.18/singbox-go/adapter/fakeip_metadata.go +50 -0
- sing_box_python-1.13.18/singbox-go/adapter/handler.go +61 -0
- sing_box_python-1.13.18/singbox-go/adapter/inbound/adapter.go +21 -0
- sing_box_python-1.13.18/singbox-go/adapter/inbound/manager.go +158 -0
- sing_box_python-1.13.18/singbox-go/adapter/inbound/registry.go +72 -0
- sing_box_python-1.13.18/singbox-go/adapter/inbound.go +143 -0
- sing_box_python-1.13.18/singbox-go/adapter/lifecycle.go +114 -0
- sing_box_python-1.13.18/singbox-go/adapter/lifecycle_legacy.go +52 -0
- sing_box_python-1.13.18/singbox-go/adapter/network.go +81 -0
- sing_box_python-1.13.18/singbox-go/adapter/outbound/adapter.go +45 -0
- sing_box_python-1.13.18/singbox-go/adapter/outbound/manager.go +310 -0
- sing_box_python-1.13.18/singbox-go/adapter/outbound/registry.go +72 -0
- sing_box_python-1.13.18/singbox-go/adapter/outbound.go +52 -0
- sing_box_python-1.13.18/singbox-go/adapter/platform.go +74 -0
- sing_box_python-1.13.18/singbox-go/adapter/prestart.go +1 -0
- sing_box_python-1.13.18/singbox-go/adapter/router.go +114 -0
- sing_box_python-1.13.18/singbox-go/adapter/rule.go +37 -0
- sing_box_python-1.13.18/singbox-go/adapter/service/adapter.go +21 -0
- sing_box_python-1.13.18/singbox-go/adapter/service/manager.go +153 -0
- sing_box_python-1.13.18/singbox-go/adapter/service/registry.go +72 -0
- sing_box_python-1.13.18/singbox-go/adapter/service.go +27 -0
- sing_box_python-1.13.18/singbox-go/adapter/ssm.go +18 -0
- sing_box_python-1.13.18/singbox-go/adapter/time.go +8 -0
- sing_box_python-1.13.18/singbox-go/adapter/upstream.go +168 -0
- sing_box_python-1.13.18/singbox-go/adapter/upstream_legacy.go +234 -0
- sing_box_python-1.13.18/singbox-go/adapter/v2ray.go +24 -0
- sing_box_python-1.13.18/singbox-go/binding/cronet_purego.go +15 -0
- sing_box_python-1.13.18/singbox-go/binding/main.go +392 -0
- sing_box_python-1.13.18/singbox-go/box.go +561 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/app_store_connect/main.go +452 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/build/main.go +26 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/build_libbox/main.go +245 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/build_shared/sdk.go +106 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/build_shared/tag.go +38 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/format_docs/main.go +117 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/merge_aar/main.go +165 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/merge_apple_xcframework/main.go +172 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/protogen/main.go +218 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/read_tag/main.go +71 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/tun_bench/main.go +284 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/update_android_version/main.go +84 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/update_apple_version/main.go +184 -0
- sing_box_python-1.13.18/singbox-go/cmd/internal/update_certificates/main.go +162 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd.go +71 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_check.go +43 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_format.go +75 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate.go +92 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_ech.go +36 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_tls.go +40 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_vapid.go +40 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_generate_wireguard.go +61 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip.go +43 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_export.go +99 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_list.go +31 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geoip_lookup.go +47 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite.go +41 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_export.go +82 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_list.go +50 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_lookup.go +97 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_geosite_matcher.go +56 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_merge.go +143 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set.go +14 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_compile.go +97 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_convert.go +89 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_decompile.go +101 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_format.go +83 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_match.go +105 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_merge.go +162 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_rule_set_upgrade.go +95 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_run.go +212 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools.go +54 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_connect.go +73 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch.go +115 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch_http3.go +36 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_fetch_http3_stub.go +18 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_tools_synctime.go +67 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/cmd_version.go +64 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/generate_completions.go +28 -0
- sing_box_python-1.13.18/singbox-go/cmd/sing-box/main.go +11 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/raw_conn.go +176 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/raw_half_conn.go +121 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/read_wait.go +82 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/read_wait_stub.go +13 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/registry.go +62 -0
- sing_box_python-1.13.18/singbox-go/common/badtls/registry_utls.go +56 -0
- sing_box_python-1.13.18/singbox-go/common/badversion/version.go +150 -0
- sing_box_python-1.13.18/singbox-go/common/badversion/version_json.go +17 -0
- sing_box_python-1.13.18/singbox-go/common/badversion/version_test.go +18 -0
- sing_box_python-1.13.18/singbox-go/common/certificate/chrome.go +2816 -0
- sing_box_python-1.13.18/singbox-go/common/certificate/mozilla.go +4592 -0
- sing_box_python-1.13.18/singbox-go/common/certificate/store.go +210 -0
- sing_box_python-1.13.18/singbox-go/common/compatible/map.go +58 -0
- sing_box_python-1.13.18/singbox-go/common/convertor/adguard/convertor.go +454 -0
- sing_box_python-1.13.18/singbox-go/common/convertor/adguard/convertor_test.go +145 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/default.go +400 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/default_parallel_interface.go +248 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/default_parallel_network.go +161 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/detour.go +85 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/dialer.go +151 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/resolve.go +194 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/router.go +33 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/tfo.go +176 -0
- sing_box_python-1.13.18/singbox-go/common/dialer/wireguard.go +9 -0
- sing_box_python-1.13.18/singbox-go/common/geoip/reader.go +38 -0
- sing_box_python-1.13.18/singbox-go/common/geosite/compat_test.go +229 -0
- sing_box_python-1.13.18/singbox-go/common/geosite/geosite_test.go +34 -0
- sing_box_python-1.13.18/singbox-go/common/geosite/reader.go +155 -0
- sing_box_python-1.13.18/singbox-go/common/geosite/rule.go +103 -0
- sing_box_python-1.13.18/singbox-go/common/geosite/writer.go +73 -0
- sing_box_python-1.13.18/singbox-go/common/interrupt/conn.go +75 -0
- sing_box_python-1.13.18/singbox-go/common/interrupt/context.go +13 -0
- sing_box_python-1.13.18/singbox-go/common/interrupt/group.go +52 -0
- sing_box_python-1.13.18/singbox-go/common/ja3/LICENSE +29 -0
- sing_box_python-1.13.18/singbox-go/common/ja3/README.md +3 -0
- sing_box_python-1.13.18/singbox-go/common/ja3/error.go +31 -0
- sing_box_python-1.13.18/singbox-go/common/ja3/ja3.go +83 -0
- sing_box_python-1.13.18/singbox-go/common/ja3/parser.go +357 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls.go +133 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_alert.go +80 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_cipher_suites_linux.go +326 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_close.go +67 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_const.go +24 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_handshake_messages.go +186 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_key_update.go +173 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_linux.go +329 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_prf.go +24 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_read.go +293 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_read_wait.go +41 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_nolinkname.go +15 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_nonlinux.go +15 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_stub_oldgo.go +15 -0
- sing_box_python-1.13.18/singbox-go/common/ktls/ktls_write.go +81 -0
- sing_box_python-1.13.18/singbox-go/common/listener/listener.go +172 -0
- sing_box_python-1.13.18/singbox-go/common/listener/listener_tcp.go +111 -0
- sing_box_python-1.13.18/singbox-go/common/listener/listener_udp.go +207 -0
- sing_box_python-1.13.18/singbox-go/common/mux/client.go +59 -0
- sing_box_python-1.13.18/singbox-go/common/mux/router.go +80 -0
- sing_box_python-1.13.18/singbox-go/common/pipelistener/listener.go +57 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher.go +39 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_android.go +52 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_darwin.go +45 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_darwin_shared.go +269 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_linux.go +85 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_linux_shared.go +384 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_linux_shared_test.go +60 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_stub.go +11 -0
- sing_box_python-1.13.18/singbox-go/common/process/searcher_windows.go +66 -0
- sing_box_python-1.13.18/singbox-go/common/redir/redir_darwin.go +64 -0
- sing_box_python-1.13.18/singbox-go/common/redir/redir_linux.go +40 -0
- sing_box_python-1.13.18/singbox-go/common/redir/redir_other.go +13 -0
- sing_box_python-1.13.18/singbox-go/common/redir/tproxy_linux.go +59 -0
- sing_box_python-1.13.18/singbox-go/common/redir/tproxy_other.go +22 -0
- sing_box_python-1.13.18/singbox-go/common/settings/proxy_android.go +73 -0
- sing_box_python-1.13.18/singbox-go/common/settings/proxy_darwin.go +121 -0
- sing_box_python-1.13.18/singbox-go/common/settings/proxy_linux.go +176 -0
- sing_box_python-1.13.18/singbox-go/common/settings/proxy_stub.go +14 -0
- sing_box_python-1.13.18/singbox-go/common/settings/proxy_windows.go +43 -0
- sing_box_python-1.13.18/singbox-go/common/settings/system_proxy.go +7 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi.go +9 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux.go +46 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_connman.go +168 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_iwd.go +190 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_nm.go +165 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_linux_wpa.go +226 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_stub.go +28 -0
- sing_box_python-1.13.18/singbox-go/common/settings/wifi_windows.go +144 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/bittorrent.go +107 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/bittorrent_test.go +110 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/dns.go +57 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/dns_test.go +53 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/dtls.go +32 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/dtls_test.go +33 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/http.go +28 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/http_test.go +30 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/internal/qtls/qtls.go +147 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/ntp.go +58 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/ntp_test.go +33 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/quic.go +373 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/quic_blacklist.go +24 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/quic_capture_test.go +188 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/quic_test.go +93 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/rdp.go +91 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/rdp_test.go +25 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/sniff.go +88 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/ssh.go +31 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/ssh_test.go +47 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/stun.go +25 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/stun_test.go +32 -0
- sing_box_python-1.13.18/singbox-go/common/sniff/tls.go +33 -0
- sing_box_python-1.13.18/singbox-go/common/srs/binary.go +692 -0
- sing_box_python-1.13.18/singbox-go/common/srs/compat_test.go +494 -0
- sing_box_python-1.13.18/singbox-go/common/srs/ip_cidr.go +44 -0
- sing_box_python-1.13.18/singbox-go/common/srs/ip_set.go +98 -0
- sing_box_python-1.13.18/singbox-go/common/taskmonitor/monitor.go +31 -0
- sing_box_python-1.13.18/singbox-go/common/tls/acme.go +165 -0
- sing_box_python-1.13.18/singbox-go/common/tls/acme_contstant.go +3 -0
- sing_box_python-1.13.18/singbox-go/common/tls/acme_stub.go +17 -0
- sing_box_python-1.13.18/singbox-go/common/tls/client.go +139 -0
- sing_box_python-1.13.18/singbox-go/common/tls/common.go +12 -0
- sing_box_python-1.13.18/singbox-go/common/tls/config.go +37 -0
- sing_box_python-1.13.18/singbox-go/common/tls/ech.go +208 -0
- sing_box_python-1.13.18/singbox-go/common/tls/ech_shared.go +81 -0
- sing_box_python-1.13.18/singbox-go/common/tls/ech_tag_stub.go +5 -0
- sing_box_python-1.13.18/singbox-go/common/tls/ktls.go +67 -0
- sing_box_python-1.13.18/singbox-go/common/tls/mkcert.go +65 -0
- sing_box_python-1.13.18/singbox-go/common/tls/reality_client.go +332 -0
- sing_box_python-1.13.18/singbox-go/common/tls/reality_server.go +235 -0
- sing_box_python-1.13.18/singbox-go/common/tls/reality_stub.go +5 -0
- sing_box_python-1.13.18/singbox-go/common/tls/server.go +62 -0
- sing_box_python-1.13.18/singbox-go/common/tls/std_client.go +240 -0
- sing_box_python-1.13.18/singbox-go/common/tls/std_server.go +391 -0
- sing_box_python-1.13.18/singbox-go/common/tls/time_wrapper.go +25 -0
- sing_box_python-1.13.18/singbox-go/common/tls/utls_client.go +332 -0
- sing_box_python-1.13.18/singbox-go/common/tls/utls_stub.go +24 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/conn.go +146 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/conn_test.go +42 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/index.go +133 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/index_test.go +20 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_darwin.go +93 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_linux.go +40 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_stub.go +18 -0
- sing_box_python-1.13.18/singbox-go/common/tlsfragment/wait_windows.go +31 -0
- sing_box_python-1.13.18/singbox-go/common/uot/router.go +86 -0
- sing_box_python-1.13.18/singbox-go/common/urltest/urltest.go +142 -0
- sing_box_python-1.13.18/singbox-go/constant/certificate.go +8 -0
- sing_box_python-1.13.18/singbox-go/constant/cgo.go +5 -0
- sing_box_python-1.13.18/singbox-go/constant/cgo_disabled.go +5 -0
- sing_box_python-1.13.18/singbox-go/constant/dhcp.go +8 -0
- sing_box_python-1.13.18/singbox-go/constant/dns.go +37 -0
- sing_box_python-1.13.18/singbox-go/constant/err.go +7 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/gengoos.go +68 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/goos.go +12 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_aix.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_android.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_darwin.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_dragonfly.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_freebsd.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_hurd.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_illumos.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_ios.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_js.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_linux.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_netbsd.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_openbsd.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_plan9.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_solaris.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_windows.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/goos/zgoos_zos.go +25 -0
- sing_box_python-1.13.18/singbox-go/constant/hysteria2.go +7 -0
- sing_box_python-1.13.18/singbox-go/constant/network.go +58 -0
- sing_box_python-1.13.18/singbox-go/constant/os.go +37 -0
- sing_box_python-1.13.18/singbox-go/constant/path.go +41 -0
- sing_box_python-1.13.18/singbox-go/constant/path_unix.go +17 -0
- sing_box_python-1.13.18/singbox-go/constant/protocol.go +22 -0
- sing_box_python-1.13.18/singbox-go/constant/proxy.go +98 -0
- sing_box_python-1.13.18/singbox-go/constant/quic.go +5 -0
- sing_box_python-1.13.18/singbox-go/constant/quic_stub.go +5 -0
- sing_box_python-1.13.18/singbox-go/constant/rule.go +45 -0
- sing_box_python-1.13.18/singbox-go/constant/speed.go +3 -0
- sing_box_python-1.13.18/singbox-go/constant/time.go +3 -0
- sing_box_python-1.13.18/singbox-go/constant/timeout.go +36 -0
- sing_box_python-1.13.18/singbox-go/constant/v2ray.go +9 -0
- sing_box_python-1.13.18/singbox-go/constant/version.go +3 -0
- sing_box_python-1.13.18/singbox-go/daemon/deprecated.go +29 -0
- sing_box_python-1.13.18/singbox-go/daemon/instance.go +148 -0
- sing_box_python-1.13.18/singbox-go/daemon/platform.go +9 -0
- sing_box_python-1.13.18/singbox-go/daemon/started_service.go +1054 -0
- sing_box_python-1.13.18/singbox-go/daemon/started_service.pb.go +2072 -0
- sing_box_python-1.13.18/singbox-go/daemon/started_service.proto +217 -0
- sing_box_python-1.13.18/singbox-go/daemon/started_service_grpc.pb.go +916 -0
- sing_box_python-1.13.18/singbox-go/debug.go +34 -0
- sing_box_python-1.13.18/singbox-go/debug_http.go +76 -0
- sing_box_python-1.13.18/singbox-go/debug_stub.go +7 -0
- sing_box_python-1.13.18/singbox-go/debug_unix.go +25 -0
- sing_box_python-1.13.18/singbox-go/dns/client.go +704 -0
- sing_box_python-1.13.18/singbox-go/dns/client_log.go +69 -0
- sing_box_python-1.13.18/singbox-go/dns/client_truncate.go +30 -0
- sing_box_python-1.13.18/singbox-go/dns/extension_edns0_subnet.go +57 -0
- sing_box_python-1.13.18/singbox-go/dns/rcode.go +18 -0
- sing_box_python-1.13.18/singbox-go/dns/router.go +460 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/conn_pool.go +444 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/dhcp/dhcp.go +316 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/dhcp/dhcp_shared.go +205 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/fakeip.go +79 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/memory.go +93 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/fakeip/store.go +161 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts.go +87 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_file.go +102 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_test.go +16 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_unix.go +5 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/hosts_windows.go +17 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/hosts/testdata/hosts +2 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/https.go +227 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/https_transport.go +90 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local.go +94 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin.go +140 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin_dhcp.go +16 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_darwin_nodhcp.go +15 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved.go +13 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved_linux.go +501 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_resolved_stub.go +19 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/local_shared.go +183 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv.go +145 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_default.go +24 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_test.go +13 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_unix.go +156 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/local/resolv_windows.go +119 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/quic/http3.go +211 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/quic/quic.go +203 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/tcp.go +137 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/tls.go +146 -0
- sing_box_python-1.13.18/singbox-go/dns/transport/udp.go +262 -0
- sing_box_python-1.13.18/singbox-go/dns/transport_adapter.go +78 -0
- sing_box_python-1.13.18/singbox-go/dns/transport_dialer.go +105 -0
- sing_box_python-1.13.18/singbox-go/dns/transport_manager.go +300 -0
- sing_box_python-1.13.18/singbox-go/dns/transport_registry.go +72 -0
- sing_box_python-1.13.18/singbox-go/docs/CNAME +1 -0
- sing_box_python-1.13.18/singbox-go/docs/assets/icon.svg +37 -0
- sing_box_python-1.13.18/singbox-go/docs/changelog.md +4058 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/android/features.md +66 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/android/index.md +23 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/apple/features.md +54 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/apple/index.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/general.md +63 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/index.md +13 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/index.zh.md +12 -0
- sing_box_python-1.13.18/singbox-go/docs/clients/privacy.md +18 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/certificate/index.md +59 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/certificate/index.zh.md +59 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/fakeip.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/fakeip.zh.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/index.md +91 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/index.zh.md +93 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule.md +549 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule.zh.md +553 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule_action.md +144 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/rule_action.zh.md +144 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/dhcp.md +38 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/dhcp.zh.md +38 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/fakeip.md +35 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/fakeip.zh.md +35 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/hosts.md +96 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/hosts.zh.md +96 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/http3.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/http3.zh.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/https.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/https.zh.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/index.md +48 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/index.zh.md +48 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/legacy.md +113 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/legacy.zh.md +113 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/local.md +61 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/local.zh.md +61 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/quic.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/quic.zh.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/resolved.md +84 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/resolved.zh.md +83 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tailscale.md +83 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tailscale.zh.md +83 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tcp.md +52 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tcp.zh.md +52 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tls.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/tls.zh.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/udp.md +52 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/dns/server/udp.zh.md +52 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/index.md +29 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/index.zh.md +29 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/tailscale.md +157 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/tailscale.zh.md +156 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/wireguard.md +129 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/endpoint/wireguard.zh.md +131 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/cache-file.md +54 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/cache-file.zh.md +51 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/clash-api.md +166 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/clash-api.zh.md +164 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/index.md +26 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/index.zh.md +26 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/v2ray-api.md +50 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/experimental/v2ray-api.zh.md +50 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/anytls.md +61 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/anytls.zh.md +61 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/direct.md +36 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/direct.zh.md +37 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/http.md +47 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/http.zh.md +47 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria.zh.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria2.md +146 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/hysteria2.zh.md +143 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/index.md +40 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/index.zh.md +40 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/mixed.md +44 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/mixed.zh.md +44 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/naive.md +63 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/naive.zh.md +63 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/redirect.md +18 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/redirect.zh.md +17 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowsocks.md +96 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowsocks.zh.md +96 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowtls.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/shadowtls.zh.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/socks.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/socks.zh.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tproxy.md +28 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tproxy.zh.md +28 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/trojan.md +68 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/trojan.zh.md +68 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tuic.md +78 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tuic.zh.md +78 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tun.md +605 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/tun.zh.md +588 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vless.md +59 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vless.zh.md +59 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vmess.md +54 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/inbound/vmess.zh.md +54 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/index.md +53 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/index.zh.md +53 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/log/index.md +33 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/log/index.zh.md +33 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/ntp/index.md +50 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/ntp/index.zh.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/anytls.md +73 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/anytls.zh.md +73 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/block.md +16 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/block.zh.md +18 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/direct.md +48 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/direct.zh.md +46 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/dns.md +26 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/dns.zh.md +26 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/http.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/http.zh.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria.md +141 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria.zh.md +142 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria2.md +118 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/hysteria2.zh.md +116 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/index.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/index.zh.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/naive.md +116 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/naive.zh.md +116 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/selector.md +38 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/selector.zh.md +38 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowsocks.md +102 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowsocks.zh.md +102 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowtls.md +56 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/shadowtls.zh.md +56 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/socks.md +66 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/socks.zh.md +66 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/ssh.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/ssh.zh.md +71 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tor.md +51 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tor.zh.md +51 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/trojan.md +62 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/trojan.zh.md +62 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tuic.md +96 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/tuic.zh.md +104 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/urltest.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/urltest.zh.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vless.md +82 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vless.zh.md +82 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vmess.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/vmess.zh.md +107 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/wireguard.md +168 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/outbound/wireguard.zh.md +142 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/geoip.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/geoip.zh.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/geosite.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/geosite.zh.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/index.md +146 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/index.zh.md +145 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule.md +506 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule.zh.md +504 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule_action.md +319 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/rule_action.zh.md +308 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/sniff.md +32 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/route/sniff.zh.md +32 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/adguard.md +65 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/adguard.zh.md +64 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/headless-rule.md +297 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/headless-rule.zh.md +291 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/index.md +115 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/index.zh.md +115 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/source-format.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/rule-set/source-format.zh.md +49 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ccm.md +131 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ccm.zh.md +131 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/derp.md +135 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/derp.zh.md +135 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/index.md +34 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/index.zh.md +34 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ocm.md +185 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ocm.zh.md +186 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/resolved.md +44 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/resolved.zh.md +44 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ssm-api.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/service/ssm-api.zh.md +58 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dial.md +270 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dial.zh.md +258 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dns01_challenge.md +73 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/dns01_challenge.zh.md +73 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/listen.md +202 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/listen.zh.md +200 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/multiplex.md +86 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/multiplex.zh.md +85 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/pre-match.md +50 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/pre-match.zh.md +47 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tcp-brutal.md +28 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tcp-brutal.zh.md +28 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tls.md +680 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/tls.zh.md +670 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/udp-over-tcp.md +82 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/udp-over-tcp.zh.md +82 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/v2ray-transport.md +229 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/v2ray-transport.zh.md +218 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/wifi-state.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/configuration/shared/wifi-state.zh.md +41 -0
- sing_box_python-1.13.18/singbox-go/docs/deprecated.md +129 -0
- sing_box_python-1.13.18/singbox-go/docs/deprecated.zh.md +121 -0
- sing_box_python-1.13.18/singbox-go/docs/index.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/index.zh.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/build-from-source.md +125 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/build-from-source.zh.md +129 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/docker.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/docker.zh.md +31 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/package-manager.md +157 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/package-manager.zh.md +150 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/tools/arch-install.sh +22 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/tools/deb-install.sh +23 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/tools/install.sh +127 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/tools/rpm-install.sh +22 -0
- sing_box_python-1.13.18/singbox-go/docs/installation/tools/sing-box.repo +7 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/misc/anytls-client-metadata.md +67 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/misc/anytls-client-metadata.zh.md +35 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/misc/tunnelvision.md +38 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/proxy/client.md +503 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/proxy/server.md +10 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/hysteria2.md +212 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/shadowsocks.md +125 -0
- sing_box_python-1.13.18/singbox-go/docs/manual/proxy-protocol/trojan.md +200 -0
- sing_box_python-1.13.18/singbox-go/docs/migration.md +1191 -0
- sing_box_python-1.13.18/singbox-go/docs/migration.zh.md +1189 -0
- sing_box_python-1.13.18/singbox-go/docs/sponsors.md +26 -0
- sing_box_python-1.13.18/singbox-go/docs/support.md +12 -0
- sing_box_python-1.13.18/singbox-go/docs/support.zh.md +13 -0
- sing_box_python-1.13.18/singbox-go/experimental/cachefile/cache.go +361 -0
- sing_box_python-1.13.18/singbox-go/experimental/cachefile/fakeip.go +194 -0
- sing_box_python-1.13.18/singbox-go/experimental/cachefile/rdrc.go +109 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta.go +96 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta_group.go +136 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/api_meta_upgrade.go +36 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/cache.go +44 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/common.go +17 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/configs.go +71 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/connections.go +108 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/ctxkeys.go +14 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/dns.go +82 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/errors.go +22 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/profile.go +53 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/provider.go +74 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/proxies.go +234 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/ruleprovider.go +58 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/rules.go +40 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/script.go +98 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/server.go +435 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/server_fs.go +18 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/server_resources.go +170 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/trafficontrol/manager.go +181 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi/trafficontrol/tracker.go +254 -0
- sing_box_python-1.13.18/singbox-go/experimental/clashapi.go +81 -0
- sing_box_python-1.13.18/singbox-go/experimental/deprecated/constants.go +111 -0
- sing_box_python-1.13.18/singbox-go/experimental/deprecated/manager.go +19 -0
- sing_box_python-1.13.18/singbox-go/experimental/deprecated/stderr.go +46 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/build_info.go +234 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/command.go +9 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/command_client.go +578 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/command_server.go +276 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/command_types.go +420 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/config.go +209 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/connection_owner_darwin.go +57 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/deprecated.go +33 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/dns.go +147 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/fdroid.go +493 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/fdroid_mirrors.go +92 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/ffi.json +257 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/http.go +274 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/internal/procfs/procfs.go +148 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/iterator.go +63 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/link_flags_stub.go +11 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/link_flags_unix.go +32 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/log.go +34 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/memory.go +26 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/monitor.go +116 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/panic.go +12 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/pidfd_android.go +19 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/platform.go +97 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/pprof.go +33 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/profile_import.go +278 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/remote_profile.go +41 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/semver.go +27 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/semver_test.go +16 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/service.go +261 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/service_other.go +9 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/service_windows.go +7 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/setup.go +87 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/tun.go +168 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_darwin.go +34 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_darwin.go +11 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_linux.go +26 -0
- sing_box_python-1.13.18/singbox-go/experimental/libbox/tun_name_other.go +9 -0
- sing_box_python-1.13.18/singbox-go/experimental/locale/locale.go +32 -0
- sing_box_python-1.13.18/singbox-go/experimental/locale/locale_zh_CN.go +11 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/server.go +82 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.go +222 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.pb.go +538 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats.proto +53 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi/stats_grpc.pb.go +194 -0
- sing_box_python-1.13.18/singbox-go/experimental/v2rayapi.go +24 -0
- sing_box_python-1.13.18/singbox-go/go.mod +168 -0
- sing_box_python-1.13.18/singbox-go/go.sum +403 -0
- sing_box_python-1.13.18/singbox-go/include/ccm.go +12 -0
- sing_box_python-1.13.18/singbox-go/include/ccm_stub.go +20 -0
- sing_box_python-1.13.18/singbox-go/include/ccm_stub_darwin.go +20 -0
- sing_box_python-1.13.18/singbox-go/include/clashapi.go +5 -0
- sing_box_python-1.13.18/singbox-go/include/clashapi_stub.go +19 -0
- sing_box_python-1.13.18/singbox-go/include/dhcp.go +12 -0
- sing_box_python-1.13.18/singbox-go/include/dhcp_stub.go +20 -0
- sing_box_python-1.13.18/singbox-go/include/naive_outbound.go +12 -0
- sing_box_python-1.13.18/singbox-go/include/naive_outbound_stub.go +20 -0
- sing_box_python-1.13.18/singbox-go/include/ocm.go +12 -0
- sing_box_python-1.13.18/singbox-go/include/ocm_stub.go +20 -0
- sing_box_python-1.13.18/singbox-go/include/oom_killer.go +10 -0
- sing_box_python-1.13.18/singbox-go/include/quic.go +32 -0
- sing_box_python-1.13.18/singbox-go/include/quic_stub.go +71 -0
- sing_box_python-1.13.18/singbox-go/include/registry.go +155 -0
- sing_box_python-1.13.18/singbox-go/include/tailscale.go +23 -0
- sing_box_python-1.13.18/singbox-go/include/tailscale_stub.go +34 -0
- sing_box_python-1.13.18/singbox-go/include/tz_android.go +21 -0
- sing_box_python-1.13.18/singbox-go/include/tz_ios.go +30 -0
- sing_box_python-1.13.18/singbox-go/include/v2rayapi.go +5 -0
- sing_box_python-1.13.18/singbox-go/include/v2rayapi_stub.go +17 -0
- sing_box_python-1.13.18/singbox-go/include/wireguard.go +12 -0
- sing_box_python-1.13.18/singbox-go/include/wireguard_stub.go +20 -0
- sing_box_python-1.13.18/singbox-go/log/export.go +84 -0
- sing_box_python-1.13.18/singbox-go/log/factory.go +30 -0
- sing_box_python-1.13.18/singbox-go/log/format.go +174 -0
- sing_box_python-1.13.18/singbox-go/log/id.go +30 -0
- sing_box_python-1.13.18/singbox-go/log/level.go +59 -0
- sing_box_python-1.13.18/singbox-go/log/log.go +71 -0
- sing_box_python-1.13.18/singbox-go/log/nop.go +88 -0
- sing_box_python-1.13.18/singbox-go/log/observable.go +199 -0
- sing_box_python-1.13.18/singbox-go/log/override.go +19 -0
- sing_box_python-1.13.18/singbox-go/log/platform.go +5 -0
- sing_box_python-1.13.18/singbox-go/mkdocs.yml +287 -0
- sing_box_python-1.13.18/singbox-go/option/anytls.go +26 -0
- sing_box_python-1.13.18/singbox-go/option/ccm.go +20 -0
- sing_box_python-1.13.18/singbox-go/option/certificate.go +36 -0
- sing_box_python-1.13.18/singbox-go/option/debug.go +14 -0
- sing_box_python-1.13.18/singbox-go/option/direct.go +39 -0
- sing_box_python-1.13.18/singbox-go/option/dns.go +409 -0
- sing_box_python-1.13.18/singbox-go/option/dns_record.go +102 -0
- sing_box_python-1.13.18/singbox-go/option/endpoint.go +47 -0
- sing_box_python-1.13.18/singbox-go/option/experimental.go +54 -0
- sing_box_python-1.13.18/singbox-go/option/group.go +18 -0
- sing_box_python-1.13.18/singbox-go/option/hysteria.go +46 -0
- sing_box_python-1.13.18/singbox-go/option/hysteria2.go +124 -0
- sing_box_python-1.13.18/singbox-go/option/inbound.go +117 -0
- sing_box_python-1.13.18/singbox-go/option/multiplex.go +23 -0
- sing_box_python-1.13.18/singbox-go/option/naive.go +40 -0
- sing_box_python-1.13.18/singbox-go/option/ntp.go +11 -0
- sing_box_python-1.13.18/singbox-go/option/ocm.go +20 -0
- sing_box_python-1.13.18/singbox-go/option/oom_killer.go +14 -0
- sing_box_python-1.13.18/singbox-go/option/options.go +100 -0
- sing_box_python-1.13.18/singbox-go/option/outbound.go +167 -0
- sing_box_python-1.13.18/singbox-go/option/platform.go +105 -0
- sing_box_python-1.13.18/singbox-go/option/redir.go +10 -0
- sing_box_python-1.13.18/singbox-go/option/resolved.go +49 -0
- sing_box_python-1.13.18/singbox-go/option/route.go +33 -0
- sing_box_python-1.13.18/singbox-go/option/rule.go +163 -0
- sing_box_python-1.13.18/singbox-go/option/rule_action.go +322 -0
- sing_box_python-1.13.18/singbox-go/option/rule_dns.go +166 -0
- sing_box_python-1.13.18/singbox-go/option/rule_set.go +287 -0
- sing_box_python-1.13.18/singbox-go/option/service.go +47 -0
- sing_box_python-1.13.18/singbox-go/option/shadowsocks.go +35 -0
- sing_box_python-1.13.18/singbox-go/option/shadowsocksr.go +13 -0
- sing_box_python-1.13.18/singbox-go/option/shadowtls.go +81 -0
- sing_box_python-1.13.18/singbox-go/option/simple.go +40 -0
- sing_box_python-1.13.18/singbox-go/option/ssh.go +16 -0
- sing_box_python-1.13.18/singbox-go/option/ssmapi.go +12 -0
- sing_box_python-1.13.18/singbox-go/option/tailscale.go +122 -0
- sing_box_python-1.13.18/singbox-go/option/tls.go +238 -0
- sing_box_python-1.13.18/singbox-go/option/tls_acme.go +96 -0
- sing_box_python-1.13.18/singbox-go/option/tor.go +9 -0
- sing_box_python-1.13.18/singbox-go/option/trojan.go +26 -0
- sing_box_python-1.13.18/singbox-go/option/tuic.go +33 -0
- sing_box_python-1.13.18/singbox-go/option/tun.go +86 -0
- sing_box_python-1.13.18/singbox-go/option/tun_platform.go +14 -0
- sing_box_python-1.13.18/singbox-go/option/types.go +195 -0
- sing_box_python-1.13.18/singbox-go/option/udp_over_tcp.go +30 -0
- sing_box_python-1.13.18/singbox-go/option/v2ray.go +1 -0
- sing_box_python-1.13.18/singbox-go/option/v2ray_transport.go +100 -0
- sing_box_python-1.13.18/singbox-go/option/vless.go +27 -0
- sing_box_python-1.13.18/singbox-go/option/vmess.go +30 -0
- sing_box_python-1.13.18/singbox-go/option/wireguard.go +30 -0
- sing_box_python-1.13.18/singbox-go/protocol/anytls/client_metadata.go +64 -0
- sing_box_python-1.13.18/singbox-go/protocol/anytls/inbound.go +134 -0
- sing_box_python-1.13.18/singbox-go/protocol/anytls/outbound.go +156 -0
- sing_box_python-1.13.18/singbox-go/protocol/block/outbound.go +42 -0
- sing_box_python-1.13.18/singbox-go/protocol/direct/inbound.go +144 -0
- sing_box_python-1.13.18/singbox-go/protocol/direct/outbound.go +215 -0
- sing_box_python-1.13.18/singbox-go/protocol/dns/handle.go +220 -0
- sing_box_python-1.13.18/singbox-go/protocol/dns/outbound.go +63 -0
- sing_box_python-1.13.18/singbox-go/protocol/group/selector.go +192 -0
- sing_box_python-1.13.18/singbox-go/protocol/group/urltest.go +431 -0
- sing_box_python-1.13.18/singbox-go/protocol/http/inbound.go +132 -0
- sing_box_python-1.13.18/singbox-go/protocol/http/outbound.go +65 -0
- sing_box_python-1.13.18/singbox-go/protocol/hysteria/inbound.go +180 -0
- sing_box_python-1.13.18/singbox-go/protocol/hysteria/outbound.go +126 -0
- sing_box_python-1.13.18/singbox-go/protocol/hysteria2/inbound.go +213 -0
- sing_box_python-1.13.18/singbox-go/protocol/hysteria2/outbound.go +120 -0
- sing_box_python-1.13.18/singbox-go/protocol/mixed/inbound.go +168 -0
- sing_box_python-1.13.18/singbox-go/protocol/naive/inbound.go +251 -0
- sing_box_python-1.13.18/singbox-go/protocol/naive/inbound_conn.go +257 -0
- sing_box_python-1.13.18/singbox-go/protocol/naive/outbound.go +275 -0
- sing_box_python-1.13.18/singbox-go/protocol/naive/quic/inbound_init.go +132 -0
- sing_box_python-1.13.18/singbox-go/protocol/redirect/redirect.go +68 -0
- sing_box_python-1.13.18/singbox-go/protocol/redirect/tproxy.go +150 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound.go +188 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound_multi.go +212 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/inbound_relay.go +166 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowsocks/outbound.go +184 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowtls/inbound.go +141 -0
- sing_box_python-1.13.18/singbox-go/protocol/shadowtls/outbound.go +104 -0
- sing_box_python-1.13.18/singbox-go/protocol/socks/inbound.go +119 -0
- sing_box_python-1.13.18/singbox-go/protocol/socks/outbound.go +117 -0
- sing_box_python-1.13.18/singbox-go/protocol/ssh/outbound.go +219 -0
- sing_box_python-1.13.18/singbox-go/protocol/tailscale/dns_transport.go +372 -0
- sing_box_python-1.13.18/singbox-go/protocol/tailscale/endpoint.go +930 -0
- sing_box_python-1.13.18/singbox-go/protocol/tailscale/tun_device_unix.go +155 -0
- sing_box_python-1.13.18/singbox-go/protocol/tailscale/tun_device_windows.go +136 -0
- sing_box_python-1.13.18/singbox-go/protocol/tor/outbound.go +212 -0
- sing_box_python-1.13.18/singbox-go/protocol/tor/proxy.go +121 -0
- sing_box_python-1.13.18/singbox-go/protocol/trojan/inbound.go +262 -0
- sing_box_python-1.13.18/singbox-go/protocol/trojan/outbound.go +164 -0
- sing_box_python-1.13.18/singbox-go/protocol/tuic/inbound.go +170 -0
- sing_box_python-1.13.18/singbox-go/protocol/tuic/outbound.go +141 -0
- sing_box_python-1.13.18/singbox-go/protocol/tun/hook.go +3 -0
- sing_box_python-1.13.18/singbox-go/protocol/tun/inbound.go +541 -0
- sing_box_python-1.13.18/singbox-go/protocol/vless/inbound.go +222 -0
- sing_box_python-1.13.18/singbox-go/protocol/vless/outbound.go +224 -0
- sing_box_python-1.13.18/singbox-go/protocol/vmess/inbound.go +228 -0
- sing_box_python-1.13.18/singbox-go/protocol/vmess/outbound.go +212 -0
- sing_box_python-1.13.18/singbox-go/protocol/wireguard/endpoint.go +288 -0
- sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS +1 -0
- sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS_OTHERS +1 -0
- sing_box_python-1.13.18/singbox-go/release/DEFAULT_BUILD_TAGS_WINDOWS +1 -0
- sing_box_python-1.13.18/singbox-go/release/LDFLAGS +1 -0
- sing_box_python-1.13.18/singbox-go/release/completions/sing-box.bash +1580 -0
- sing_box_python-1.13.18/singbox-go/release/completions/sing-box.fish +235 -0
- sing_box_python-1.13.18/singbox-go/release/completions/sing-box.zsh +212 -0
- sing_box_python-1.13.18/singbox-go/release/config/config.json +41 -0
- sing_box_python-1.13.18/singbox-go/release/config/openwrt.conf +5 -0
- sing_box_python-1.13.18/singbox-go/release/config/openwrt.init +32 -0
- sing_box_python-1.13.18/singbox-go/release/config/openwrt.keep +1 -0
- sing_box_python-1.13.18/singbox-go/release/config/openwrt.prerm +4 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box-split-dns.xml +15 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.confd +6 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.initd +44 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.postinst +3 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.rules +8 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.service +18 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box.sysusers +1 -0
- sing_box_python-1.13.18/singbox-go/release/config/sing-box@.service +18 -0
- sing_box_python-1.13.18/singbox-go/release/local/common.sh +102 -0
- sing_box_python-1.13.18/singbox-go/release/local/debug.sh +26 -0
- sing_box_python-1.13.18/singbox-go/release/local/enable.sh +7 -0
- sing_box_python-1.13.18/singbox-go/release/local/install.sh +19 -0
- sing_box_python-1.13.18/singbox-go/release/local/install_go.sh +9 -0
- sing_box_python-1.13.18/singbox-go/release/local/reinstall.sh +19 -0
- sing_box_python-1.13.18/singbox-go/release/local/sing-box.service +16 -0
- sing_box_python-1.13.18/singbox-go/release/local/uninstall.sh +30 -0
- sing_box_python-1.13.18/singbox-go/release/local/update.sh +16 -0
- sing_box_python-1.13.18/singbox-go/route/conn.go +431 -0
- sing_box_python-1.13.18/singbox-go/route/dns.go +109 -0
- sing_box_python-1.13.18/singbox-go/route/network.go +542 -0
- sing_box_python-1.13.18/singbox-go/route/platform_searcher.go +49 -0
- sing_box_python-1.13.18/singbox-go/route/process_cache.go +94 -0
- sing_box_python-1.13.18/singbox-go/route/route.go +785 -0
- sing_box_python-1.13.18/singbox-go/route/router.go +229 -0
- sing_box_python-1.13.18/singbox-go/route/rule/match_state.go +118 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_abstract.go +303 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_abstract_test.go +156 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_action.go +556 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_default.go +326 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_default_interface_address.go +56 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_dns.go +379 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_headless.go +238 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_interface_address.go +62 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_adguard.go +43 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_auth_user.go +37 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_cidr.go +91 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_clash_mode.go +40 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_client.go +37 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain.go +76 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain_keyword.go +47 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_domain_regex.go +61 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_inbound.go +35 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ip_accept_any.go +21 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ip_is_private.go +46 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_ipversion.go +30 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network.go +42 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_is_constrained.go +29 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_is_expensive.go +29 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_network_type.go +40 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_outbound.go +46 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_package_name.go +48 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_port.go +52 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_port_range.go +87 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_preferred_by.go +86 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_name.go +44 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_path.go +54 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_process_path_regex.go +54 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_protocol.go +37 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_query_type.go +47 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_rule_set.go +78 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_user.go +40 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_user_id.go +44 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_wifi_bssid.go +39 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_item_wifi_ssid.go +39 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_network_interface_address.go +68 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_set.go +71 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_set_local.go +221 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_set_remote.go +341 -0
- sing_box_python-1.13.18/singbox-go/route/rule/rule_set_semantics_test.go +849 -0
- sing_box_python-1.13.18/singbox-go/route/rule_conds.go +54 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/credential.go +139 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/credential_darwin.go +116 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/credential_other.go +25 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/service.go +595 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/service_usage.go +706 -0
- sing_box_python-1.13.18/singbox-go/service/ccm/service_user.go +29 -0
- sing_box_python-1.13.18/singbox-go/service/derp/service.go +529 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/credential.go +173 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/credential_darwin.go +25 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/credential_other.go +25 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/service.go +707 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/service_usage.go +1199 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/service_user.go +29 -0
- sing_box_python-1.13.18/singbox-go/service/ocm/service_websocket.go +285 -0
- sing_box_python-1.13.18/singbox-go/service/oomkiller/config.go +51 -0
- sing_box_python-1.13.18/singbox-go/service/oomkiller/service.go +193 -0
- sing_box_python-1.13.18/singbox-go/service/oomkiller/service_stub.go +81 -0
- sing_box_python-1.13.18/singbox-go/service/oomkiller/service_timer.go +143 -0
- sing_box_python-1.13.18/singbox-go/service/resolved/resolve1.go +657 -0
- sing_box_python-1.13.18/singbox-go/service/resolved/service.go +256 -0
- sing_box_python-1.13.18/singbox-go/service/resolved/stub.go +27 -0
- sing_box_python-1.13.18/singbox-go/service/resolved/transport.go +306 -0
- sing_box_python-1.13.18/singbox-go/service/ssmapi/api.go +177 -0
- sing_box_python-1.13.18/singbox-go/service/ssmapi/cache.go +239 -0
- sing_box_python-1.13.18/singbox-go/service/ssmapi/server.go +163 -0
- sing_box_python-1.13.18/singbox-go/service/ssmapi/traffic.go +223 -0
- sing_box_python-1.13.18/singbox-go/service/ssmapi/user.go +87 -0
- sing_box_python-1.13.18/singbox-go/test/box_test.go +182 -0
- sing_box_python-1.13.18/singbox-go/test/brutal_test.go +392 -0
- sing_box_python-1.13.18/singbox-go/test/clash_darwin_test.go +71 -0
- sing_box_python-1.13.18/singbox-go/test/clash_other_test.go +12 -0
- sing_box_python-1.13.18/singbox-go/test/clash_test.go +524 -0
- sing_box_python-1.13.18/singbox-go/test/config/hysteria-client.json +12 -0
- sing_box_python-1.13.18/singbox-go/test/config/hysteria-server.json +9 -0
- sing_box_python-1.13.18/singbox-go/test/config/hysteria2-client.yml +11 -0
- sing_box_python-1.13.18/singbox-go/test/config/hysteria2-server.yml +12 -0
- sing_box_python-1.13.18/singbox-go/test/config/naive-nginx.conf +18 -0
- sing_box_python-1.13.18/singbox-go/test/config/naive-quic.json +6 -0
- sing_box_python-1.13.18/singbox-go/test/config/naive.json +6 -0
- sing_box_python-1.13.18/singbox-go/test/config/nginx.conf +29 -0
- sing_box_python-1.13.18/singbox-go/test/config/shadowsocksr.json +19 -0
- sing_box_python-1.13.18/singbox-go/test/config/trojan.json +40 -0
- sing_box_python-1.13.18/singbox-go/test/config/tuic-client.json +16 -0
- sing_box_python-1.13.18/singbox-go/test/config/tuic-server.json +10 -0
- sing_box_python-1.13.18/singbox-go/test/config/vless-server.json +25 -0
- sing_box_python-1.13.18/singbox-go/test/config/vless-tls-client.json +51 -0
- sing_box_python-1.13.18/singbox-go/test/config/vless-tls-server.json +39 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-client.json +38 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-grpc-client.json +51 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-grpc-server.json +40 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-mux-client.json +41 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-server.json +25 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-ws-client.json +52 -0
- sing_box_python-1.13.18/singbox-go/test/config/vmess-ws-server.json +41 -0
- sing_box_python-1.13.18/singbox-go/test/config/wireguard.conf +8 -0
- sing_box_python-1.13.18/singbox-go/test/direct_test.go +73 -0
- sing_box_python-1.13.18/singbox-go/test/docker_test.go +121 -0
- sing_box_python-1.13.18/singbox-go/test/domain_inbound_test.go +94 -0
- sing_box_python-1.13.18/singbox-go/test/ech_test.go +287 -0
- sing_box_python-1.13.18/singbox-go/test/go.mod +179 -0
- sing_box_python-1.13.18/singbox-go/test/go.sum +429 -0
- sing_box_python-1.13.18/singbox-go/test/http_test.go +72 -0
- sing_box_python-1.13.18/singbox-go/test/hysteria2_test.go +234 -0
- sing_box_python-1.13.18/singbox-go/test/hysteria_test.go +189 -0
- sing_box_python-1.13.18/singbox-go/test/inbound_detour_test.go +103 -0
- sing_box_python-1.13.18/singbox-go/test/ktls_test.go +295 -0
- sing_box_python-1.13.18/singbox-go/test/mkcert.go +88 -0
- sing_box_python-1.13.18/singbox-go/test/mux_cool_test.go +182 -0
- sing_box_python-1.13.18/singbox-go/test/mux_test.go +198 -0
- sing_box_python-1.13.18/singbox-go/test/naive_self_test.go +533 -0
- sing_box_python-1.13.18/singbox-go/test/naive_test.go +147 -0
- sing_box_python-1.13.18/singbox-go/test/reality_test.go +108 -0
- sing_box_python-1.13.18/singbox-go/test/shadowsocks_legacy_test.go +55 -0
- sing_box_python-1.13.18/singbox-go/test/shadowsocks_test.go +367 -0
- sing_box_python-1.13.18/singbox-go/test/shadowtls_test.go +498 -0
- sing_box_python-1.13.18/singbox-go/test/socks_test.go +133 -0
- sing_box_python-1.13.18/singbox-go/test/ss_plugin_test.go +66 -0
- sing_box_python-1.13.18/singbox-go/test/tfo_test.go +83 -0
- sing_box_python-1.13.18/singbox-go/test/tls_test.go +99 -0
- sing_box_python-1.13.18/singbox-go/test/trojan_test.go +209 -0
- sing_box_python-1.13.18/singbox-go/test/tuic_test.go +198 -0
- sing_box_python-1.13.18/singbox-go/test/v2ray_api_test.go +60 -0
- sing_box_python-1.13.18/singbox-go/test/v2ray_grpc_test.go +219 -0
- sing_box_python-1.13.18/singbox-go/test/v2ray_httpupgrade_test.go +16 -0
- sing_box_python-1.13.18/singbox-go/test/v2ray_transport_test.go +384 -0
- sing_box_python-1.13.18/singbox-go/test/v2ray_ws_test.go +205 -0
- sing_box_python-1.13.18/singbox-go/test/vmess_test.go +337 -0
- sing_box_python-1.13.18/singbox-go/test/wrapper_test.go +30 -0
- sing_box_python-1.13.18/singbox-go/transport/simple-obfs/README.md +4 -0
- sing_box_python-1.13.18/singbox-go/transport/simple-obfs/http.go +98 -0
- sing_box_python-1.13.18/singbox-go/transport/simple-obfs/tls.go +205 -0
- sing_box_python-1.13.18/singbox-go/transport/sip003/args.go +107 -0
- sing_box_python-1.13.18/singbox-go/transport/sip003/obfs.go +62 -0
- sing_box_python-1.13.18/singbox-go/transport/sip003/plugin.go +38 -0
- sing_box_python-1.13.18/singbox-go/transport/sip003/v2ray.go +119 -0
- sing_box_python-1.13.18/singbox-go/transport/trojan/mux.go +84 -0
- sing_box_python-1.13.18/singbox-go/transport/trojan/protocol.go +321 -0
- sing_box_python-1.13.18/singbox-go/transport/trojan/protocol_wait.go +45 -0
- sing_box_python-1.13.18/singbox-go/transport/trojan/service.go +149 -0
- sing_box_python-1.13.18/singbox-go/transport/trojan/service_wait.go +45 -0
- sing_box_python-1.13.18/singbox-go/transport/v2ray/grpc.go +30 -0
- sing_box_python-1.13.18/singbox-go/transport/v2ray/grpc_lite.go +23 -0
- sing_box_python-1.13.18/singbox-go/transport/v2ray/quic.go +37 -0
- sing_box_python-1.13.18/singbox-go/transport/v2ray/transport.go +68 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/client.go +117 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/conn.go +106 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/credentials.go +49 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/spiffe.go +75 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/syscallconn.go +58 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/credentials/util.go +51 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/custom_name.go +51 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/server.go +97 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream.pb.go +125 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream.proto +12 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/stream_grpc.pb.go +110 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpc/tls_credentials.go +86 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/client.go +108 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/conn.go +169 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raygrpclite/server.go +119 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/client.go +157 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/conn.go +267 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/force_close.go +47 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/pool.go +13 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttp/server.go +183 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttpupgrade/client.go +120 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayhttpupgrade/server.go +145 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayquic/client.go +116 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayquic/init.go +9 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayquic/server.go +99 -0
- sing_box_python-1.13.18/singbox-go/transport/v2rayquic/stream.go +45 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/client.go +125 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/conn.go +307 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/server.go +145 -0
- sing_box_python-1.13.18/singbox-go/transport/v2raywebsocket/writer.go +74 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/client_bind.go +262 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device.go +52 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_nat.go +103 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack.go +352 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack_gonet.go +79 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_stack_stub.go +13 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_system.go +196 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/device_system_stack.go +248 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/endpoint.go +296 -0
- sing_box_python-1.13.18/singbox-go/transport/wireguard/endpoint_options.go +40 -0
- sing_box_python-1.13.18/src/cronet.c +4 -0
- sing_box_python-1.13.18/src/singbox.cpp +334 -0
- 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,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
|
+
[](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
|
+
[](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" }
|