sing-tun 0.9.6__tar.gz → 0.9.7.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. {sing_tun-0.9.6/sing_tun.egg-info → sing_tun-0.9.7.dev0}/PKG-INFO +19 -10
  2. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/README.md +18 -9
  3. sing_tun-0.9.7.dev0/UPSTREAM_COMMIT +1 -0
  4. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/UPSTREAM_TREE.json +330 -54
  5. sing_tun-0.9.7.dev0/UPSTREAM_VERSION +1 -0
  6. sing_tun-0.9.7.dev0/VERSION +1 -0
  7. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/config.go +2 -2
  8. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/device.go +36 -4
  9. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/engine.go +12 -3
  10. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/go.mod +3 -4
  11. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/go.sum +4 -4
  12. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/packet.go +2 -8
  13. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sample/sample.py +4 -2
  14. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/scripts/sync-sing-tun.py +71 -13
  15. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/scripts/verify_source.py +11 -5
  16. sing_tun-0.9.7.dev0/sing-tun-go/.github/workflows/test.yml +59 -0
  17. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/Makefile +2 -8
  18. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow_dispatch.go +347 -196
  19. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow_dns.go +13 -5
  20. sing_tun-0.9.7.dev0/sing-tun-go/flow_mtu.go +141 -0
  21. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow_nat.go +19 -5
  22. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow_parse.go +24 -7
  23. sing_tun-0.9.7.dev0/sing-tun-go/flow_reject.go +90 -0
  24. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow_rewrite.go +67 -67
  25. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/go.mod +2 -2
  26. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/go.sum +4 -4
  27. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/checksum/checksum_default.go +1 -1
  28. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/checksum/checksum_ts.go +1 -1
  29. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/checksum/checksum_unsafe.go +3 -3
  30. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/checksum.go +8 -7
  31. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ipv4.go +11 -6
  32. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/udp.go +3 -5
  33. sing_tun-0.9.7.dev0/sing-tun-go/icmp_error.go +203 -0
  34. sing_tun-0.9.7.dev0/sing-tun-go/internal/afd/afd_windows.go +197 -0
  35. sing_tun-0.9.7.dev0/sing-tun-go/internal/afd/zsyscall_windows.go +81 -0
  36. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/checksum_test/sum_bench_test.go +25 -0
  37. sing_tun-0.9.7.dev0/sing-tun-go/internal/checksum_test/sum_test.go +40 -0
  38. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/endpoint.go +1 -1
  39. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/packet_dispatchers.go +1 -1
  40. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/checksum_amd64.go +9 -11
  41. sing_tun-0.9.7.dev0/sing-tun-go/internal/tschecksum/checksum_arm64.go +8 -0
  42. sing_tun-0.9.7.dev0/sing-tun-go/internal/tschecksum/checksum_arm64.s +133 -0
  43. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/checksum_generic.go +1 -1
  44. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/constants.go +21 -1
  45. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/types_windows.go +4 -0
  46. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows.go +2 -2
  47. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/syscall_windows.go +1 -1
  48. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/session_windows.go +4 -4
  49. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_linux.go +5 -1
  50. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/nfqueue_linux.go +49 -46
  51. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/ping.go +6 -0
  52. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/port.go +1 -1
  53. sing_tun-0.9.7.dev0/sing-tun-go/redirect.go +69 -0
  54. sing_tun-0.9.7.dev0/sing-tun-go/redirect_ingress_discard_android.go +177 -0
  55. sing_tun-0.9.7.dev0/sing-tun-go/redirect_iptables.go +874 -0
  56. sing_tun-0.9.7.dev0/sing-tun-go/redirect_linux.go +460 -0
  57. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_nftables.go +26 -44
  58. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_nftables_rules.go +7 -68
  59. sing_tun-0.9.7.dev0/sing-tun-go/redirect_route_bypass_android.go +343 -0
  60. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_route_linux.go +121 -15
  61. sing_tun-0.9.7.dev0/sing-tun-go/redirect_route_vpnservice_android.go +240 -0
  62. sing_tun-0.9.7.dev0/sing-tun-go/redirect_route_vpnservice_stub.go +28 -0
  63. sing_tun-0.9.7.dev0/sing-tun-go/redirect_server.go +133 -0
  64. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack.go +12 -8
  65. sing_tun-0.9.7.dev0/sing-tun-go/stack_go.go +315 -0
  66. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_conn.go +815 -0
  67. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_conn_options.go +87 -0
  68. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_dial.go +339 -0
  69. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_engine.go +1078 -0
  70. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_cc_test.go +482 -0
  71. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_cpu_unix_test.go +20 -0
  72. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_cpu_windows_test.go +20 -0
  73. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_darwin_test.go +211 -0
  74. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_flow_linux_test.go +444 -0
  75. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_lifecycle_linux_test.go +327 -0
  76. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_lifecycle_test.go +493 -0
  77. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_linux_test.go +65 -0
  78. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_listen_test.go +182 -0
  79. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_memory_darwin_test.go +15 -0
  80. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_memory_linux_test.go +29 -0
  81. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_memory_test.go +565 -0
  82. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_options_test.go +458 -0
  83. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_packet_flow_test.go +355 -0
  84. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_packet_offload_linux_test.go +185 -0
  85. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_packet_test.go +772 -0
  86. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_splice_test.go +187 -0
  87. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_tcp_test.go +530 -0
  88. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_test.go +831 -0
  89. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_integration_windows_test.go +48 -0
  90. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io.go +107 -0
  91. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io_darwin.go +884 -0
  92. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io_linux.go +617 -0
  93. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io_memory.go +262 -0
  94. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io_other.go +72 -0
  95. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_io_windows.go +506 -0
  96. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_listen.go +240 -0
  97. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_memory.go +113 -0
  98. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_memory_arena.go +218 -0
  99. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_memory_darwin.go +17 -0
  100. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_memory_linux.go +26 -0
  101. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_memory_other.go +24 -0
  102. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_profile_default.go +19 -0
  103. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_profile_ios.go +17 -0
  104. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_ring.go +717 -0
  105. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_socket_darwin.go +170 -0
  106. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_socket_linux.go +256 -0
  107. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_socket_nonunix.go +38 -0
  108. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_socket_unix.go +111 -0
  109. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_socket_windows.go +222 -0
  110. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_splice.go +1004 -0
  111. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_ack.go +1198 -0
  112. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_bbr.go +590 -0
  113. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_cong.go +691 -0
  114. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_cubic.go +294 -0
  115. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_input.go +1562 -0
  116. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_output.go +1014 -0
  117. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_tcp_rate.go +126 -0
  118. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_udp.go +527 -0
  119. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_udp_socket.go +462 -0
  120. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_udp_test.go +183 -0
  121. sing_tun-0.9.7.dev0/sing-tun-go/stack_go_wheel.go +192 -0
  122. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor.go +5 -6
  123. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_filter.go +5 -9
  124. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_tcp_conn.go +1 -4
  125. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_mixed.go +14 -6
  126. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_system.go +84 -46
  127. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun.go +15 -4
  128. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_darwin.go +75 -14
  129. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_linux.go +131 -38
  130. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_linux_gvisor.go +0 -2
  131. sing_tun-0.9.7.dev0/sing-tun-go/tun_memory.go +178 -0
  132. sing_tun-0.9.7.dev0/sing-tun-go/tun_memory_queue.go +248 -0
  133. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_offload.go +8 -1
  134. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_windows.go +126 -23
  135. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_windows_gvisor.go +0 -2
  136. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/udp_egress.go +1 -5
  137. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/udp_nat.go +156 -92
  138. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/udp_nat_cleanup.go +1 -1
  139. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun/api.py +2 -2
  140. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0/sing_tun.egg-info}/PKG-INFO +19 -10
  141. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun.egg-info/SOURCES.txt +69 -0
  142. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/tests/test_native.py +29 -6
  143. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/tests/test_sync.py +70 -0
  144. sing_tun-0.9.6/UPSTREAM_COMMIT +0 -1
  145. sing_tun-0.9.6/UPSTREAM_VERSION +0 -1
  146. sing_tun-0.9.6/VERSION +0 -1
  147. sing_tun-0.9.6/sing-tun-go/.github/workflows/test.yml +0 -106
  148. sing_tun-0.9.6/sing-tun-go/flow_mtu.go +0 -167
  149. sing_tun-0.9.6/sing-tun-go/flow_reject.go +0 -210
  150. sing_tun-0.9.6/sing-tun-go/redirect.go +0 -37
  151. sing_tun-0.9.6/sing-tun-go/redirect_iptables.go +0 -103
  152. sing_tun-0.9.6/sing-tun-go/redirect_linux.go +0 -302
  153. sing_tun-0.9.6/sing-tun-go/redirect_server.go +0 -94
  154. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/CMakeLists.txt +0 -0
  155. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/LICENSE +0 -0
  156. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/MANIFEST.in +0 -0
  157. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/engine_test.go +0 -0
  158. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/forward.go +0 -0
  159. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/framing_darwin.go +0 -0
  160. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/framing_other.go +0 -0
  161. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/host_darwin.go +0 -0
  162. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/host_linux.go +0 -0
  163. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/host_linux_test.go +0 -0
  164. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/host_other.go +0 -0
  165. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/main.go +0 -0
  166. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/adapter/stack.go +0 -0
  167. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/GCC_GPLv3.txt +0 -0
  168. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/GCC_RUNTIME_EXCEPTION.txt +0 -0
  169. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/Wintun_LICENSE.txt +0 -0
  170. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/Wintun_loader_LICENSE.txt +0 -0
  171. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/mingw-w64_COPYING.txt +0 -0
  172. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/tun2socks-python_LICENSE.txt +0 -0
  173. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/licenses/winpthreads_COPYING.txt +0 -0
  174. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/pyproject.toml +0 -0
  175. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sample/multiprocessing_child.py +0 -0
  176. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/scripts/collect_licenses.py +0 -0
  177. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/scripts/install-go-from-mod.sh +0 -0
  178. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/scripts/validate_distributions.py +0 -0
  179. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/setup.cfg +0 -0
  180. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/setup.py +0 -0
  181. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/.github/renovate.json +0 -0
  182. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/.github/update_dependencies.sh +0 -0
  183. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/.github/workflows/lint.yml +0 -0
  184. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/.gitignore +0 -0
  185. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/.golangci.yml +0 -0
  186. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/LICENSE +0 -0
  187. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/README.md +0 -0
  188. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/flow.go +0 -0
  189. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/README.md +0 -0
  190. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/checksum/checksum.go +0 -0
  191. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/errors.go +0 -0
  192. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/eth.go +0 -0
  193. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/icmpv4.go +0 -0
  194. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/icmpv6.go +0 -0
  195. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/interfaces.go +0 -0
  196. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ipv6.go +0 -0
  197. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ipv6_extension_headers.go +0 -0
  198. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ipv6_fragment.go +0 -0
  199. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndp_neighbor_advert.go +0 -0
  200. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndp_neighbor_solicit.go +0 -0
  201. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndp_options.go +0 -0
  202. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndp_router_advert.go +0 -0
  203. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndp_router_solicit.go +0 -0
  204. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/ndpoptionidentifier_string.go +0 -0
  205. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/netip.go +0 -0
  206. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/header/tcp.go +0 -0
  207. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/seqnum/seqnum.go +0 -0
  208. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/gtcpip/tcpip.go +0 -0
  209. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/endpoint_mutex.go +0 -0
  210. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/errno.go +0 -0
  211. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/processor_mutex.go +0 -0
  212. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/fdbased_darwin/processors.go +0 -0
  213. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/rawfile_darwin/rawfile.go +0 -0
  214. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/stopfd_darwin/stopfd.go +0 -0
  215. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/checksum.go +0 -0
  216. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/checksum_generated_amd64.go +0 -0
  217. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/checksum_generated_amd64.s +0 -0
  218. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/tschecksum/generate_amd64.go +0 -0
  219. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winfw/winfw.go +0 -0
  220. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/interface_change_handler.go +0 -0
  221. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/luid.go +0 -0
  222. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/mksyscall.go +0 -0
  223. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/netsh.go +0 -0
  224. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/route_change_handler.go +0 -0
  225. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types.go +0 -0
  226. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types_32.go +0 -0
  227. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types_64.go +0 -0
  228. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types_test.go +0 -0
  229. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types_test_32.go +0 -0
  230. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/types_test_64.go +0 -0
  231. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/unicast_address_change_handler.go +0 -0
  232. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/winipcfg.go +0 -0
  233. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/winipcfg_test.go +0 -0
  234. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winipcfg/zwinipcfg_windows.go +0 -0
  235. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/helper.go +0 -0
  236. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/mksyscall.go +0 -0
  237. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/syscall_windows.go +0 -0
  238. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/winsys/zsyscall_windows.go +0 -0
  239. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/README.md +0 -0
  240. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/amd64/wintun.dll +0 -0
  241. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/arm/wintun.dll +0 -0
  242. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/arm64/wintun.dll +0 -0
  243. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/dll_windows.go +0 -0
  244. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/dll_windows_386.go +0 -0
  245. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/dll_windows_amd64.go +0 -0
  246. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/dll_windows_arm.go +0 -0
  247. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/dll_windows_arm64.go +0 -0
  248. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_32.go +0 -0
  249. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_386.go +0 -0
  250. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_64.go +0 -0
  251. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_amd64.go +0 -0
  252. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_arm.go +0 -0
  253. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/memmod_windows_arm64.go +0 -0
  254. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/syscall_windows_32.go +0 -0
  255. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/memmod/syscall_windows_64.go +0 -0
  256. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/wintun_windows.go +0 -0
  257. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/internal/wintun/x86/wintun.dll +0 -0
  258. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor.go +0 -0
  259. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_android.go +0 -0
  260. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_darwin.go +0 -0
  261. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_linux_default.go +0 -0
  262. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_linux_test.go +0 -0
  263. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_other.go +0 -0
  264. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_shared.go +0 -0
  265. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/monitor_windows.go +0 -0
  266. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/netns_linux.go +0 -0
  267. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/netns_other.go +0 -0
  268. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/packages.go +0 -0
  269. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/packages_android.go +0 -0
  270. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/packages_stub.go +0 -0
  271. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/cmsg_unix.go +0 -0
  272. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/cmsg_windows.go +0 -0
  273. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/destination.go +0 -0
  274. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/destination_test.go +0 -0
  275. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/filter_linux.go +0 -0
  276. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/filter_other.go +0 -0
  277. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/ping_test.go +0 -0
  278. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/socket_linux_unprivileged.go +0 -0
  279. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/socket_unix.go +0 -0
  280. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/ping/socket_windows.go +0 -0
  281. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_nftables_docker.go +0 -0
  282. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_nftables_exprs.go +0 -0
  283. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_nftables_rules_openwrt.go +0 -0
  284. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/redirect_stub.go +0 -0
  285. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_icmp.go +0 -0
  286. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_lazy.go +0 -0
  287. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_log.go +0 -0
  288. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_stub.go +0 -0
  289. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_tcp.go +0 -0
  290. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_tcpbuf_default.go +0 -0
  291. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_tcpbuf_ios.go +0 -0
  292. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_gvisor_udp.go +0 -0
  293. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_system_nat.go +0 -0
  294. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_system_nonwindows.go +0 -0
  295. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_system_packet.go +0 -0
  296. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/stack_system_windows.go +0 -0
  297. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_darwin_gvisor.go +0 -0
  298. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_linux_flags.go +0 -0
  299. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_nondarwin.go +0 -0
  300. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_nonlinux.go +0 -0
  301. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_offload_errors.go +0 -0
  302. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_offload_linux.go +0 -0
  303. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_other.go +0 -0
  304. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_read_error.go +0 -0
  305. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/tun_rules.go +0 -0
  306. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing-tun-go/udp_egress_conn.go +0 -0
  307. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun/__init__.py +0 -0
  308. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun.egg-info/dependency_links.txt +0 -0
  309. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun.egg-info/not-zip-safe +0 -0
  310. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/sing_tun.egg-info/top_level.txt +0 -0
  311. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/src/sing_tun.cpp +0 -0
  312. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/tests/README.md +0 -0
  313. {sing_tun-0.9.6 → sing_tun-0.9.7.dev0}/tests/fixtures.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sing-tun
3
- Version: 0.9.6
3
+ Version: 0.9.7.dev0
4
4
  Summary: Host-managed sing-tun SOCKS5 bridge for Python
5
5
  Home-page: https://github.com/LorenEteval/sing-tun-python
6
6
  License: GPL-3.0-or-later
@@ -26,7 +26,7 @@ Python bindings for [sing-tun](https://github.com/SagerNet/sing-tun), with a SOC
26
26
  Install from PyPI:
27
27
 
28
28
  ```console
29
- pip install sing-tun
29
+ pip install sing-tun==0.9.7.dev0
30
30
  ```
31
31
 
32
32
  Binary wheels include the compiled Go backend and native Python binding. Installing a compatible wheel does not require
@@ -69,7 +69,7 @@ from sing_tun import Config, Engine
69
69
 
70
70
  config = Config(
71
71
  proxy="socks5://127.0.0.1:1080",
72
- stack="gvisor",
72
+ stack="go",
73
73
  tun_options={
74
74
  "MTU": 1500,
75
75
  "Inet4Address": ["198.18.0.1/15"],
@@ -91,7 +91,7 @@ values use upstream's numeric enums (0, 1, 2), and duration fields accept Go dur
91
91
  Unknown fields and incorrect types are rejected. Runtime objects such as Context, Tun, Handler, Logger,
92
92
  InterfaceFinder and InterfaceMonitor are supplied by the binding and cannot be passed as JSON.
93
93
 
94
- Defaults are `stack="gvisor"`, `Name=""` (automatic selection), `MTU=1500`, `Inet4Address=["198.18.0.1/15"]`,
94
+ Defaults are `stack="go"`, `Name=""` (automatic selection), `MTU=1500`, `Inet4Address=["198.18.0.1/15"]`,
95
95
  `EXP_ExternalConfiguration=False`, `AutoRoute=True`, `DNSMode="disabled"`, `EXP_DisableDNSHijack=True`,
96
96
  and stack `UDPTimeout="1m"`; other upstream fields keep their zero/default values. On every supported platform an omitted or empty
97
97
  `Name` selects an unused `utun10`-`utun1024` name at startup, beginning at a random index. An explicit name is preserved.
@@ -106,9 +106,12 @@ To use an externally configured device and routes, pass
106
106
  `tun_options={"EXP_ExternalConfiguration": True, "AutoRoute": False}`.
107
107
  Creating/configuring the device and routes requires the appropriate platform privileges.
108
108
 
109
- Stack choices are `"gvisor"` (userspace TCP/UDP), `"system"` (OS TCP with upstream userspace UDP handling),
110
- and `"mixed"` (OS TCP plus gVisor UDP). `stack=""` delegates selection to upstream: with this build it normally chooses
111
- mixed, uses system with GSO, or chooses gVisor with `IncludeAllNetworks=True`.
109
+ Stack choices are `"go"` (upstream's new userspace TCP/UDP stack), `"gvisor"` (gVisor TCP/UDP),
110
+ `"system"` (OS TCP with upstream userspace UDP handling), and `"mixed"` (OS TCP plus gVisor UDP).
111
+ `stack=""` delegates selection to upstream, which selects `"go"` in this snapshot.
112
+ The Go stack's `TCPCongestionControl` option is available through `stack_options`.
113
+ This snapshot's Go parser rejects IPv6 hop-by-hop, routing, and destination option headers; gVisor remains available
114
+ for callers that need those packets. Packet processing follows the selected upstream stack.
112
115
 
113
116
  The SOCKS handler requires an IP-literal `proxy` URL and supports optional username/password authentication. Its separate
114
117
  bridge controls are `network_interface=""` (no explicit outbound SOCKS interface binding; the OS chooses the route), `log_level="error"`, `max_sessions=1024`,
@@ -133,7 +136,8 @@ Runtime provenance is available as `sing_tun.__version__`, `sing_tun.__upstream_
133
136
 
134
137
  ## Vendored Upstream Source
135
138
 
136
- The source distribution vendors the exact stable sing-tun tag recorded in `UPSTREAM_VERSION` and `UPSTREAM_COMMIT`.
139
+ The source distribution vendors the exact sing-tun development commit recorded in `UPSTREAM_COMMIT`;
140
+ `UPSTREAM_VERSION` is `dev`. The package version identifies the development snapshot.
137
141
  Files under `sing-tun-go/` preserve upstream source without modifications.
138
142
  The separate `adapter/` module supplies the C ABI, Python lifecycle, SOCKS handler and descriptor ownership glue;
139
143
  upstream constructors implement device and packet-stack behavior.
@@ -148,8 +152,13 @@ python scripts/verify_source.py
148
152
  python scripts/sync-sing-tun.py verify
149
153
  ```
150
154
 
151
- The binding uses the same Git release tag as upstream. `VERSION` contains the corresponding Python package version
152
- without the `v` prefix; synchronization and release checks require it to match `UPSTREAM_VERSION`.
155
+ Stable releases use the same Git release tag as upstream. Development snapshots use Python versions such as
156
+ `0.9.7.dev0` and Git tags such as `v0.9.7.dev0`, with `dev` and an exact commit as upstream provenance.
157
+ Development releases are manual from `codex/development`, require the full build/test matrix, and are marked as GitHub
158
+ prereleases. The hourly stable-tag updater runs only on `main`; publishing a development snapshot does not change it.
159
+ To publish a prepared snapshot, run the distribution workflow manually on `codex/development` with the exact
160
+ commit as `checkout_ref`, `v0.9.7.dev0` as `release_tag`, and `dev` as `upstream_tag`.
161
+ Alternatively, push the matching development tag after committing the snapshot to that branch.
153
162
  Developer synchronization tooling requires Python 3.12+. Publishing needs a PyPI trusted publisher for
154
163
  `LorenEteval/sing-tun-python`, workflow `deploy-pypi.yml`, environment `deploy-pypi`, and the protected GitHub environment.
155
164
 
@@ -9,7 +9,7 @@ Python bindings for [sing-tun](https://github.com/SagerNet/sing-tun), with a SOC
9
9
  Install from PyPI:
10
10
 
11
11
  ```console
12
- pip install sing-tun
12
+ pip install sing-tun==0.9.7.dev0
13
13
  ```
14
14
 
15
15
  Binary wheels include the compiled Go backend and native Python binding. Installing a compatible wheel does not require
@@ -52,7 +52,7 @@ from sing_tun import Config, Engine
52
52
 
53
53
  config = Config(
54
54
  proxy="socks5://127.0.0.1:1080",
55
- stack="gvisor",
55
+ stack="go",
56
56
  tun_options={
57
57
  "MTU": 1500,
58
58
  "Inet4Address": ["198.18.0.1/15"],
@@ -74,7 +74,7 @@ values use upstream's numeric enums (0, 1, 2), and duration fields accept Go dur
74
74
  Unknown fields and incorrect types are rejected. Runtime objects such as Context, Tun, Handler, Logger,
75
75
  InterfaceFinder and InterfaceMonitor are supplied by the binding and cannot be passed as JSON.
76
76
 
77
- Defaults are `stack="gvisor"`, `Name=""` (automatic selection), `MTU=1500`, `Inet4Address=["198.18.0.1/15"]`,
77
+ Defaults are `stack="go"`, `Name=""` (automatic selection), `MTU=1500`, `Inet4Address=["198.18.0.1/15"]`,
78
78
  `EXP_ExternalConfiguration=False`, `AutoRoute=True`, `DNSMode="disabled"`, `EXP_DisableDNSHijack=True`,
79
79
  and stack `UDPTimeout="1m"`; other upstream fields keep their zero/default values. On every supported platform an omitted or empty
80
80
  `Name` selects an unused `utun10`-`utun1024` name at startup, beginning at a random index. An explicit name is preserved.
@@ -89,9 +89,12 @@ To use an externally configured device and routes, pass
89
89
  `tun_options={"EXP_ExternalConfiguration": True, "AutoRoute": False}`.
90
90
  Creating/configuring the device and routes requires the appropriate platform privileges.
91
91
 
92
- Stack choices are `"gvisor"` (userspace TCP/UDP), `"system"` (OS TCP with upstream userspace UDP handling),
93
- and `"mixed"` (OS TCP plus gVisor UDP). `stack=""` delegates selection to upstream: with this build it normally chooses
94
- mixed, uses system with GSO, or chooses gVisor with `IncludeAllNetworks=True`.
92
+ Stack choices are `"go"` (upstream's new userspace TCP/UDP stack), `"gvisor"` (gVisor TCP/UDP),
93
+ `"system"` (OS TCP with upstream userspace UDP handling), and `"mixed"` (OS TCP plus gVisor UDP).
94
+ `stack=""` delegates selection to upstream, which selects `"go"` in this snapshot.
95
+ The Go stack's `TCPCongestionControl` option is available through `stack_options`.
96
+ This snapshot's Go parser rejects IPv6 hop-by-hop, routing, and destination option headers; gVisor remains available
97
+ for callers that need those packets. Packet processing follows the selected upstream stack.
95
98
 
96
99
  The SOCKS handler requires an IP-literal `proxy` URL and supports optional username/password authentication. Its separate
97
100
  bridge controls are `network_interface=""` (no explicit outbound SOCKS interface binding; the OS chooses the route), `log_level="error"`, `max_sessions=1024`,
@@ -116,7 +119,8 @@ Runtime provenance is available as `sing_tun.__version__`, `sing_tun.__upstream_
116
119
 
117
120
  ## Vendored Upstream Source
118
121
 
119
- The source distribution vendors the exact stable sing-tun tag recorded in `UPSTREAM_VERSION` and `UPSTREAM_COMMIT`.
122
+ The source distribution vendors the exact sing-tun development commit recorded in `UPSTREAM_COMMIT`;
123
+ `UPSTREAM_VERSION` is `dev`. The package version identifies the development snapshot.
120
124
  Files under `sing-tun-go/` preserve upstream source without modifications.
121
125
  The separate `adapter/` module supplies the C ABI, Python lifecycle, SOCKS handler and descriptor ownership glue;
122
126
  upstream constructors implement device and packet-stack behavior.
@@ -131,8 +135,13 @@ python scripts/verify_source.py
131
135
  python scripts/sync-sing-tun.py verify
132
136
  ```
133
137
 
134
- The binding uses the same Git release tag as upstream. `VERSION` contains the corresponding Python package version
135
- without the `v` prefix; synchronization and release checks require it to match `UPSTREAM_VERSION`.
138
+ Stable releases use the same Git release tag as upstream. Development snapshots use Python versions such as
139
+ `0.9.7.dev0` and Git tags such as `v0.9.7.dev0`, with `dev` and an exact commit as upstream provenance.
140
+ Development releases are manual from `codex/development`, require the full build/test matrix, and are marked as GitHub
141
+ prereleases. The hourly stable-tag updater runs only on `main`; publishing a development snapshot does not change it.
142
+ To publish a prepared snapshot, run the distribution workflow manually on `codex/development` with the exact
143
+ commit as `checkout_ref`, `v0.9.7.dev0` as `release_tag`, and `dev` as `upstream_tag`.
144
+ Alternatively, push the matching development tag after committing the snapshot to that branch.
136
145
  Developer synchronization tooling requires Python 3.12+. Publishing needs a PyPI trusted publisher for
137
146
  `LorenEteval/sing-tun-python`, workflow `deploy-pypi.yml`, environment `deploy-pypi`, and the protected GitHub environment.
138
147
 
@@ -0,0 +1 @@
1
+ 3f8acd9da65b15b03ec66c7ecdb36759ebcdcc5d