sing-box-python 1.13.18__tar.gz → 1.13.20__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.20/.go-version +1 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/MANIFEST.in +3 -0
- {sing_box_python-1.13.18/sing_box_python.egg-info → sing_box_python-1.13.20}/PKG-INFO +44 -12
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/README.md +43 -11
- sing_box_python-1.13.20/UPSTREAM_COMMIT +1 -0
- sing_box_python-1.13.20/UPSTREAM_VERSION +1 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/pyproject.toml +17 -9
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/setup.py +7 -2
- {sing_box_python-1.13.18 → sing_box_python-1.13.20/sing_box_python.egg-info}/PKG-INFO +44 -12
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/sing_box_python.egg-info/SOURCES.txt +5 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/build_alpine_apk.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/build_openwrt_apk.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/deb2ipk.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/detect_track.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/setup_go_for_macos1013.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/setup_go_for_windows7.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/update_clients.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/update_cronet.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/update_cronet_dev.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/update_dependencies.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/workflows/build.yml +26 -25
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/experimental.go +8 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/inbound.go +2 -2
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/update_apple_version/main.go +11 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd.go +4 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/compat_test.go +5 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/reader.go +21 -12
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/srs/binary.go +25 -47
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/srs/compat_test.go +2 -2
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/srs/ip_cidr.go +7 -3
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/srs/ip_set.go +22 -18
- sing_box_python-1.13.20/singbox-go/common/srs/malformed_test.go +53 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/dhcp/dhcp.go +1 -7
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/dhcp/dhcp_shared.go +28 -39
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/changelog.md +8 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/rule.md +2 -2
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/rule.zh.md +1 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/tools/install.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/cachefile/cache.go +17 -15
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/cachefile/fakeip.go +9 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/connections.go +4 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/proxies.go +34 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/server.go +3 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/command_server.go +1 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/profile_import.go +6 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/go.mod +4 -5
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/go.sum +8 -10
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/export.go +6 -2
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/observable.go +69 -29
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/direct/outbound.go +4 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/group/urltest.go +28 -6
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/ssh/outbound.go +18 -6
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tailscale/endpoint.go +12 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/openwrt.init +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/openwrt.prerm +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.initd +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/common.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/debug.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/enable.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/install.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/install_go.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/reinstall.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/uninstall.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/update.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/network.go +9 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/router.go +0 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/match_state.go +14 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_abstract.go +49 -26
- sing_box_python-1.13.20/singbox-go/route/rule/rule_dns_address_filter_test.go +392 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_rule_set.go +3 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_set_local.go +3 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_set_remote.go +3 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_set_semantics_test.go +18 -6
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/oomkiller/service.go +4 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/oomkiller/service_stub.go +3 -3
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/oomkiller/service_timer.go +4 -4
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raywebsocket/client.go +8 -13
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raywebsocket/conn.go +20 -22
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/tests/test_binding.py +2 -1
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/CMakeLists.txt +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/LICENSE +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/setup.cfg +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/sing_box_python.egg-info/dependency_links.txt +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/sing_box_python.egg-info/not-zip-safe +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/sing_box_python.egg-info/top_level.txt +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox/__init__.py +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox/_native.pyi +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox/py.typed +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.fpm_openwrt +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.fpm_pacman +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.fpm_systemd +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/CRONET_GO_VERSION +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/FUNDING.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/ISSUE_TEMPLATE/bug_report_zh.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/renovate.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/workflows/docker.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/workflows/lint.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/workflows/linux.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/workflows/stale.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.gitignore +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.gitmodules +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.golangci.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/Dockerfile +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/Dockerfile.binary +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/LICENSE +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/Makefile +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/README.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/certificate.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/connections.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/endpoint/adapter.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/endpoint/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/endpoint/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/endpoint.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/fakeip.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/fakeip_metadata.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/handler.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/inbound/adapter.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/inbound/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/inbound/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/lifecycle.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/lifecycle_legacy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/network.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/outbound/adapter.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/outbound/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/outbound/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/prestart.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/router.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/rule.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/service/adapter.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/service/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/service/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/ssm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/time.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/upstream.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/upstream_legacy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/adapter/v2ray.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/binding/cronet_purego.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/binding/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/box.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/app_store_connect/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/build/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/build_libbox/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/build_shared/sdk.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/build_shared/tag.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/format_docs/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/merge_aar/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/merge_apple_xcframework/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/protogen/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/read_tag/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/tun_bench/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/update_android_version/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/internal/update_certificates/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_check.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_format.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_generate.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_generate_ech.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_generate_tls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_generate_vapid.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_generate_wireguard.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geoip.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geoip_export.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geoip_list.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geoip_lookup.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geosite.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geosite_export.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geosite_list.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geosite_lookup.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_geosite_matcher.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_merge.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_compile.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_convert.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_decompile.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_format.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_match.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_merge.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_rule_set_upgrade.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_run.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools_connect.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools_fetch.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools_fetch_http3.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools_fetch_http3_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_tools_synctime.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/cmd_version.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/generate_completions.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/cmd/sing-box/main.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/raw_conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/raw_half_conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/read_wait.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/read_wait_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badtls/registry_utls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badversion/version.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badversion/version_json.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/badversion/version_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/certificate/chrome.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/certificate/mozilla.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/certificate/store.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/compatible/map.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/convertor/adguard/convertor.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/convertor/adguard/convertor_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/default.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/default_parallel_interface.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/default_parallel_network.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/detour.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/dialer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/resolve.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/router.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/tfo.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/dialer/wireguard.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geoip/reader.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/geosite_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/rule.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/writer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/interrupt/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/interrupt/context.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/interrupt/group.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ja3/LICENSE +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ja3/README.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ja3/error.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ja3/ja3.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ja3/parser.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_alert.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_cipher_suites_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_close.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_const.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_handshake_messages.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_key_update.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_prf.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_read.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_read_wait.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_stub_nolinkname.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_stub_nonlinux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_stub_oldgo.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/ktls/ktls_write.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/listener/listener.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/listener/listener_tcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/listener/listener_udp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/mux/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/mux/router.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/pipelistener/listener.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_android.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_darwin_shared.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_linux_shared.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_linux_shared_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/process/searcher_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/redir/redir_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/redir/redir_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/redir/redir_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/redir/tproxy_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/redir/tproxy_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/proxy_android.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/proxy_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/proxy_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/proxy_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/proxy_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/system_proxy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_linux_connman.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_linux_iwd.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_linux_nm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_linux_wpa.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/settings/wifi_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/bittorrent.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/bittorrent_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/dns_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/dtls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/dtls_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/http.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/http_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/internal/qtls/qtls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/ntp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/ntp_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/quic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/quic_blacklist.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/quic_capture_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/quic_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/rdp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/rdp_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/sniff.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/ssh.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/ssh_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/stun.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/stun_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/sniff/tls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/taskmonitor/monitor.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/acme.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/acme_contstant.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/acme_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/common.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/config.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/ech.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/ech_shared.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/ech_tag_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/ktls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/mkcert.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/reality_client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/reality_server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/reality_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/std_client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/std_server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/time_wrapper.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/utls_client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tls/utls_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/conn_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/index.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/index_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/wait_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/wait_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/wait_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/tlsfragment/wait_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/uot/router.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/urltest/urltest.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/certificate.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/cgo.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/cgo_disabled.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/dhcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/err.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/gengoos.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/goos.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_aix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_android.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_dragonfly.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_freebsd.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_hurd.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_illumos.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_ios.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_js.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_netbsd.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_openbsd.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_plan9.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_solaris.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/goos/zgoos_zos.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/hysteria2.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/network.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/os.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/path.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/path_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/protocol.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/proxy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/quic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/quic_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/rule.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/speed.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/time.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/timeout.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/v2ray.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/constant/version.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/deprecated.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/instance.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/started_service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/started_service.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/started_service.proto +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/daemon/started_service_grpc.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/debug.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/debug_http.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/debug_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/debug_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/client_log.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/client_truncate.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/extension_edns0_subnet.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/rcode.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/router.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/conn_pool.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/fakeip/fakeip.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/fakeip/memory.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/fakeip/store.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/hosts.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/hosts_file.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/hosts_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/hosts_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/hosts_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/hosts/testdata/hosts +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/https.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/https_transport.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_darwin_dhcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_darwin_nodhcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_resolved.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_resolved_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_resolved_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/local_shared.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/resolv.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/resolv_default.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/resolv_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/resolv_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/local/resolv_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/quic/http3.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/quic/quic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/tcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/tls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport/udp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport_adapter.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport_dialer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport_manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/dns/transport_registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/CNAME +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/assets/icon.svg +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/android/features.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/android/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/apple/features.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/apple/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/general.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/clients/privacy.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/certificate/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/certificate/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/fakeip.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/fakeip.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/rule_action.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/rule_action.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/dhcp.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/dhcp.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/fakeip.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/fakeip.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/hosts.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/hosts.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/http3.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/http3.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/https.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/https.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/legacy.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/legacy.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/local.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/local.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/quic.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/quic.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/resolved.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/resolved.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tailscale.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tailscale.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tcp.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tcp.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/tls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/udp.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/dns/server/udp.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/tailscale.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/tailscale.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/wireguard.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/endpoint/wireguard.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/cache-file.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/cache-file.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/clash-api.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/clash-api.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/v2ray-api.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/experimental/v2ray-api.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/anytls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/anytls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/direct.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/direct.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/http.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/http.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/hysteria.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/hysteria.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/hysteria2.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/hysteria2.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/mixed.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/mixed.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/naive.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/naive.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/redirect.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/redirect.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/shadowsocks.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/shadowsocks.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/shadowtls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/shadowtls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/socks.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/socks.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tproxy.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tproxy.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/trojan.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/trojan.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tuic.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tuic.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tun.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/tun.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/vless.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/vless.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/vmess.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/inbound/vmess.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/log/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/log/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/ntp/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/ntp/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/anytls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/anytls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/block.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/block.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/direct.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/direct.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/dns.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/dns.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/http.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/http.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/hysteria.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/hysteria.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/hysteria2.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/hysteria2.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/naive.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/naive.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/selector.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/selector.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/shadowsocks.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/shadowsocks.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/shadowtls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/shadowtls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/socks.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/socks.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/ssh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/ssh.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/tor.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/tor.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/trojan.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/trojan.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/tuic.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/tuic.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/urltest.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/urltest.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/vless.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/vless.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/vmess.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/vmess.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/wireguard.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/outbound/wireguard.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/geoip.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/geoip.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/geosite.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/geosite.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/rule.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/rule.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/rule_action.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/rule_action.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/sniff.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/route/sniff.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/adguard.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/adguard.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/headless-rule.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/headless-rule.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/source-format.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/rule-set/source-format.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ccm.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ccm.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/derp.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/derp.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ocm.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ocm.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/resolved.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/resolved.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ssm-api.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/service/ssm-api.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/dial.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/dial.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/dns01_challenge.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/dns01_challenge.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/listen.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/listen.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/multiplex.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/multiplex.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/pre-match.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/pre-match.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/tcp-brutal.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/tcp-brutal.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/tls.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/tls.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/udp-over-tcp.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/udp-over-tcp.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/v2ray-transport.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/v2ray-transport.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/wifi-state.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/configuration/shared/wifi-state.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/deprecated.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/deprecated.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/index.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/index.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/build-from-source.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/build-from-source.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/docker.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/docker.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/package-manager.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/package-manager.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/tools/arch-install.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/tools/deb-install.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/tools/rpm-install.sh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/installation/tools/sing-box.repo +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/misc/anytls-client-metadata.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/misc/anytls-client-metadata.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/misc/tunnelvision.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/proxy/client.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/proxy/server.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/proxy-protocol/hysteria2.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/proxy-protocol/shadowsocks.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/manual/proxy-protocol/trojan.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/migration.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/migration.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/sponsors.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/support.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/docs/support.zh.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/cachefile/rdrc.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/api_meta.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/api_meta_group.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/api_meta_upgrade.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/cache.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/common.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/configs.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/ctxkeys.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/errors.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/profile.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/provider.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/ruleprovider.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/rules.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/script.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/server_fs.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/server_resources.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/trafficontrol/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi/trafficontrol/tracker.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/clashapi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/deprecated/constants.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/deprecated/manager.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/deprecated/stderr.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/build_info.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/command.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/command_client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/command_types.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/config.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/connection_owner_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/deprecated.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/fdroid.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/fdroid_mirrors.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/ffi.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/http.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/internal/procfs/procfs.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/iterator.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/link_flags_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/link_flags_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/log.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/memory.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/monitor.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/panic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/pidfd_android.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/pprof.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/remote_profile.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/semver.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/semver_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/service_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/service_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/setup.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/tun.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/tun_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/tun_name_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/tun_name_linux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/libbox/tun_name_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/locale/locale.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/locale/locale_zh_CN.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi/stats.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi/stats.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi/stats.proto +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi/stats_grpc.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/experimental/v2rayapi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/ccm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/ccm_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/ccm_stub_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/clashapi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/clashapi_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/dhcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/dhcp_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/naive_outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/naive_outbound_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/ocm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/ocm_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/oom_killer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/quic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/quic_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/registry.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/tailscale.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/tailscale_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/tz_android.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/tz_ios.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/v2rayapi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/v2rayapi_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/wireguard.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/include/wireguard_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/factory.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/format.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/id.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/level.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/log.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/nop.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/override.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/log/platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/mkdocs.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/anytls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/ccm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/certificate.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/debug.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/direct.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/dns_record.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/endpoint.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/experimental.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/group.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/hysteria.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/hysteria2.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/multiplex.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/naive.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/ntp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/ocm.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/oom_killer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/options.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/redir.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/resolved.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/route.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/rule.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/rule_action.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/rule_dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/rule_set.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/shadowsocks.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/shadowsocksr.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/shadowtls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/simple.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/ssh.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/ssmapi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tailscale.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tls_acme.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tor.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/trojan.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tuic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tun.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/tun_platform.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/types.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/udp_over_tcp.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/v2ray.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/v2ray_transport.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/vless.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/vmess.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/option/wireguard.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/anytls/client_metadata.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/anytls/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/anytls/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/block/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/direct/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/dns/handle.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/dns/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/group/selector.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/http/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/http/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/hysteria/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/hysteria/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/hysteria2/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/hysteria2/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/mixed/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/naive/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/naive/inbound_conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/naive/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/naive/quic/inbound_init.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/redirect/redirect.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/redirect/tproxy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowsocks/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowsocks/inbound_multi.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowsocks/inbound_relay.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowsocks/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowtls/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/shadowtls/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/socks/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/socks/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tailscale/dns_transport.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tailscale/tun_device_unix.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tailscale/tun_device_windows.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tor/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tor/proxy.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/trojan/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/trojan/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tuic/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tuic/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tun/hook.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/tun/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/vless/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/vless/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/vmess/inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/vmess/outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/protocol/wireguard/endpoint.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/DEFAULT_BUILD_TAGS +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/DEFAULT_BUILD_TAGS_OTHERS +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/DEFAULT_BUILD_TAGS_WINDOWS +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/LDFLAGS +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/completions/sing-box.bash +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/completions/sing-box.fish +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/completions/sing-box.zsh +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/config.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/openwrt.conf +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/openwrt.keep +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box-split-dns.xml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.confd +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.postinst +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.rules +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.service +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box.sysusers +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/config/sing-box@.service +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/release/local/sing-box.service +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/platform_searcher.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/process_cache.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/route.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_abstract_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_action.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_default.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_default_interface_address.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_dns.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_headless.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_interface_address.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_adguard.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_auth_user.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_cidr.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_clash_mode.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_domain.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_domain_keyword.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_domain_regex.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_inbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_ip_accept_any.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_ip_is_private.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_ipversion.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_network.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_network_is_constrained.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_network_is_expensive.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_network_type.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_outbound.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_package_name.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_port.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_port_range.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_preferred_by.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_process_name.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_process_path.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_process_path_regex.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_protocol.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_query_type.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_user.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_user_id.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_wifi_bssid.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_item_wifi_ssid.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_network_interface_address.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule/rule_set.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/route/rule_conds.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/credential.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/credential_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/credential_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/service_usage.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ccm/service_user.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/derp/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/credential.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/credential_darwin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/credential_other.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/service_usage.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/service_user.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ocm/service_websocket.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/oomkiller/config.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/resolved/resolve1.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/resolved/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/resolved/stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/resolved/transport.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ssmapi/api.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ssmapi/cache.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ssmapi/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ssmapi/traffic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/service/ssmapi/user.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/box_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/brutal_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/clash_darwin_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/clash_other_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/clash_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/hysteria-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/hysteria-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/hysteria2-client.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/hysteria2-server.yml +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/naive-nginx.conf +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/naive-quic.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/naive.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/nginx.conf +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/shadowsocksr.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/trojan.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/tuic-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/tuic-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vless-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vless-tls-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vless-tls-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-grpc-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-grpc-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-mux-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-ws-client.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/vmess-ws-server.json +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/config/wireguard.conf +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/direct_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/docker_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/domain_inbound_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/ech_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/go.mod +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/go.sum +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/http_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/hysteria2_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/hysteria_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/inbound_detour_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/ktls_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/mkcert.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/mux_cool_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/mux_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/naive_self_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/naive_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/reality_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/shadowsocks_legacy_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/shadowsocks_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/shadowtls_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/socks_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/ss_plugin_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/tfo_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/tls_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/trojan_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/tuic_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/v2ray_api_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/v2ray_grpc_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/v2ray_httpupgrade_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/v2ray_transport_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/v2ray_ws_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/vmess_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/test/wrapper_test.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/simple-obfs/README.md +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/simple-obfs/http.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/simple-obfs/tls.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/sip003/args.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/sip003/obfs.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/sip003/plugin.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/sip003/v2ray.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/trojan/mux.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/trojan/protocol.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/trojan/protocol_wait.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/trojan/service.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/trojan/service_wait.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2ray/grpc.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2ray/grpc_lite.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2ray/quic.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2ray/transport.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/credentials/credentials.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/credentials/spiffe.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/credentials/syscallconn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/credentials/util.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/custom_name.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/stream.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/stream.proto +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/stream_grpc.pb.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpc/tls_credentials.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpclite/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpclite/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raygrpclite/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttp/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttp/conn.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttp/force_close.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttp/pool.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttp/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttpupgrade/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayhttpupgrade/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayquic/client.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayquic/init.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayquic/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2rayquic/stream.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raywebsocket/server.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/v2raywebsocket/writer.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/client_bind.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_nat.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_stack.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_stack_gonet.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_stack_stub.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_system.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/device_system_stack.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/endpoint.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/transport/wireguard/endpoint_options.go +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/src/cronet.c +0 -0
- {sing_box_python-1.13.18 → sing_box_python-1.13.20}/src/singbox.cpp +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.25.12
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sing-box-python
|
|
3
|
-
Version: 1.13.
|
|
3
|
+
Version: 1.13.20
|
|
4
4
|
Summary: Python binding for sing-box
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Project-URL: Source, https://github.com/LorenEteval/sing-box-python
|
|
@@ -47,7 +47,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
|
|
|
47
47
|
A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
|
|
48
48
|
binding from source. A source build requires:
|
|
49
49
|
|
|
50
|
-
* [Go
|
|
50
|
+
* The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
|
|
51
|
+
`PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
|
|
51
52
|
* A working C and C++ compiler toolchain.
|
|
52
53
|
* MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
|
|
53
54
|
|
|
@@ -157,19 +158,50 @@ DATA
|
|
|
157
158
|
__all__ = ['SingBox', 'SingBoxError', '__version__', 'startFromJSON']
|
|
158
159
|
|
|
159
160
|
VERSION
|
|
160
|
-
|
|
161
|
+
vX.Y.Z
|
|
161
162
|
```
|
|
162
163
|
|
|
163
|
-
##
|
|
164
|
+
## Vendored Upstream Source
|
|
164
165
|
|
|
165
|
-
This repository
|
|
166
|
-
|
|
167
|
-
the
|
|
166
|
+
This repository and its PyPI source distribution contain a vendored copy of
|
|
167
|
+
[sing-box](https://github.com/SagerNet/sing-box). Vendoring keeps source installs independent of Git submodule support.
|
|
168
|
+
All regular files under `singbox-go` come directly from the upstream release except these explicit additions:
|
|
168
169
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
* `singbox-go/binding/main.go`
|
|
171
|
+
* `singbox-go/binding/cronet_purego.go`
|
|
172
|
+
|
|
173
|
+
Upstream's `clients/android` and `clients/apple` Git submodule links are intentionally not vendored because they are not
|
|
174
|
+
used to build the Python package. The initial Windows import normalized executable bits on upstream shell scripts; file
|
|
175
|
+
paths and blob contents remain identical to upstream. Synchronization runs on Linux and preserves upstream modes.
|
|
176
|
+
|
|
177
|
+
### Upstream Release Synchronization
|
|
178
|
+
|
|
179
|
+
`.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
|
|
180
|
+
from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
|
|
181
|
+
Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
|
|
182
|
+
commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
|
|
183
|
+
upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
|
|
184
|
+
|
|
185
|
+
The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
|
|
186
|
+
replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
|
|
187
|
+
and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
|
|
188
|
+
`go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
|
|
189
|
+
can be identified. Repeated checks are no-ops when the stable release is already synchronized.
|
|
190
|
+
|
|
191
|
+
Run the same operations locally from the repository root:
|
|
192
|
+
|
|
193
|
+
```shell
|
|
194
|
+
python scripts/sync-sing-box.py check
|
|
195
|
+
python scripts/sync-sing-box.py verify --tag v1.13.18
|
|
196
|
+
python scripts/sync-sing-box.py sync --tag vX.Y.Z
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
|
|
200
|
+
binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
|
|
201
|
+
build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
|
|
202
|
+
and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
|
|
203
|
+
creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
|
|
204
|
+
trigger new push workflows.
|
|
173
205
|
|
|
174
206
|
## Binary Wheel Platforms
|
|
175
207
|
|
|
@@ -186,7 +218,7 @@ The distributions are built and tested in [GitHub Actions](https://github.com/Lo
|
|
|
186
218
|
|
|
187
219
|
Naive outbound is included on all wheel platforms in the table. Cronet is bundled as an isolated shared runtime on
|
|
188
220
|
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
|
|
221
|
+
Cronet artifact comes from the platform module and exact version already pinned by the vendored sing-box `go.mod` and
|
|
190
222
|
verified by `go.sum`; the workflow does not build an unrelated Cronet revision.
|
|
191
223
|
Custom source builds can override the complete sing-box tag list with the `SINGBOX_BUILD_TAGS` environment variable.
|
|
192
224
|
|
|
@@ -20,7 +20,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
|
|
|
20
20
|
A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
|
|
21
21
|
binding from source. A source build requires:
|
|
22
22
|
|
|
23
|
-
* [Go
|
|
23
|
+
* The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
|
|
24
|
+
`PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
|
|
24
25
|
* A working C and C++ compiler toolchain.
|
|
25
26
|
* MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
|
|
26
27
|
|
|
@@ -130,19 +131,50 @@ DATA
|
|
|
130
131
|
__all__ = ['SingBox', 'SingBoxError', '__version__', 'startFromJSON']
|
|
131
132
|
|
|
132
133
|
VERSION
|
|
133
|
-
|
|
134
|
+
vX.Y.Z
|
|
134
135
|
```
|
|
135
136
|
|
|
136
|
-
##
|
|
137
|
+
## Vendored Upstream Source
|
|
137
138
|
|
|
138
|
-
This repository
|
|
139
|
-
|
|
140
|
-
the
|
|
139
|
+
This repository and its PyPI source distribution contain a vendored copy of
|
|
140
|
+
[sing-box](https://github.com/SagerNet/sing-box). Vendoring keeps source installs independent of Git submodule support.
|
|
141
|
+
All regular files under `singbox-go` come directly from the upstream release except these explicit additions:
|
|
141
142
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
* `singbox-go/binding/main.go`
|
|
144
|
+
* `singbox-go/binding/cronet_purego.go`
|
|
145
|
+
|
|
146
|
+
Upstream's `clients/android` and `clients/apple` Git submodule links are intentionally not vendored because they are not
|
|
147
|
+
used to build the Python package. The initial Windows import normalized executable bits on upstream shell scripts; file
|
|
148
|
+
paths and blob contents remain identical to upstream. Synchronization runs on Linux and preserves upstream modes.
|
|
149
|
+
|
|
150
|
+
### Upstream Release Synchronization
|
|
151
|
+
|
|
152
|
+
`.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
|
|
153
|
+
from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
|
|
154
|
+
Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
|
|
155
|
+
commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
|
|
156
|
+
upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
|
|
157
|
+
|
|
158
|
+
The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
|
|
159
|
+
replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
|
|
160
|
+
and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
|
|
161
|
+
`go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
|
|
162
|
+
can be identified. Repeated checks are no-ops when the stable release is already synchronized.
|
|
163
|
+
|
|
164
|
+
Run the same operations locally from the repository root:
|
|
165
|
+
|
|
166
|
+
```shell
|
|
167
|
+
python scripts/sync-sing-box.py check
|
|
168
|
+
python scripts/sync-sing-box.py verify --tag v1.13.18
|
|
169
|
+
python scripts/sync-sing-box.py sync --tag vX.Y.Z
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
|
|
173
|
+
binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
|
|
174
|
+
build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
|
|
175
|
+
and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
|
|
176
|
+
creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
|
|
177
|
+
trigger new push workflows.
|
|
146
178
|
|
|
147
179
|
## Binary Wheel Platforms
|
|
148
180
|
|
|
@@ -159,7 +191,7 @@ The distributions are built and tested in [GitHub Actions](https://github.com/Lo
|
|
|
159
191
|
|
|
160
192
|
Naive outbound is included on all wheel platforms in the table. Cronet is bundled as an isolated shared runtime on
|
|
161
193
|
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
|
|
194
|
+
Cronet artifact comes from the platform module and exact version already pinned by the vendored sing-box `go.mod` and
|
|
163
195
|
verified by `go.sum`; the workflow does not build an unrelated Cronet revision.
|
|
164
196
|
Custom source builds can override the complete sing-box tag list with the `SINGBOX_BUILD_TAGS` environment variable.
|
|
165
197
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
56f91dfeabd6f4edbd437dfcc1e5b0ebc856b778
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
v1.13.20
|
|
@@ -10,17 +10,14 @@ build-backend = "setuptools.build_meta"
|
|
|
10
10
|
|
|
11
11
|
[tool.cibuildwheel]
|
|
12
12
|
build = [
|
|
13
|
-
"cp38-*",
|
|
14
13
|
"cp39-*",
|
|
15
14
|
"cp310-*",
|
|
16
15
|
"cp311-*",
|
|
17
16
|
"cp312-*",
|
|
18
17
|
"cp313-*",
|
|
19
|
-
"cp313t-*",
|
|
20
18
|
"cp314-*",
|
|
21
19
|
"cp314t-*",
|
|
22
20
|
]
|
|
23
|
-
enable = ["cpython-freethreading"]
|
|
24
21
|
skip = "*-musllinux_*"
|
|
25
22
|
build-verbosity = 1
|
|
26
23
|
test-requires = ["pytest>=8"]
|
|
@@ -33,27 +30,38 @@ test-command = [
|
|
|
33
30
|
]
|
|
34
31
|
|
|
35
32
|
[tool.cibuildwheel.linux]
|
|
36
|
-
|
|
33
|
+
manylinux-x86_64-image = "manylinux2014"
|
|
34
|
+
manylinux-aarch64-image = "manylinux2014"
|
|
35
|
+
before-all = '''
|
|
36
|
+
go_version="$(
|
|
37
|
+
tr -d '\r\n' < "{project}/.go-version"
|
|
38
|
+
)"
|
|
39
|
+
if ! printf '%s\n' "${go_version}" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
|
40
|
+
echo "Invalid Go version in .go-version: ${go_version}" >&2
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
37
43
|
case "$(uname -m)" in
|
|
38
44
|
x86_64)
|
|
39
45
|
go_arch='amd64'
|
|
40
|
-
go_sha256='da18191ddb7db8a9339816f3e2b54bdded8047cdc2a5d67059478f8d1595c43f'
|
|
41
46
|
;;
|
|
42
47
|
aarch64|arm64)
|
|
43
48
|
go_arch='arm64'
|
|
44
|
-
go_sha256='fd2bccce882e29369f56c86487663bb78ba7ea9e02188a5b0269303a0c3d33ab'
|
|
45
49
|
;;
|
|
46
50
|
*)
|
|
47
51
|
echo "Unsupported Linux architecture: $(uname -m)" >&2
|
|
48
52
|
exit 1
|
|
49
53
|
;;
|
|
50
54
|
esac
|
|
51
|
-
go_archive="/tmp/
|
|
52
|
-
|
|
55
|
+
go_archive="/tmp/go${go_version}.linux-${go_arch}.tar.gz"
|
|
56
|
+
go_checksum="${go_archive}.sha256"
|
|
57
|
+
go_url="https://dl.google.com/go/go${go_version}.linux-${go_arch}.tar.gz"
|
|
58
|
+
curl -fsSLo "${go_archive}" "${go_url}"
|
|
59
|
+
curl -fsSLo "${go_checksum}" "${go_url}.sha256"
|
|
60
|
+
go_sha256="$(tr -d '\r\n' < "${go_checksum}")"
|
|
53
61
|
echo "${go_sha256} ${go_archive}" | sha256sum -c -
|
|
54
62
|
tar -C /usr/local -xzf "${go_archive}"
|
|
55
63
|
/usr/local/go/bin/go version
|
|
56
|
-
|
|
64
|
+
'''
|
|
57
65
|
environment = { PATH = "/usr/local/go/bin:$PATH", GOTOOLCHAIN = "local" }
|
|
58
66
|
|
|
59
67
|
[tool.cibuildwheel.macos]
|
|
@@ -2,6 +2,7 @@ import json
|
|
|
2
2
|
import os
|
|
3
3
|
import pathlib
|
|
4
4
|
import platform
|
|
5
|
+
import re
|
|
5
6
|
import shlex
|
|
6
7
|
import shutil
|
|
7
8
|
import subprocess
|
|
@@ -13,8 +14,12 @@ from setuptools.command.build_ext import build_ext
|
|
|
13
14
|
|
|
14
15
|
ROOT_DIR = pathlib.Path(__file__).parent.resolve()
|
|
15
16
|
GO_SOURCE_DIR = ROOT_DIR / 'singbox-go'
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
UPSTREAM_VERSION = (ROOT_DIR / 'UPSTREAM_VERSION').read_text(encoding='utf-8').strip()
|
|
18
|
+
|
|
19
|
+
if not re.fullmatch(r'v\d+\.\d+\.\d+', UPSTREAM_VERSION):
|
|
20
|
+
raise RuntimeError(f'Invalid upstream version: {UPSTREAM_VERSION!r}')
|
|
21
|
+
|
|
22
|
+
PACKAGE_VERSION = UPSTREAM_VERSION[1:]
|
|
18
23
|
|
|
19
24
|
|
|
20
25
|
class CMakeExtension(Extension):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sing-box-python
|
|
3
|
-
Version: 1.13.
|
|
3
|
+
Version: 1.13.20
|
|
4
4
|
Summary: Python binding for sing-box
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Project-URL: Source, https://github.com/LorenEteval/sing-box-python
|
|
@@ -47,7 +47,8 @@ Binary wheels are published for Linux x86-64 and ARM64, Windows x86-64 and ARM64
|
|
|
47
47
|
A source distribution is also published as a fallback. If pip cannot find a compatible wheel, it may build the native
|
|
48
48
|
binding from source. A source build requires:
|
|
49
49
|
|
|
50
|
-
* [Go
|
|
50
|
+
* The [Go toolchain version recorded in `.go-version`](https://go.dev/doc/install), or a newer compatible release, in
|
|
51
|
+
`PATH`. The pinned version matches the compiler used by the synchronized upstream release workflow.
|
|
51
52
|
* A working C and C++ compiler toolchain.
|
|
52
53
|
* MinGW-w64 on Windows x86-64, or LLVM-MinGW on Windows ARM64, with `gcc` and `g++` available in `PATH`.
|
|
53
54
|
|
|
@@ -157,19 +158,50 @@ DATA
|
|
|
157
158
|
__all__ = ['SingBox', 'SingBoxError', '__version__', 'startFromJSON']
|
|
158
159
|
|
|
159
160
|
VERSION
|
|
160
|
-
|
|
161
|
+
vX.Y.Z
|
|
161
162
|
```
|
|
162
163
|
|
|
163
|
-
##
|
|
164
|
+
## Vendored Upstream Source
|
|
164
165
|
|
|
165
|
-
This repository
|
|
166
|
-
|
|
167
|
-
the
|
|
166
|
+
This repository and its PyPI source distribution contain a vendored copy of
|
|
167
|
+
[sing-box](https://github.com/SagerNet/sing-box). Vendoring keeps source installs independent of Git submodule support.
|
|
168
|
+
All regular files under `singbox-go` come directly from the upstream release except these explicit additions:
|
|
168
169
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
* `singbox-go/binding/main.go`
|
|
171
|
+
* `singbox-go/binding/cronet_purego.go`
|
|
172
|
+
|
|
173
|
+
Upstream's `clients/android` and `clients/apple` Git submodule links are intentionally not vendored because they are not
|
|
174
|
+
used to build the Python package. The initial Windows import normalized executable bits on upstream shell scripts; file
|
|
175
|
+
paths and blob contents remain identical to upstream. Synchronization runs on Linux and preserves upstream modes.
|
|
176
|
+
|
|
177
|
+
### Upstream Release Synchronization
|
|
178
|
+
|
|
179
|
+
`.github/workflows/sync-upstream.yml` checks the latest stable upstream release daily and can also be started manually
|
|
180
|
+
from the Actions page. Drafts and prereleases are rejected. `UPSTREAM_VERSION` is the single version source for both the
|
|
181
|
+
Python distribution version and the sing-box version embedded in the native library, while `UPSTREAM_COMMIT` pins the
|
|
182
|
+
commit to which that release tag resolved during import. The root `.go-version` pins the exact Go compiler used by
|
|
183
|
+
upstream's release workflow; this is intentionally independent of the minimum language version in `singbox-go/go.mod`.
|
|
184
|
+
|
|
185
|
+
The synchronization script checks the current vendor tree against its exact upstream tag, fetches the requested tag,
|
|
186
|
+
replaces only upstream-owned files, restores the two binding additions, updates `UPSTREAM_VERSION`, `UPSTREAM_COMMIT`,
|
|
187
|
+
and `.go-version`, and verifies every vendored upstream path and Git blob. The Go pin is extracted from exact
|
|
188
|
+
`go-version` entries in upstream's build workflow; synchronization fails instead of guessing if no single exact version
|
|
189
|
+
can be identified. Repeated checks are no-ops when the stable release is already synchronized.
|
|
190
|
+
|
|
191
|
+
Run the same operations locally from the repository root:
|
|
192
|
+
|
|
193
|
+
```shell
|
|
194
|
+
python scripts/sync-sing-box.py check
|
|
195
|
+
python scripts/sync-sing-box.py verify --tag v1.13.18
|
|
196
|
+
python scripts/sync-sing-box.py sync --tag vX.Y.Z
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
For an automated update, the sync workflow installs the synchronized `.go-version` toolchain and compiles the Go
|
|
200
|
+
binding before committing `chore: sync sing-box vX.Y.Z` to `main`. It then explicitly dispatches the existing
|
|
201
|
+
build-and-publish workflow at that commit. The latter uses the same exact Go version for every wheel platform, builds
|
|
202
|
+
and tests every distribution, then creates the `vX.Y.Z` tag, publishes `X.Y.Z` to PyPI through Trusted Publishing, and
|
|
203
|
+
creates the GitHub Release. Explicit dispatch is required because pushes made with GitHub's `GITHUB_TOKEN` do not
|
|
204
|
+
trigger new push workflows.
|
|
173
205
|
|
|
174
206
|
## Binary Wheel Platforms
|
|
175
207
|
|
|
@@ -186,7 +218,7 @@ The distributions are built and tested in [GitHub Actions](https://github.com/Lo
|
|
|
186
218
|
|
|
187
219
|
Naive outbound is included on all wheel platforms in the table. Cronet is bundled as an isolated shared runtime on
|
|
188
220
|
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
|
|
221
|
+
Cronet artifact comes from the platform module and exact version already pinned by the vendored sing-box `go.mod` and
|
|
190
222
|
verified by `go.sum`; the workflow does not build an unrelated Cronet revision.
|
|
191
223
|
Custom source builds can override the complete sing-box tag list with the `SINGBOX_BUILD_TAGS` environment variable.
|
|
192
224
|
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
.go-version
|
|
1
2
|
CMakeLists.txt
|
|
2
3
|
LICENSE
|
|
3
4
|
MANIFEST.in
|
|
4
5
|
README.md
|
|
6
|
+
UPSTREAM_COMMIT
|
|
7
|
+
UPSTREAM_VERSION
|
|
5
8
|
pyproject.toml
|
|
6
9
|
setup.py
|
|
7
10
|
sing_box_python.egg-info/PKG-INFO
|
|
@@ -252,6 +255,7 @@ singbox-go/common/srs/binary.go
|
|
|
252
255
|
singbox-go/common/srs/compat_test.go
|
|
253
256
|
singbox-go/common/srs/ip_cidr.go
|
|
254
257
|
singbox-go/common/srs/ip_set.go
|
|
258
|
+
singbox-go/common/srs/malformed_test.go
|
|
255
259
|
singbox-go/common/taskmonitor/monitor.go
|
|
256
260
|
singbox-go/common/tls/acme.go
|
|
257
261
|
singbox-go/common/tls/acme_contstant.go
|
|
@@ -847,6 +851,7 @@ singbox-go/route/rule/rule_action.go
|
|
|
847
851
|
singbox-go/route/rule/rule_default.go
|
|
848
852
|
singbox-go/route/rule/rule_default_interface_address.go
|
|
849
853
|
singbox-go/route/rule/rule_dns.go
|
|
854
|
+
singbox-go/route/rule/rule_dns_address_filter_test.go
|
|
850
855
|
singbox-go/route/rule/rule_headless.go
|
|
851
856
|
singbox-go/route/rule/rule_interface_address.go
|
|
852
857
|
singbox-go/route/rule/rule_item_adguard.go
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/setup_go_for_macos1013.sh
RENAMED
|
File without changes
|
{sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/setup_go_for_windows7.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/.github/update_dependencies.sh
RENAMED
|
File without changes
|
|
@@ -1098,35 +1098,36 @@ jobs:
|
|
|
1098
1098
|
echo "ASC_KEY_ID=$ASC_KEY_ID" >> "$GITHUB_ENV"
|
|
1099
1099
|
echo "ASC_KEY_ISSUER_ID=$ASC_KEY_ISSUER_ID" >> "$GITHUB_ENV"
|
|
1100
1100
|
env:
|
|
1101
|
-
ASC_KEY: ${{ secrets.
|
|
1102
|
-
ASC_KEY_ID: ${{ secrets.
|
|
1103
|
-
ASC_KEY_ISSUER_ID: ${{ secrets.
|
|
1101
|
+
ASC_KEY: ${{ secrets.LEGACY_ASC_KEY }}
|
|
1102
|
+
ASC_KEY_ID: ${{ secrets.LEGACY_ASC_KEY_ID }}
|
|
1103
|
+
ASC_KEY_ISSUER_ID: ${{ secrets.LEGACY_ASC_KEY_ISSUER_ID }}
|
|
1104
1104
|
- name: Install Apple provisioning profiles
|
|
1105
1105
|
if: matrix.if && matrix.type != 'jailbreak'
|
|
1106
1106
|
run: |-
|
|
1107
1107
|
PROFILES_ZIP_PATH=$RUNNER_TEMP/AppleProvisioningProfiles.zip
|
|
1108
|
-
|
|
1109
|
-
"$
|
|
1110
|
-
|
|
1111
|
-
"$PROVISIONING_PROFILES_3" \
|
|
1112
|
-
"$PROVISIONING_PROFILES_4" \
|
|
1113
|
-
"$PROVISIONING_PROFILES_5" \
|
|
1114
|
-
"$PROVISIONING_PROFILES_6" \
|
|
1115
|
-
"$PROVISIONING_PROFILES_7" \
|
|
1116
|
-
"$PROVISIONING_PROFILES_8" \
|
|
1117
|
-
| base64 --decode -o $PROFILES_ZIP_PATH
|
|
1108
|
+
for variable in $(compgen -v | grep -E '^PROVISIONING_PROFILES_[0-9]+$' | sort -t_ -k3 -n); do
|
|
1109
|
+
printf '%s' "${!variable}"
|
|
1110
|
+
done | base64 --decode -o $PROFILES_ZIP_PATH
|
|
1118
1111
|
PROFILES_PATH="$HOME/Library/Developer/Xcode/UserData/Provisioning Profiles"
|
|
1119
1112
|
mkdir -p "$PROFILES_PATH"
|
|
1120
1113
|
unzip -q $PROFILES_ZIP_PATH -d "$PROFILES_PATH"
|
|
1121
1114
|
env:
|
|
1122
|
-
PROVISIONING_PROFILES_1: ${{ secrets.
|
|
1123
|
-
PROVISIONING_PROFILES_2: ${{ secrets.
|
|
1124
|
-
PROVISIONING_PROFILES_3: ${{ secrets.
|
|
1125
|
-
PROVISIONING_PROFILES_4: ${{ secrets.
|
|
1126
|
-
PROVISIONING_PROFILES_5: ${{ secrets.
|
|
1127
|
-
PROVISIONING_PROFILES_6: ${{ secrets.
|
|
1128
|
-
PROVISIONING_PROFILES_7: ${{ secrets.
|
|
1129
|
-
PROVISIONING_PROFILES_8: ${{ secrets.
|
|
1115
|
+
PROVISIONING_PROFILES_1: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_1 }}
|
|
1116
|
+
PROVISIONING_PROFILES_2: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_2 }}
|
|
1117
|
+
PROVISIONING_PROFILES_3: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_3 }}
|
|
1118
|
+
PROVISIONING_PROFILES_4: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_4 }}
|
|
1119
|
+
PROVISIONING_PROFILES_5: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_5 }}
|
|
1120
|
+
PROVISIONING_PROFILES_6: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_6 }}
|
|
1121
|
+
PROVISIONING_PROFILES_7: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_7 }}
|
|
1122
|
+
PROVISIONING_PROFILES_8: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_8 }}
|
|
1123
|
+
PROVISIONING_PROFILES_9: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_9 }}
|
|
1124
|
+
PROVISIONING_PROFILES_10: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_10 }}
|
|
1125
|
+
PROVISIONING_PROFILES_11: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_11 }}
|
|
1126
|
+
PROVISIONING_PROFILES_12: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_12 }}
|
|
1127
|
+
PROVISIONING_PROFILES_13: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_13 }}
|
|
1128
|
+
PROVISIONING_PROFILES_14: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_14 }}
|
|
1129
|
+
PROVISIONING_PROFILES_15: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_15 }}
|
|
1130
|
+
PROVISIONING_PROFILES_16: ${{ secrets.LEGACY_APPLE_PROVISIONING_PROFILES_16 }}
|
|
1130
1131
|
- name: Setup Apple Development certificate
|
|
1131
1132
|
if: matrix.if && matrix.type != 'jailbreak'
|
|
1132
1133
|
run: |-
|
|
@@ -1143,8 +1144,8 @@ jobs:
|
|
|
1143
1144
|
security find-identity -v -p codesigning $KEYCHAIN_PATH
|
|
1144
1145
|
echo "APPLE_DEVELOPMENT_KEYCHAIN_PATH=$KEYCHAIN_PATH" >> "$GITHUB_ENV"
|
|
1145
1146
|
env:
|
|
1146
|
-
APPLE_DEVELOPMENT_CERTIFICATES_P12: ${{ secrets.
|
|
1147
|
-
P12_PASSWORD: ${{ secrets.
|
|
1147
|
+
APPLE_DEVELOPMENT_CERTIFICATES_P12: ${{ secrets.LEGACY_APPLE_DEVELOPMENT_CERTIFICATES_P12 }}
|
|
1148
|
+
P12_PASSWORD: ${{ secrets.LEGACY_APPLE_DEVELOPMENT_P12_PASSWORD }}
|
|
1148
1149
|
KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
|
|
1149
1150
|
- name: Setup Developer ID certificates
|
|
1150
1151
|
if: matrix.if && matrix.type == 'standalone'
|
|
@@ -1162,8 +1163,8 @@ jobs:
|
|
|
1162
1163
|
security find-identity -v -p codesigning $KEYCHAIN_PATH
|
|
1163
1164
|
echo "SIGNING_KEYCHAIN_PATH=$KEYCHAIN_PATH" >> "$GITHUB_ENV"
|
|
1164
1165
|
env:
|
|
1165
|
-
DEVELOPER_ID_CERTIFICATES_P12: ${{ secrets.
|
|
1166
|
-
P12_PASSWORD: ${{ secrets.
|
|
1166
|
+
DEVELOPER_ID_CERTIFICATES_P12: ${{ secrets.LEGACY_DEVELOPER_ID_CERTIFICATES_P12 }}
|
|
1167
|
+
P12_PASSWORD: ${{ secrets.LEGACY_DEVELOPER_ID_P12_PASSWORD }}
|
|
1167
1168
|
KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
|
|
1168
1169
|
- name: Setup notarization credentials
|
|
1169
1170
|
if: matrix.if && matrix.type == 'standalone' && github.event_name == 'workflow_dispatch'
|
|
@@ -7,6 +7,7 @@ import (
|
|
|
7
7
|
"io"
|
|
8
8
|
"time"
|
|
9
9
|
|
|
10
|
+
E "github.com/sagernet/sing/common/exceptions"
|
|
10
11
|
"github.com/sagernet/sing/common/observable"
|
|
11
12
|
"github.com/sagernet/sing/common/varbin"
|
|
12
13
|
)
|
|
@@ -103,6 +104,9 @@ func (s *SavedBinary) UnmarshalBinary(data []byte) error {
|
|
|
103
104
|
if err != nil {
|
|
104
105
|
return err
|
|
105
106
|
}
|
|
107
|
+
if contentLength > uint64(reader.Len()) {
|
|
108
|
+
return E.New("invalid content length: ", contentLength)
|
|
109
|
+
}
|
|
106
110
|
s.Content = make([]byte, contentLength)
|
|
107
111
|
_, err = io.ReadFull(reader, s.Content)
|
|
108
112
|
if err != nil {
|
|
@@ -118,6 +122,9 @@ func (s *SavedBinary) UnmarshalBinary(data []byte) error {
|
|
|
118
122
|
if err != nil {
|
|
119
123
|
return err
|
|
120
124
|
}
|
|
125
|
+
if etagLength > uint64(reader.Len()) {
|
|
126
|
+
return E.New("invalid etag length: ", etagLength)
|
|
127
|
+
}
|
|
121
128
|
etagBytes := make([]byte, etagLength)
|
|
122
129
|
_, err = io.ReadFull(reader, etagBytes)
|
|
123
130
|
if err != nil {
|
|
@@ -136,6 +143,7 @@ type OutboundGroup interface {
|
|
|
136
143
|
type URLTestGroup interface {
|
|
137
144
|
OutboundGroup
|
|
138
145
|
URLTest(ctx context.Context) (map[string]uint16, error)
|
|
146
|
+
PerformUpdateCheck()
|
|
139
147
|
}
|
|
140
148
|
|
|
141
149
|
func OutboundTag(detour Outbound) string {
|
|
@@ -94,7 +94,7 @@ type InboundContext struct {
|
|
|
94
94
|
SourcePortMatch bool
|
|
95
95
|
DestinationAddressMatch bool
|
|
96
96
|
DestinationPortMatch bool
|
|
97
|
-
|
|
97
|
+
DefinitiveMatchStates uint16
|
|
98
98
|
IgnoreDestinationIPCIDRMatch bool
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -109,7 +109,7 @@ func (c *InboundContext) ResetRuleMatchCache() {
|
|
|
109
109
|
c.SourcePortMatch = false
|
|
110
110
|
c.DestinationAddressMatch = false
|
|
111
111
|
c.DestinationPortMatch = false
|
|
112
|
-
c.
|
|
112
|
+
c.DefinitiveMatchStates = 0
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
type inboundContextKey struct{}
|
|
@@ -8,6 +8,7 @@ import (
|
|
|
8
8
|
"strings"
|
|
9
9
|
|
|
10
10
|
"github.com/sagernet/sing-box/cmd/internal/build_shared"
|
|
11
|
+
"github.com/sagernet/sing-box/common/badversion"
|
|
11
12
|
"github.com/sagernet/sing-box/log"
|
|
12
13
|
"github.com/sagernet/sing/common"
|
|
13
14
|
|
|
@@ -76,11 +77,20 @@ func findAndReplace(objectsMap map[string]any, projectContent string, bundleIDLi
|
|
|
76
77
|
continue
|
|
77
78
|
}
|
|
78
79
|
updated = true
|
|
79
|
-
projectContent = projectContent[:versionStart] +
|
|
80
|
+
projectContent = projectContent[:versionStart] + formatProjectVersion(newVersion) + projectContent[versionEnd:]
|
|
80
81
|
}
|
|
81
82
|
return projectContent, updated
|
|
82
83
|
}
|
|
83
84
|
|
|
85
|
+
// Xcode serializes a version without quotes unless it contains a pre-release
|
|
86
|
+
// part; always quoting makes Xcode rewrite the value on the next save.
|
|
87
|
+
func formatProjectVersion(version string) string {
|
|
88
|
+
if badversion.Parse(version).PreReleaseIdentifier == "" {
|
|
89
|
+
return version
|
|
90
|
+
}
|
|
91
|
+
return "\"" + version + "\""
|
|
92
|
+
}
|
|
93
|
+
|
|
84
94
|
func findAndReplaceProjectVersion(objectsMap map[string]any, projectContent string, directoryList []string, newVersion string) (string, bool) {
|
|
85
95
|
objectKeyList := findObjectKeyByDirectory(objectsMap, directoryList)
|
|
86
96
|
var updated bool
|
|
@@ -10,6 +10,7 @@ import (
|
|
|
10
10
|
"github.com/sagernet/sing-box/experimental/deprecated"
|
|
11
11
|
"github.com/sagernet/sing-box/include"
|
|
12
12
|
"github.com/sagernet/sing-box/log"
|
|
13
|
+
"github.com/sagernet/sing/common"
|
|
13
14
|
"github.com/sagernet/sing/service"
|
|
14
15
|
"github.com/sagernet/sing/service/filemanager"
|
|
15
16
|
|
|
@@ -52,7 +53,9 @@ func preRun(cmd *cobra.Command, args []string) {
|
|
|
52
53
|
globalCtx = filemanager.WithDefault(globalCtx, "", "", sudoUID, sudoGID)
|
|
53
54
|
}
|
|
54
55
|
if disableColor {
|
|
55
|
-
log.
|
|
56
|
+
logFactory := log.NewDefaultFactory(context.Background(), log.Formatter{BaseTime: time.Now(), DisableColors: true}, os.Stderr, "", nil, false)
|
|
57
|
+
common.Must(logFactory.Start())
|
|
58
|
+
log.SetStdLogger(logFactory.Logger())
|
|
56
59
|
}
|
|
57
60
|
if workingDir != "" {
|
|
58
61
|
_, err := os.Stat(workingDir)
|
{sing_box_python-1.13.18 → sing_box_python-1.13.20}/singbox-go/common/geosite/compat_test.go
RENAMED
|
@@ -211,7 +211,11 @@ func TestGeositeWriteReadCompat(t *testing.T) {
|
|
|
211
211
|
for code, expectedItems := range tc.input {
|
|
212
212
|
items, err := reader.Read(code)
|
|
213
213
|
require.NoError(t, err)
|
|
214
|
-
|
|
214
|
+
if len(expectedItems) == 0 {
|
|
215
|
+
require.Empty(t, items, "items mismatch for code: %s", code)
|
|
216
|
+
} else {
|
|
217
|
+
require.Equal(t, expectedItems, items, "items mismatch for code: %s", code)
|
|
218
|
+
}
|
|
215
219
|
}
|
|
216
220
|
})
|
|
217
221
|
}
|