rsloop 0.1.49__tar.gz → 0.1.51__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 (285) hide show
  1. {rsloop-0.1.49 → rsloop-0.1.51}/.cargo/config.toml +0 -3
  2. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/tests.yml +33 -4
  3. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/wheels.yml +0 -2
  4. {rsloop-0.1.49 → rsloop-0.1.51}/Cargo.lock +111 -283
  5. {rsloop-0.1.49 → rsloop-0.1.51}/Cargo.toml +1 -14
  6. {rsloop-0.1.49 → rsloop-0.1.51}/PKG-INFO +74 -84
  7. {rsloop-0.1.49 → rsloop-0.1.51}/README.md +73 -83
  8. {rsloop-0.1.49 → rsloop-0.1.51}/benches/compare_event_loops.py +55 -48
  9. rsloop-0.1.51/benches/compare_granian.py +387 -0
  10. {rsloop-0.1.49 → rsloop-0.1.51}/benches/workload_matrix.py +97 -81
  11. {rsloop-0.1.49 → rsloop-0.1.51}/build.rs +6 -0
  12. {rsloop-0.1.49 → rsloop-0.1.51}/docs/development.md +58 -23
  13. {rsloop-0.1.49 → rsloop-0.1.51}/docs/examples.md +30 -0
  14. {rsloop-0.1.49 → rsloop-0.1.51}/docs/getting-started.md +1 -6
  15. rsloop-0.1.51/docs/hotpath-lab.md +130 -0
  16. {rsloop-0.1.49 → rsloop-0.1.51}/docs/how-it-works.md +0 -2
  17. {rsloop-0.1.49 → rsloop-0.1.51}/docs/project-structure.md +4 -3
  18. {rsloop-0.1.49 → rsloop-0.1.51}/examples/01_basics.py +7 -5
  19. rsloop-0.1.51/examples/02_fd_and_sockets.py +99 -0
  20. {rsloop-0.1.49 → rsloop-0.1.51}/examples/03_streams.py +22 -9
  21. {rsloop-0.1.49 → rsloop-0.1.51}/examples/04_unix_and_accepted_socket.py +51 -32
  22. {rsloop-0.1.49 → rsloop-0.1.51}/examples/05_pipes_signals_subprocesses.py +39 -16
  23. rsloop-0.1.51/examples/README.md +97 -0
  24. {rsloop-0.1.49 → rsloop-0.1.51}/examples/fastapi_service.py +15 -12
  25. rsloop-0.1.51/examples/granian_service.py +163 -0
  26. {rsloop-0.1.49 → rsloop-0.1.51}/examples/picows_server.py +14 -11
  27. {rsloop-0.1.49 → rsloop-0.1.51}/examples/picows_test.py +13 -5
  28. {rsloop-0.1.49 → rsloop-0.1.51}/examples/wsbench_websockets.py +2 -5
  29. rsloop-0.1.51/justfile +92 -0
  30. {rsloop-0.1.49 → rsloop-0.1.51}/pyproject.toml +17 -4
  31. rsloop-0.1.51/pyrightconfig.json +7 -0
  32. rsloop-0.1.51/python/rsloop/__init__.py +27 -0
  33. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/__init__.pyi +13 -10
  34. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/_bootstrap.py +3 -2
  35. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/_loop.pyi +8 -14
  36. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/_loop_compat.py +39 -25
  37. {rsloop-0.1.49 → rsloop-0.1.51}/qualirs.toml +6 -33
  38. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/build-pgo-wheels.sh +8 -3
  39. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/build-wheels.sh +1 -2
  40. rsloop-0.1.51/scripts/hotpath_lab.py +959 -0
  41. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/python-versions.sh +2 -2
  42. rsloop-0.1.51/scripts/run_all_tests.py +38 -0
  43. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/run_python_tests.py +6 -5
  44. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/run_rust_tests.py +11 -3
  45. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/test-supported-pythons.sh +1 -1
  46. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/connections.rs +0 -4
  47. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/executor.rs +79 -4
  48. rsloop-0.1.51/src/bindings/loop_api/fast_callbacks.rs +181 -0
  49. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/methods.rs +0 -2
  50. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/servers.rs +0 -1
  51. rsloop-0.1.51/src/bindings/loop_api/sock_ops.rs +113 -0
  52. rsloop-0.1.51/src/bindings/loop_api/socket_operation.rs +356 -0
  53. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api.rs +3 -0
  54. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/mod.rs +1 -0
  55. {rsloop-0.1.49 → rsloop-0.1.51}/src/build_metadata.rs +0 -1
  56. {rsloop-0.1.49 → rsloop-0.1.51}/src/engine/callbacks.rs +20 -5
  57. {rsloop-0.1.49 → rsloop-0.1.51}/src/engine/commands.rs +0 -8
  58. {rsloop-0.1.49 → rsloop-0.1.51}/src/engine/dispatcher.rs +3 -112
  59. {rsloop-0.1.49 → rsloop-0.1.51}/src/engine/loop_core.rs +190 -36
  60. {rsloop-0.1.49 → rsloop-0.1.51}/src/engine/mod.rs +2 -0
  61. {rsloop-0.1.49/src/engine/dispatcher → rsloop-0.1.51/src/engine}/timer_entry.rs +1 -1
  62. {rsloop-0.1.49 → rsloop-0.1.51}/src/lib.rs +0 -5
  63. {rsloop-0.1.49 → rsloop-0.1.51}/src/module_init.rs +1 -10
  64. {rsloop-0.1.49 → rsloop-0.1.51}/src/platform/fd/mod.rs +1 -34
  65. {rsloop-0.1.49 → rsloop-0.1.51}/src/platform/fd/windows.rs +1 -32
  66. {rsloop-0.1.49 → rsloop-0.1.51}/src/platform/mod.rs +0 -3
  67. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/core_events.rs +0 -6
  68. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/worker.rs +0 -2
  69. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/accept.rs +0 -4
  70. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/buffers.rs +91 -2
  71. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/core_events.rs +0 -7
  72. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/core_protocol.rs +114 -36
  73. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/core_write.rs +124 -14
  74. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/fast.rs +3 -0
  75. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/mod.rs +1 -0
  76. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/py_transport.rs +13 -4
  77. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/reader.rs +0 -3
  78. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/reader_task.rs +0 -4
  79. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/server.rs +1 -2
  80. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/server_core.rs +10 -3
  81. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/socket_transport.rs +0 -3
  82. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/tls_session.rs +0 -1
  83. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/tls_transport.rs +0 -2
  84. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/writer.rs +0 -3
  85. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/tls/material.rs +0 -2
  86. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/tls/mod.rs +0 -2
  87. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/builder.rs +4 -2
  88. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/iocp.rs +22 -4
  89. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/mod.rs +22 -4
  90. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/executor.rs +2 -2
  91. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/fs/mod.rs +88 -163
  92. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/lib.rs +9 -0
  93. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/signal/windows.rs +2 -6
  94. rsloop-0.1.51/tests/conftest.py +25 -0
  95. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/_smoke.py +2 -2
  96. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/anyio_test.py +5 -3
  97. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/django_orm_test.py +2 -1
  98. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/edgy_test.py +1 -1
  99. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/hypercorn_test.py +4 -2
  100. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/litestar_granian_test.py +2 -1
  101. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/mangum_test.py +4 -2
  102. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/piccolo_test.py +2 -1
  103. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/quart_test.py +4 -7
  104. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/sqlmodel_test.py +4 -1
  105. rsloop-0.1.51/tests/test_buffered_delivery.py +104 -0
  106. {rsloop-0.1.49 → rsloop-0.1.51}/tests/test_compat.py +200 -240
  107. rsloop-0.1.51/tests/test_fast_callbacks.py +117 -0
  108. {rsloop-0.1.49 → rsloop-0.1.51}/tests/test_free_threading.py +10 -14
  109. rsloop-0.1.51/tests/test_local_sockets.py +239 -0
  110. rsloop-0.1.51/tests/test_local_timers.py +90 -0
  111. rsloop-0.1.51/tests/test_numeric_addrinfo.py +127 -0
  112. {rsloop-0.1.49 → rsloop-0.1.51}/tests/test_run.py +161 -181
  113. {rsloop-0.1.49 → rsloop-0.1.51}/tests/test_stream_reader.py +41 -45
  114. rsloop-0.1.51/tests/test_subprocesses.py +42 -0
  115. {rsloop-0.1.49 → rsloop-0.1.51}/tests/test_tls.py +37 -31
  116. rsloop-0.1.51/tests/test_write_reentrancy.py +75 -0
  117. rsloop-0.1.51/tests/tooling/test_benchmark_loops.py +200 -0
  118. rsloop-0.1.51/tests/tooling/test_granian_benchmark.py +120 -0
  119. rsloop-0.1.51/tests/tooling/test_hotpath_lab.py +298 -0
  120. rsloop-0.1.51/tests/tooling/test_test_runner.py +104 -0
  121. rsloop-0.1.49/tests/test_public_api.py → rsloop-0.1.51/tests/typing/public_api.py +1 -7
  122. {rsloop-0.1.49 → rsloop-0.1.51}/uv.lock +99 -92
  123. rsloop-0.1.49/benches/README.md +0 -283
  124. rsloop-0.1.49/benches/check_regression.py +0 -157
  125. rsloop-0.1.49/benches/idle_statistics.py +0 -62
  126. rsloop-0.1.49/benches/runtime.rs +0 -67
  127. rsloop-0.1.49/benches/timer.rs +0 -81
  128. rsloop-0.1.49/benches/vibeio-performance.md +0 -208
  129. rsloop-0.1.49/docs/vibeio-cleanup.md +0 -2819
  130. rsloop-0.1.49/docs/vibeio-findings.md +0 -1283
  131. rsloop-0.1.49/examples/02_fd_and_sockets.py +0 -93
  132. rsloop-0.1.49/examples/README.md +0 -55
  133. rsloop-0.1.49/justfile +0 -77
  134. rsloop-0.1.49/pyrightconfig.json +0 -7
  135. rsloop-0.1.49/python/rsloop/__init__.py +0 -41
  136. rsloop-0.1.49/python/rsloop/_profile.py +0 -38
  137. rsloop-0.1.49/src/bindings/loop_api/sock_ops.rs +0 -168
  138. rsloop-0.1.49/src/platform/windows_vibeio.rs +0 -180
  139. rsloop-0.1.49/src/profiler.rs +0 -141
  140. rsloop-0.1.49/tests/test_benchmark_loops.py +0 -141
  141. rsloop-0.1.49/tests/test_idle_benchmark.py +0 -280
  142. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/anyio.yml +0 -0
  143. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/kani.yml +0 -0
  144. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/mkdocs.yml +0 -0
  145. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/update-version.yml +0 -0
  146. {rsloop-0.1.49 → rsloop-0.1.51}/.github/workflows/vibeio-native.yml +0 -0
  147. {rsloop-0.1.49 → rsloop-0.1.51}/.gitignore +0 -0
  148. {rsloop-0.1.49 → rsloop-0.1.51}/.python-version +0 -0
  149. {rsloop-0.1.49 → rsloop-0.1.51}/.vscode/settings.json +0 -0
  150. {rsloop-0.1.49 → rsloop-0.1.51}/LICENSE +0 -0
  151. {rsloop-0.1.49 → rsloop-0.1.51}/docs/index.md +0 -0
  152. {rsloop-0.1.49 → rsloop-0.1.51}/docs/rsloop.png +0 -0
  153. {rsloop-0.1.49 → rsloop-0.1.51}/docs/rust-extensions.md +0 -0
  154. {rsloop-0.1.49 → rsloop-0.1.51}/docs/verification.md +0 -0
  155. {rsloop-0.1.49 → rsloop-0.1.51}/mkdocs.yml +0 -0
  156. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/_run.py +0 -0
  157. {rsloop-0.1.49 → rsloop-0.1.51}/python/rsloop/py.typed +0 -0
  158. {rsloop-0.1.49 → rsloop-0.1.51}/rust-toolchain.toml +0 -0
  159. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/generate_test_tls_certs.py +0 -0
  160. {rsloop-0.1.49 → rsloop-0.1.51}/scripts/prepare_anyio_rsloop_tests.py +0 -0
  161. {rsloop-0.1.49 → rsloop-0.1.51}/src/async_event.rs +0 -0
  162. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/asyncgens.rs +0 -0
  163. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/asyncio_cache.rs +0 -0
  164. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/ffi_helpers.rs +0 -0
  165. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/lifecycle.rs +0 -0
  166. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/pipes.rs +0 -0
  167. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/pre_exec.rs +0 -0
  168. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/process_handles.rs +0 -0
  169. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/process_spawn.rs +0 -0
  170. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/process_stdio.rs +0 -0
  171. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/signals.rs +0 -0
  172. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/socket_connect.rs +0 -0
  173. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/sockets.rs +0 -0
  174. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/spawn_env.rs +0 -0
  175. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/tasks.rs +0 -0
  176. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/tls_params.rs +0 -0
  177. {rsloop-0.1.49 → rsloop-0.1.51}/src/bindings/loop_api/watchers.rs +0 -0
  178. {rsloop-0.1.49 → rsloop-0.1.51}/src/blocking.rs +0 -0
  179. {rsloop-0.1.49 → rsloop-0.1.51}/src/context.rs +0 -0
  180. {rsloop-0.1.49 → rsloop-0.1.51}/src/errors.rs +0 -0
  181. {rsloop-0.1.49 → rsloop-0.1.51}/src/python_names.rs +0 -0
  182. {rsloop-0.1.49 → rsloop-0.1.51}/src/rust_async.rs +0 -0
  183. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/mod.rs +0 -0
  184. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/core_protocol.rs +0 -0
  185. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/core_state.rs +0 -0
  186. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/mod.rs +0 -0
  187. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/params.rs +0 -0
  188. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/py_pipes.rs +0 -0
  189. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/py_transport.rs +0 -0
  190. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/process/spawn.rs +0 -0
  191. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/builder.rs +0 -0
  192. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/connect.rs +0 -0
  193. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/core_state.rs +0 -0
  194. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/io_targets.rs +0 -0
  195. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/pipe_transport.rs +0 -0
  196. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/platform.rs +0 -0
  197. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/poll.rs +0 -0
  198. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/protocol.rs +0 -0
  199. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/py_server.rs +0 -0
  200. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/server_types.rs +0 -0
  201. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/stats.rs +0 -0
  202. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/tuning.rs +0 -0
  203. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/worker.rs +0 -0
  204. {rsloop-0.1.49 → rsloop-0.1.51}/src/transport/stream/write_queue.rs +0 -0
  205. {rsloop-0.1.49 → rsloop-0.1.51}/src/verification.rs +0 -0
  206. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/UPSTREAM.md +0 -0
  207. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/blocking/default.rs +0 -0
  208. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/blocking/mod.rs +0 -0
  209. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/kqueue.rs +0 -0
  210. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/mio.rs +0 -0
  211. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/mock.rs +0 -0
  212. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/driver/uring.rs +0 -0
  213. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/fd_inner.rs +0 -0
  214. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/fs/file.rs +0 -0
  215. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/fs/metadata.rs +0 -0
  216. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/fs/open_options.rs +0 -0
  217. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/buf.rs +0 -0
  218. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/mod.rs +0 -0
  219. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/pipe.rs +0 -0
  220. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/splice.rs +0 -0
  221. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/stdio.rs +0 -0
  222. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/io/util.rs +0 -0
  223. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/mod.rs +0 -0
  224. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/tcp/listener.rs +0 -0
  225. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/tcp/mod.rs +0 -0
  226. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/tcp/stream.rs +0 -0
  227. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/udp.rs +0 -0
  228. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/unix/listener.rs +0 -0
  229. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/unix/mod.rs +0 -0
  230. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/net/unix/stream.rs +0 -0
  231. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/accept.rs +0 -0
  232. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/accept_unix.rs +0 -0
  233. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/connect.rs +0 -0
  234. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/fsync.rs +0 -0
  235. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/hard_link.rs +0 -0
  236. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/io_util.rs +0 -0
  237. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/mkdir.rs +0 -0
  238. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/mod.rs +0 -0
  239. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/open.rs +0 -0
  240. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/read.rs +0 -0
  241. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/readat.rs +0 -0
  242. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/readiness.rs +0 -0
  243. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/readv.rs +0 -0
  244. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/recv.rs +0 -0
  245. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/recvfrom.rs +0 -0
  246. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/rename.rs +0 -0
  247. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/send.rs +0 -0
  248. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/sendto.rs +0 -0
  249. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/socket_addr.rs +0 -0
  250. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/splice.rs +0 -0
  251. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/statx.rs +0 -0
  252. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/symlink.rs +0 -0
  253. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/unlink.rs +0 -0
  254. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/waitpid.rs +0 -0
  255. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/write.rs +0 -0
  256. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/writeat.rs +0 -0
  257. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/op/writev.rs +0 -0
  258. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/process/mod.rs +0 -0
  259. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/process/reaper.rs +0 -0
  260. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/signal/mod.rs +0 -0
  261. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/signal/unix.rs +0 -0
  262. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/task.rs +0 -0
  263. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/test_support.rs +0 -0
  264. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/time/interval.rs +0 -0
  265. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/time/mod.rs +0 -0
  266. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/time/sleep.rs +0 -0
  267. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/time/timeout.rs +0 -0
  268. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/timer.rs +0 -0
  269. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/util/async_wrap.rs +0 -0
  270. {rsloop-0.1.49 → rsloop-0.1.51}/src/vibeio/util/mod.rs +0 -0
  271. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/aiohttp_test.py +0 -0
  272. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/beanie_test.py +0 -0
  273. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/daphne_test.py +0 -0
  274. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/django_asgi_test.py +0 -0
  275. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/falcon_test.py +0 -0
  276. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/fastapi_test.py +0 -0
  277. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/faststream_test.py +0 -0
  278. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/litestar_test.py +0 -0
  279. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/ormar_test.py +0 -0
  280. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/sanic_test.py +0 -0
  281. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/sqlalchemy_test.py +0 -0
  282. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/starlette_test.py +0 -0
  283. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/tortoise_orm_test.py +0 -0
  284. {rsloop-0.1.49/tests → rsloop-0.1.51/tests/integration}/packages/uvicorn_test.py +0 -0
  285. {rsloop-0.1.49 → rsloop-0.1.51}/tests/proptest-regressions/transport/stream/fast.txt +0 -0
@@ -1,5 +1,2 @@
1
- [env]
2
- TRACY_CLIENT_SYS_CXXFLAGS = "-static-libstdc++ -static-libgcc"
3
-
4
1
  [target.x86_64-pc-windows-gnu]
5
2
  rustflags = ["-C", "link-arg=-static-libstdc++", "-C", "link-arg=-static-libgcc"]
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
  inputs:
6
6
  python_versions:
7
- description: "Space-separated supported Python versions to test (3.10–3.14, 3.14t)"
7
+ description: "Space-separated supported Python versions to test (3.10–3.15, 3.14t)"
8
8
  required: false
9
9
  type: string
10
10
  build_mode:
@@ -114,9 +114,30 @@ jobs:
114
114
 
115
115
  - name: Run pyright
116
116
  run: |
117
- uv sync --group dev --no-install-project
117
+ uv sync --group dev --group integration --no-install-project
118
118
  uv run --no-sync pyright
119
119
 
120
+ tooling-test:
121
+ name: tooling tests
122
+ runs-on: ubuntu-latest
123
+ timeout-minutes: 10
124
+ steps:
125
+ - name: Check out repository
126
+ uses: actions/checkout@v6
127
+ with:
128
+ persist-credentials: false
129
+
130
+ - name: Set up uv
131
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b
132
+ with:
133
+ python-version: "3.13"
134
+ cache-suffix: tooling-tests
135
+
136
+ - name: Run repository tooling tests
137
+ run: |
138
+ uv sync --group test --no-install-project
139
+ uv run --no-sync python -m pytest -m tooling tests/tooling
140
+
120
141
  anyio-test:
121
142
  # AnyIO drives the loop through APIs the other package tests never touch —
122
143
  # subprocess_exec with the full Popen keyword set, socket creation,
@@ -169,7 +190,7 @@ jobs:
169
190
  # the same one that then imports rsloop below.
170
191
  subprocess.run(maturin, check=True)
171
192
  subprocess.run(
172
- [sys.executable, "-u", "tests/packages/anyio_test.py"], check=True
193
+ [sys.executable, "-u", "tests/integration/packages/anyio_test.py"], check=True
173
194
  )
174
195
  PY
175
196
 
@@ -200,7 +221,15 @@ jobs:
200
221
  import os
201
222
  import sys
202
223
 
203
- supported_versions = {"3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"}
224
+ supported_versions = {
225
+ "3.10",
226
+ "3.11",
227
+ "3.12",
228
+ "3.13",
229
+ "3.14",
230
+ "3.14t",
231
+ "3.15",
232
+ }
204
233
  unsupported_versions = sorted(set(sys.argv[1:]) - supported_versions)
205
234
  if unsupported_versions:
206
235
  raise SystemExit(
@@ -27,8 +27,6 @@ jobs:
27
27
  timeout-minutes: 90
28
28
  strategy:
29
29
  fail-fast: false
30
- # The profiler retains state for every short-lived readiness worker, so it
31
- # is reserved for explicit local builds instead of published wheels.
32
30
  matrix:
33
31
  include:
34
32
  - os_name: linux