rsloop 0.1.46__tar.gz → 0.1.48__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 (294) hide show
  1. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/anyio.yml +1 -1
  2. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/tests.yml +66 -8
  3. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/wheels.yml +19 -4
  4. rsloop-0.1.48/.python-version +1 -0
  5. {rsloop-0.1.46 → rsloop-0.1.48}/Cargo.lock +79 -23
  6. rsloop-0.1.48/Cargo.toml +110 -0
  7. {rsloop-0.1.46 → rsloop-0.1.48}/PKG-INFO +115 -43
  8. {rsloop-0.1.46 → rsloop-0.1.48}/README.md +114 -42
  9. {rsloop-0.1.46 → rsloop-0.1.48}/benches/README.md +100 -8
  10. {rsloop-0.1.46 → rsloop-0.1.48}/benches/check_regression.py +45 -2
  11. rsloop-0.1.48/benches/idle_statistics.py +62 -0
  12. rsloop-0.1.48/benches/runtime.rs +67 -0
  13. rsloop-0.1.48/benches/timer.rs +81 -0
  14. rsloop-0.1.48/benches/vibeio-performance.md +208 -0
  15. {rsloop-0.1.46 → rsloop-0.1.48}/benches/workload_matrix.py +253 -38
  16. {rsloop-0.1.46 → rsloop-0.1.48}/build.rs +0 -17
  17. {rsloop-0.1.46 → rsloop-0.1.48}/docs/development.md +33 -2
  18. {rsloop-0.1.46 → rsloop-0.1.48}/docs/project-structure.md +3 -1
  19. rsloop-0.1.48/docs/vibeio-cleanup.md +2819 -0
  20. rsloop-0.1.48/docs/vibeio-findings.md +1283 -0
  21. {rsloop-0.1.46 → rsloop-0.1.48}/justfile +14 -1
  22. {rsloop-0.1.46 → rsloop-0.1.48}/pyproject.toml +9 -1
  23. rsloop-0.1.48/rust-toolchain.toml +4 -0
  24. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/run_rust_tests.py +11 -1
  25. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/asyncgens.rs +25 -7
  26. {rsloop-0.1.46 → rsloop-0.1.48}/src/build_metadata.rs +1 -1
  27. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/commands.rs +6 -0
  28. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/loop_core.rs +72 -8
  29. {rsloop-0.1.46 → rsloop-0.1.48}/src/lib.rs +4 -0
  30. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/buffers.rs +95 -8
  31. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/builder.rs +3 -8
  32. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/core_events.rs +10 -10
  33. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/core_protocol.rs +40 -20
  34. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/core_state.rs +12 -0
  35. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/core_write.rs +0 -2
  36. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/reader.rs +16 -15
  37. rsloop-0.1.48/src/vibeio/blocking/default.rs +69 -0
  38. rsloop-0.1.48/src/vibeio/blocking/mod.rs +146 -0
  39. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/builder.rs +103 -33
  40. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/driver/iocp.rs +610 -94
  41. rsloop-0.1.48/src/vibeio/driver/kqueue.rs +963 -0
  42. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/driver/mio.rs +112 -14
  43. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/driver/mock.rs +45 -2
  44. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/driver/mod.rs +264 -3
  45. rsloop-0.1.48/src/vibeio/driver/uring.rs +1514 -0
  46. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/executor.rs +624 -155
  47. rsloop-0.1.48/src/vibeio/fd_inner.rs +415 -0
  48. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/fs/file.rs +330 -223
  49. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/fs/metadata.rs +17 -47
  50. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/fs/mod.rs +396 -146
  51. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/fs/open_options.rs +20 -33
  52. rsloop-0.1.48/src/vibeio/io/buf.rs +856 -0
  53. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/io/mod.rs +18 -17
  54. rsloop-0.1.48/src/vibeio/io/pipe.rs +467 -0
  55. rsloop-0.1.48/src/vibeio/io/splice.rs +393 -0
  56. rsloop-0.1.48/src/vibeio/io/stdio.rs +297 -0
  57. rsloop-0.1.48/src/vibeio/io/util.rs +594 -0
  58. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/lib.rs +14 -46
  59. rsloop-0.1.48/src/vibeio/net/mod.rs +245 -0
  60. rsloop-0.1.48/src/vibeio/net/tcp/listener.rs +257 -0
  61. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/net/tcp/stream.rs +144 -242
  62. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/net/udp.rs +194 -208
  63. rsloop-0.1.48/src/vibeio/net/unix/listener.rs +183 -0
  64. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/net/unix/stream.rs +128 -70
  65. rsloop-0.1.48/src/vibeio/op/accept.rs +727 -0
  66. rsloop-0.1.48/src/vibeio/op/accept_unix.rs +340 -0
  67. rsloop-0.1.48/src/vibeio/op/connect.rs +878 -0
  68. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/fsync.rs +3 -4
  69. rsloop-0.1.48/src/vibeio/op/hard_link.rs +165 -0
  70. rsloop-0.1.48/src/vibeio/op/io_util.rs +681 -0
  71. rsloop-0.1.48/src/vibeio/op/mkdir.rs +145 -0
  72. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/mod.rs +25 -36
  73. rsloop-0.1.48/src/vibeio/op/open.rs +212 -0
  74. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/read.rs +141 -63
  75. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/readat.rs +79 -26
  76. rsloop-0.1.48/src/vibeio/op/readv.rs +498 -0
  77. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/recv.rs +139 -46
  78. rsloop-0.1.48/src/vibeio/op/recvfrom.rs +612 -0
  79. rsloop-0.1.48/src/vibeio/op/rename.rs +165 -0
  80. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/send.rs +70 -42
  81. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/sendto.rs +138 -153
  82. rsloop-0.1.48/src/vibeio/op/socket_addr.rs +356 -0
  83. rsloop-0.1.48/src/vibeio/op/splice.rs +499 -0
  84. rsloop-0.1.48/src/vibeio/op/statx.rs +190 -0
  85. rsloop-0.1.48/src/vibeio/op/symlink.rs +164 -0
  86. rsloop-0.1.48/src/vibeio/op/unlink.rs +146 -0
  87. rsloop-0.1.48/src/vibeio/op/waitpid.rs +210 -0
  88. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/write.rs +81 -54
  89. rsloop-0.1.48/src/vibeio/op/writeat.rs +361 -0
  90. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/writev.rs +151 -69
  91. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/process/mod.rs +325 -279
  92. rsloop-0.1.48/src/vibeio/process/reaper.rs +669 -0
  93. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/signal/mod.rs +13 -9
  94. rsloop-0.1.48/src/vibeio/signal/unix.rs +823 -0
  95. rsloop-0.1.48/src/vibeio/signal/windows.rs +353 -0
  96. rsloop-0.1.48/src/vibeio/task.rs +191 -0
  97. rsloop-0.1.48/src/vibeio/time/interval.rs +239 -0
  98. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/time/mod.rs +79 -20
  99. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/time/sleep.rs +104 -29
  100. rsloop-0.1.48/src/vibeio/time/timeout.rs +272 -0
  101. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/timer.rs +184 -5
  102. rsloop-0.1.48/src/vibeio/util/async_wrap.rs +720 -0
  103. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/util/mod.rs +2 -0
  104. rsloop-0.1.48/tests/packages/beanie_test.py +49 -0
  105. rsloop-0.1.48/tests/packages/django_orm_test.py +66 -0
  106. rsloop-0.1.48/tests/packages/edgy_test.py +41 -0
  107. rsloop-0.1.48/tests/packages/ormar_test.py +46 -0
  108. rsloop-0.1.48/tests/packages/piccolo_test.py +40 -0
  109. rsloop-0.1.48/tests/packages/sqlalchemy_test.py +50 -0
  110. rsloop-0.1.48/tests/packages/sqlmodel_test.py +43 -0
  111. rsloop-0.1.48/tests/packages/tortoise_orm_test.py +42 -0
  112. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_compat.py +137 -0
  113. rsloop-0.1.48/tests/test_idle_benchmark.py +280 -0
  114. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_run.py +8 -1
  115. {rsloop-0.1.46 → rsloop-0.1.48}/uv.lock +718 -1
  116. rsloop-0.1.46/Cargo.toml +0 -108
  117. rsloop-0.1.46/src/vibeio/blocking/default.rs +0 -37
  118. rsloop-0.1.46/src/vibeio/blocking/mod.rs +0 -57
  119. rsloop-0.1.46/src/vibeio/driver/kqueue.rs +0 -515
  120. rsloop-0.1.46/src/vibeio/driver/uring.rs +0 -825
  121. rsloop-0.1.46/src/vibeio/fd_inner.rs +0 -179
  122. rsloop-0.1.46/src/vibeio/io/buf.rs +0 -469
  123. rsloop-0.1.46/src/vibeio/io/pipe.rs +0 -324
  124. rsloop-0.1.46/src/vibeio/io/splice.rs +0 -164
  125. rsloop-0.1.46/src/vibeio/io/stdio.rs +0 -268
  126. rsloop-0.1.46/src/vibeio/io/util.rs +0 -244
  127. rsloop-0.1.46/src/vibeio/net/mod.rs +0 -55
  128. rsloop-0.1.46/src/vibeio/net/tcp/listener.rs +0 -468
  129. rsloop-0.1.46/src/vibeio/net/unix/listener.rs +0 -145
  130. rsloop-0.1.46/src/vibeio/op/accept.rs +0 -690
  131. rsloop-0.1.46/src/vibeio/op/accept_unix.rs +0 -162
  132. rsloop-0.1.46/src/vibeio/op/connect.rs +0 -531
  133. rsloop-0.1.46/src/vibeio/op/hard_link.rs +0 -93
  134. rsloop-0.1.46/src/vibeio/op/io_util.rs +0 -76
  135. rsloop-0.1.46/src/vibeio/op/mkdir.rs +0 -89
  136. rsloop-0.1.46/src/vibeio/op/open.rs +0 -95
  137. rsloop-0.1.46/src/vibeio/op/readv.rs +0 -366
  138. rsloop-0.1.46/src/vibeio/op/recvfrom.rs +0 -460
  139. rsloop-0.1.46/src/vibeio/op/rename.rs +0 -93
  140. rsloop-0.1.46/src/vibeio/op/splice.rs +0 -127
  141. rsloop-0.1.46/src/vibeio/op/statx.rs +0 -119
  142. rsloop-0.1.46/src/vibeio/op/symlink.rs +0 -92
  143. rsloop-0.1.46/src/vibeio/op/unlink.rs +0 -90
  144. rsloop-0.1.46/src/vibeio/op/waitpid.rs +0 -233
  145. rsloop-0.1.46/src/vibeio/op/writeat.rs +0 -166
  146. rsloop-0.1.46/src/vibeio/process/reaper.rs +0 -332
  147. rsloop-0.1.46/src/vibeio/signal/unix.rs +0 -526
  148. rsloop-0.1.46/src/vibeio/signal/windows.rs +0 -154
  149. rsloop-0.1.46/src/vibeio/task.rs +0 -121
  150. rsloop-0.1.46/src/vibeio/time/interval.rs +0 -145
  151. rsloop-0.1.46/src/vibeio/time/timeout.rs +0 -104
  152. rsloop-0.1.46/src/vibeio/util/async_wrap.rs +0 -470
  153. {rsloop-0.1.46 → rsloop-0.1.48}/.cargo/config.toml +0 -0
  154. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/kani.yml +0 -0
  155. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/mkdocs.yml +0 -0
  156. {rsloop-0.1.46 → rsloop-0.1.48}/.github/workflows/update-version.yml +0 -0
  157. {rsloop-0.1.46 → rsloop-0.1.48}/.gitignore +0 -0
  158. {rsloop-0.1.46 → rsloop-0.1.48}/.vscode/settings.json +0 -0
  159. {rsloop-0.1.46 → rsloop-0.1.48}/LICENSE +0 -0
  160. {rsloop-0.1.46 → rsloop-0.1.48}/benches/compare_event_loops.py +0 -0
  161. {rsloop-0.1.46 → rsloop-0.1.48}/docs/examples.md +0 -0
  162. {rsloop-0.1.46 → rsloop-0.1.48}/docs/getting-started.md +0 -0
  163. {rsloop-0.1.46 → rsloop-0.1.48}/docs/how-it-works.md +0 -0
  164. {rsloop-0.1.46 → rsloop-0.1.48}/docs/index.md +0 -0
  165. {rsloop-0.1.46 → rsloop-0.1.48}/docs/rsloop.png +0 -0
  166. {rsloop-0.1.46 → rsloop-0.1.48}/docs/rust-extensions.md +0 -0
  167. {rsloop-0.1.46 → rsloop-0.1.48}/docs/verification.md +0 -0
  168. {rsloop-0.1.46 → rsloop-0.1.48}/examples/01_basics.py +0 -0
  169. {rsloop-0.1.46 → rsloop-0.1.48}/examples/02_fd_and_sockets.py +0 -0
  170. {rsloop-0.1.46 → rsloop-0.1.48}/examples/03_streams.py +0 -0
  171. {rsloop-0.1.46 → rsloop-0.1.48}/examples/04_unix_and_accepted_socket.py +0 -0
  172. {rsloop-0.1.46 → rsloop-0.1.48}/examples/05_pipes_signals_subprocesses.py +0 -0
  173. {rsloop-0.1.46 → rsloop-0.1.48}/examples/README.md +0 -0
  174. {rsloop-0.1.46 → rsloop-0.1.48}/examples/fastapi_service.py +0 -0
  175. {rsloop-0.1.46 → rsloop-0.1.48}/examples/picows_server.py +0 -0
  176. {rsloop-0.1.46 → rsloop-0.1.48}/examples/picows_test.py +0 -0
  177. {rsloop-0.1.46 → rsloop-0.1.48}/examples/wsbench_websockets.py +0 -0
  178. {rsloop-0.1.46 → rsloop-0.1.48}/mkdocs.yml +0 -0
  179. {rsloop-0.1.46 → rsloop-0.1.48}/pyrightconfig.json +0 -0
  180. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/__init__.py +0 -0
  181. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/__init__.pyi +0 -0
  182. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/_bootstrap.py +0 -0
  183. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/_loop.pyi +0 -0
  184. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/_loop_compat.py +0 -0
  185. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/_profile.py +0 -0
  186. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/_run.py +0 -0
  187. {rsloop-0.1.46 → rsloop-0.1.48}/python/rsloop/py.typed +0 -0
  188. {rsloop-0.1.46 → rsloop-0.1.48}/qualirs.toml +0 -0
  189. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/build-pgo-wheels.sh +0 -0
  190. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/build-wheels.sh +0 -0
  191. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/generate_test_tls_certs.py +0 -0
  192. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/prepare_anyio_rsloop_tests.py +0 -0
  193. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/python-versions.sh +0 -0
  194. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/run_python_tests.py +0 -0
  195. {rsloop-0.1.46 → rsloop-0.1.48}/scripts/test-supported-pythons.sh +0 -0
  196. {rsloop-0.1.46 → rsloop-0.1.48}/src/async_event.rs +0 -0
  197. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/asyncio_cache.rs +0 -0
  198. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/connections.rs +0 -0
  199. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/executor.rs +0 -0
  200. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/ffi_helpers.rs +0 -0
  201. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/lifecycle.rs +0 -0
  202. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/methods.rs +0 -0
  203. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/pipes.rs +0 -0
  204. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/pre_exec.rs +0 -0
  205. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/process_handles.rs +0 -0
  206. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/process_spawn.rs +0 -0
  207. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/process_stdio.rs +0 -0
  208. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/servers.rs +0 -0
  209. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/signals.rs +0 -0
  210. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/sock_ops.rs +0 -0
  211. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/socket_connect.rs +0 -0
  212. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/sockets.rs +0 -0
  213. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/spawn_env.rs +0 -0
  214. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/tasks.rs +0 -0
  215. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/tls_params.rs +0 -0
  216. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api/watchers.rs +0 -0
  217. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/loop_api.rs +0 -0
  218. {rsloop-0.1.46 → rsloop-0.1.48}/src/bindings/mod.rs +0 -0
  219. {rsloop-0.1.46 → rsloop-0.1.48}/src/blocking.rs +0 -0
  220. {rsloop-0.1.46 → rsloop-0.1.48}/src/context.rs +0 -0
  221. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/callbacks.rs +0 -0
  222. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/dispatcher/timer_entry.rs +0 -0
  223. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/dispatcher.rs +0 -0
  224. {rsloop-0.1.46 → rsloop-0.1.48}/src/engine/mod.rs +0 -0
  225. {rsloop-0.1.46 → rsloop-0.1.48}/src/errors.rs +0 -0
  226. {rsloop-0.1.46 → rsloop-0.1.48}/src/module_init.rs +0 -0
  227. {rsloop-0.1.46 → rsloop-0.1.48}/src/platform/fd/mod.rs +0 -0
  228. {rsloop-0.1.46 → rsloop-0.1.48}/src/platform/fd/windows.rs +0 -0
  229. {rsloop-0.1.46 → rsloop-0.1.48}/src/platform/mod.rs +0 -0
  230. {rsloop-0.1.46 → rsloop-0.1.48}/src/platform/windows_vibeio.rs +0 -0
  231. {rsloop-0.1.46 → rsloop-0.1.48}/src/profiler.rs +0 -0
  232. {rsloop-0.1.46 → rsloop-0.1.48}/src/python_names.rs +0 -0
  233. {rsloop-0.1.46 → rsloop-0.1.48}/src/rust_async.rs +0 -0
  234. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/mod.rs +0 -0
  235. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/core_events.rs +0 -0
  236. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/core_protocol.rs +0 -0
  237. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/core_state.rs +0 -0
  238. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/mod.rs +0 -0
  239. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/params.rs +0 -0
  240. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/py_pipes.rs +0 -0
  241. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/py_transport.rs +0 -0
  242. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/spawn.rs +0 -0
  243. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/process/worker.rs +0 -0
  244. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/accept.rs +0 -0
  245. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/connect.rs +0 -0
  246. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/fast.rs +0 -0
  247. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/io_targets.rs +0 -0
  248. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/mod.rs +0 -0
  249. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/pipe_transport.rs +0 -0
  250. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/platform.rs +0 -0
  251. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/poll.rs +0 -0
  252. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/protocol.rs +0 -0
  253. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/py_server.rs +0 -0
  254. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/py_transport.rs +0 -0
  255. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/reader_task.rs +0 -0
  256. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/server.rs +0 -0
  257. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/server_core.rs +0 -0
  258. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/server_types.rs +0 -0
  259. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/socket_transport.rs +0 -0
  260. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/stats.rs +0 -0
  261. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/tls_session.rs +0 -0
  262. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/tls_transport.rs +0 -0
  263. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/tuning.rs +0 -0
  264. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/worker.rs +0 -0
  265. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/write_queue.rs +0 -0
  266. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/stream/writer.rs +0 -0
  267. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/tls/material.rs +0 -0
  268. {rsloop-0.1.46 → rsloop-0.1.48}/src/transport/tls/mod.rs +0 -0
  269. {rsloop-0.1.46 → rsloop-0.1.48}/src/verification.rs +0 -0
  270. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/UPSTREAM.md +0 -0
  271. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/net/tcp/mod.rs +0 -0
  272. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/net/unix/mod.rs +0 -0
  273. {rsloop-0.1.46 → rsloop-0.1.48}/src/vibeio/op/readiness.rs +0 -0
  274. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/_smoke.py +0 -0
  275. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/aiohttp_test.py +0 -0
  276. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/anyio_test.py +0 -0
  277. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/daphne_test.py +0 -0
  278. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/django_asgi_test.py +0 -0
  279. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/falcon_test.py +0 -0
  280. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/fastapi_test.py +0 -0
  281. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/faststream_test.py +0 -0
  282. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/hypercorn_test.py +0 -0
  283. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/litestar_granian_test.py +0 -0
  284. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/litestar_test.py +0 -0
  285. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/mangum_test.py +0 -0
  286. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/quart_test.py +0 -0
  287. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/sanic_test.py +0 -0
  288. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/starlette_test.py +0 -0
  289. {rsloop-0.1.46 → rsloop-0.1.48}/tests/packages/uvicorn_test.py +0 -0
  290. {rsloop-0.1.46 → rsloop-0.1.48}/tests/proptest-regressions/transport/stream/fast.txt +0 -0
  291. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_free_threading.py +0 -0
  292. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_public_api.py +0 -0
  293. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_stream_reader.py +0 -0
  294. {rsloop-0.1.46 → rsloop-0.1.48}/tests/test_tls.py +0 -0
@@ -71,7 +71,7 @@ jobs:
71
71
  - name: Set up Rust
72
72
  uses: dtolnay/rust-toolchain@stable
73
73
  with:
74
- toolchain: 1.95.0
74
+ toolchain: "1.98.1"
75
75
 
76
76
  - name: Cache Cargo registry
77
77
  uses: Swatinem/rust-cache@v2
@@ -25,9 +25,17 @@ concurrency:
25
25
 
26
26
  jobs:
27
27
  rust-test:
28
- name: rust tests
28
+ name: rust tests (${{ matrix.features }})
29
29
  runs-on: ubuntu-latest
30
30
  timeout-minutes: 15
31
+ strategy:
32
+ fail-fast: false
33
+ matrix:
34
+ include:
35
+ - features: default
36
+ test_args: ""
37
+ - features: all
38
+ test_args: "--all-features"
31
39
  steps:
32
40
  - name: Check out repository
33
41
  uses: actions/checkout@v6
@@ -42,7 +50,7 @@ jobs:
42
50
  - name: Set up Rust
43
51
  uses: dtolnay/rust-toolchain@stable
44
52
  with:
45
- toolchain: 1.95.0
53
+ toolchain: "1.98.1"
46
54
 
47
55
  - name: Cache Cargo registry
48
56
  uses: Swatinem/rust-cache@v2
@@ -51,10 +59,60 @@ jobs:
51
59
  run: python3 scripts/generate_test_tls_certs.py
52
60
 
53
61
  - name: Run Rust tests
54
- run: python3 scripts/run_rust_tests.py
62
+ run: python3 scripts/run_rust_tests.py ${{ matrix.test_args }}
63
+
64
+ vibeio-native:
65
+ name: embedded runtime (${{ matrix.os }})
66
+ runs-on: ${{ matrix.os }}
67
+ timeout-minutes: 15
68
+ strategy:
69
+ fail-fast: false
70
+ matrix:
71
+ os: [ubuntu-latest, windows-latest, macos-latest]
72
+ steps:
73
+ - name: Check out repository
74
+ uses: actions/checkout@v6
75
+ with:
76
+ persist-credentials: false
77
+
78
+ - name: Set up Rust
79
+ uses: dtolnay/rust-toolchain@stable
80
+ with:
81
+ toolchain: "1.98.1"
82
+ components: clippy, rustfmt
83
+
84
+ - name: Cache runtime harness build
85
+ uses: Swatinem/rust-cache@v2
86
+ with:
87
+ workspaces: tools/vibeio-check
88
+
89
+ - name: Check embedded runtime formatting
90
+ run: cargo fmt --manifest-path tools/vibeio-check/Cargo.toml --all -- --check
91
+
92
+ - name: Check embedded runtime documentation
93
+ env:
94
+ RUSTDOCFLAGS: -D warnings
95
+ run: cargo doc --manifest-path tools/vibeio-check/Cargo.toml --all-features --no-deps --locked
96
+
97
+ - name: Lint embedded runtime on the native target
98
+ run: cargo clippy --manifest-path tools/vibeio-check/Cargo.toml --all-targets --all-features --locked -- -D warnings
99
+
100
+ - name: Check isolated embedded runtime features
101
+ shell: bash
102
+ run: |
103
+ for feature in '' fs process signal pipe stdio splice blocking-default; do
104
+ cargo clippy --manifest-path tools/vibeio-check/Cargo.toml --all-targets --no-default-features --features "$feature" --locked -- -D warnings
105
+ cargo test --manifest-path tools/vibeio-check/Cargo.toml --no-default-features --features "$feature" --locked
106
+ done
107
+
108
+ - name: Run default-feature embedded runtime tests
109
+ run: cargo test --manifest-path tools/vibeio-check/Cargo.toml --locked
110
+
111
+ - name: Run all-feature embedded runtime tests
112
+ run: cargo test --manifest-path tools/vibeio-check/Cargo.toml --all-features --locked
55
113
 
56
114
  clippy:
57
- name: clippy (pedantic)
115
+ name: clippy (risk-focused)
58
116
  runs-on: ubuntu-latest
59
117
  timeout-minutes: 15
60
118
  steps:
@@ -71,14 +129,14 @@ jobs:
71
129
  - name: Set up Rust
72
130
  uses: dtolnay/rust-toolchain@stable
73
131
  with:
74
- toolchain: 1.95.0
132
+ toolchain: "1.98.1"
75
133
  components: clippy
76
134
 
77
135
  - name: Cache Cargo registry
78
136
  uses: Swatinem/rust-cache@v2
79
137
 
80
138
  - name: Run Clippy
81
- run: cargo clippy --all-targets --all-features -- -D warnings
139
+ run: cargo clippy --all-targets --all-features --locked -- -D warnings
82
140
 
83
141
  type-check:
84
142
  name: pyright
@@ -135,7 +193,7 @@ jobs:
135
193
  - name: Set up Rust
136
194
  uses: dtolnay/rust-toolchain@stable
137
195
  with:
138
- toolchain: 1.95.0
196
+ toolchain: "1.98.1"
139
197
 
140
198
  - name: Cache Cargo registry
141
199
  uses: Swatinem/rust-cache@v2
@@ -245,7 +303,7 @@ jobs:
245
303
  - name: Set up Rust
246
304
  uses: dtolnay/rust-toolchain@stable
247
305
  with:
248
- toolchain: 1.95.0
306
+ toolchain: "1.98.1"
249
307
 
250
308
  - name: Cache Cargo registry
251
309
  uses: Swatinem/rust-cache@v2
@@ -5,6 +5,12 @@ on:
5
5
  tags:
6
6
  - "v*"
7
7
  workflow_dispatch:
8
+ inputs:
9
+ pgo:
10
+ description: "Build wheels with profile-guided optimization (slower)"
11
+ type: boolean
12
+ required: false
13
+ default: false
8
14
 
9
15
  permissions:
10
16
  contents: read
@@ -62,8 +68,11 @@ jobs:
62
68
  - name: Set up Rust
63
69
  uses: dtolnay/rust-toolchain@stable
64
70
  with:
65
- toolchain: stable
66
- components: llvm-tools-preview
71
+ toolchain: "1.98.1"
72
+
73
+ - name: Install LLVM tools for PGO
74
+ if: github.event_name == 'workflow_dispatch' && inputs.pgo
75
+ run: rustup component add llvm-tools-preview
67
76
 
68
77
  - name: Cache Cargo registry and target
69
78
  uses: Swatinem/rust-cache@v2
@@ -73,7 +82,13 @@ jobs:
73
82
  shell: bash
74
83
  env:
75
84
  RSLOOP_PYTHON_VERSIONS: ${{ matrix.python_versions }}
76
- run: scripts/build-pgo-wheels.sh --out dist --target "${{ matrix.rust_target }}"
85
+ PGO_ENABLED: ${{ github.event_name == 'workflow_dispatch' && inputs.pgo }}
86
+ run: |
87
+ if [[ "$PGO_ENABLED" == "true" ]]; then
88
+ scripts/build-pgo-wheels.sh --out dist --target "${{ matrix.rust_target }}"
89
+ else
90
+ scripts/build-wheels.sh --out dist --target "${{ matrix.rust_target }}"
91
+ fi
77
92
 
78
93
  - name: Upload wheel artifacts
79
94
  uses: actions/upload-artifact@v4
@@ -103,7 +118,7 @@ jobs:
103
118
  - name: Set up Rust
104
119
  uses: dtolnay/rust-toolchain@stable
105
120
  with:
106
- toolchain: stable
121
+ toolchain: "1.98.1"
107
122
 
108
123
  - name: Cache Cargo registry and target
109
124
  uses: Swatinem/rust-cache@v2
@@ -0,0 +1 @@
1
+ 3.14.7
@@ -4,9 +4,9 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
7
- version = "1.1.4"
7
+ version = "1.1.5"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
9
+ checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
10
10
  dependencies = [
11
11
  "memchr",
12
12
  ]
@@ -228,9 +228,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
228
228
 
229
229
  [[package]]
230
230
  name = "cc"
231
- version = "1.2.65"
231
+ version = "1.4.4"
232
232
  source = "registry+https://github.com/rust-lang/crates.io-index"
233
- checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
233
+ checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
234
234
  dependencies = [
235
235
  "find-msvc-tools",
236
236
  "jobserver",
@@ -353,9 +353,9 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
353
353
 
354
354
  [[package]]
355
355
  name = "find-msvc-tools"
356
- version = "0.1.9"
356
+ version = "0.1.11"
357
357
  source = "registry+https://github.com/rust-lang/crates.io-index"
358
- checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
358
+ checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
359
359
 
360
360
  [[package]]
361
361
  name = "fs_extra"
@@ -393,6 +393,17 @@ version = "0.3.33"
393
393
  source = "registry+https://github.com/rust-lang/crates.io-index"
394
394
  checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7"
395
395
 
396
+ [[package]]
397
+ name = "futures-executor"
398
+ version = "0.3.33"
399
+ source = "registry+https://github.com/rust-lang/crates.io-index"
400
+ checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458"
401
+ dependencies = [
402
+ "futures-core",
403
+ "futures-task",
404
+ "futures-util",
405
+ ]
406
+
396
407
  [[package]]
397
408
  name = "futures-io"
398
409
  version = "0.3.33"
@@ -486,10 +497,21 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
486
497
  dependencies = [
487
498
  "cfg-if",
488
499
  "libc",
489
- "r-efi",
500
+ "r-efi 5.3.0",
490
501
  "wasip2",
491
502
  ]
492
503
 
504
+ [[package]]
505
+ name = "getrandom"
506
+ version = "0.4.3"
507
+ source = "registry+https://github.com/rust-lang/crates.io-index"
508
+ checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
509
+ dependencies = [
510
+ "cfg-if",
511
+ "libc",
512
+ "r-efi 6.0.0",
513
+ ]
514
+
493
515
  [[package]]
494
516
  name = "gloo-timers"
495
517
  version = "0.3.0"
@@ -527,11 +549,11 @@ dependencies = [
527
549
 
528
550
  [[package]]
529
551
  name = "jobserver"
530
- version = "0.1.34"
552
+ version = "0.1.35"
531
553
  source = "registry+https://github.com/rust-lang/crates.io-index"
532
- checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
554
+ checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
533
555
  dependencies = [
534
- "getrandom 0.3.4",
556
+ "getrandom 0.4.3",
535
557
  "libc",
536
558
  ]
537
559
 
@@ -575,9 +597,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
575
597
 
576
598
  [[package]]
577
599
  name = "log"
578
- version = "0.4.33"
600
+ version = "0.4.34"
579
601
  source = "registry+https://github.com/rust-lang/crates.io-index"
580
- checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
602
+ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
581
603
  dependencies = [
582
604
  "value-bag",
583
605
  ]
@@ -640,6 +662,16 @@ dependencies = [
640
662
  "autocfg",
641
663
  ]
642
664
 
665
+ [[package]]
666
+ name = "num_cpus"
667
+ version = "1.17.0"
668
+ source = "registry+https://github.com/rust-lang/crates.io-index"
669
+ checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
670
+ dependencies = [
671
+ "hermit-abi",
672
+ "libc",
673
+ ]
674
+
643
675
  [[package]]
644
676
  name = "once_cell"
645
677
  version = "1.21.4"
@@ -826,6 +858,12 @@ version = "5.3.0"
826
858
  source = "registry+https://github.com/rust-lang/crates.io-index"
827
859
  checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
828
860
 
861
+ [[package]]
862
+ name = "r-efi"
863
+ version = "6.0.0"
864
+ source = "registry+https://github.com/rust-lang/crates.io-index"
865
+ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
866
+
829
867
  [[package]]
830
868
  name = "rand"
831
869
  version = "0.9.5"
@@ -866,9 +904,9 @@ dependencies = [
866
904
 
867
905
  [[package]]
868
906
  name = "regex-automata"
869
- version = "0.4.14"
907
+ version = "0.4.18"
870
908
  source = "registry+https://github.com/rust-lang/crates.io-index"
871
- checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
909
+ checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
872
910
  dependencies = [
873
911
  "aho-corasick",
874
912
  "memchr",
@@ -897,19 +935,23 @@ dependencies = [
897
935
 
898
936
  [[package]]
899
937
  name = "rsloop"
900
- version = "0.1.46"
938
+ version = "0.1.48"
901
939
  dependencies = [
940
+ "async-channel 2.5.0",
902
941
  "async-io",
903
942
  "async-std",
904
943
  "crossbeam-channel",
905
944
  "crossbeam-queue",
945
+ "errno",
906
946
  "futures",
907
947
  "futures-util",
908
948
  "io-uring",
909
949
  "libc",
910
950
  "memchr",
911
951
  "mio",
952
+ "once_cell",
912
953
  "oneshot",
954
+ "pin-project-lite",
913
955
  "proptest",
914
956
  "pyo3",
915
957
  "pyo3-async-runtimes",
@@ -917,11 +959,13 @@ dependencies = [
917
959
  "rustls",
918
960
  "rustls-native-certs",
919
961
  "rustls-pemfile",
962
+ "rusty_pool",
920
963
  "signal-hook",
921
964
  "slab",
922
965
  "socket2",
923
966
  "tokio",
924
967
  "tracy-client",
968
+ "tracy-client-sys",
925
969
  "windows-sys 0.61.2",
926
970
  ]
927
971
 
@@ -997,9 +1041,21 @@ dependencies = [
997
1041
 
998
1042
  [[package]]
999
1043
  name = "rustversion"
1000
- version = "1.0.22"
1044
+ version = "1.0.23"
1045
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1046
+ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
1047
+
1048
+ [[package]]
1049
+ name = "rusty_pool"
1050
+ version = "0.7.0"
1001
1051
  source = "registry+https://github.com/rust-lang/crates.io-index"
1002
- checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1052
+ checksum = "4ed36cdb20de66d89a17ea04b8883fc7a386f2cf877aaedca5005583ce4876ff"
1053
+ dependencies = [
1054
+ "crossbeam-channel",
1055
+ "futures-channel",
1056
+ "futures-executor",
1057
+ "num_cpus",
1058
+ ]
1003
1059
 
1004
1060
  [[package]]
1005
1061
  name = "schannel"
@@ -1121,9 +1177,9 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
1121
1177
 
1122
1178
  [[package]]
1123
1179
  name = "thread_local"
1124
- version = "1.1.9"
1180
+ version = "1.1.10"
1125
1181
  source = "registry+https://github.com/rust-lang/crates.io-index"
1126
- checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
1182
+ checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
1127
1183
  dependencies = [
1128
1184
  "cfg-if",
1129
1185
  ]
@@ -1189,9 +1245,9 @@ dependencies = [
1189
1245
 
1190
1246
  [[package]]
1191
1247
  name = "tracy-client"
1192
- version = "0.18.4"
1248
+ version = "0.19.0"
1193
1249
  source = "registry+https://github.com/rust-lang/crates.io-index"
1194
- checksum = "a4f6fc3baeac5d86ab90c772e9e30620fc653bf1864295029921a15ef478e6a5"
1250
+ checksum = "d93fd676d8946eaeaff4881d26d2240a8d106fcaccbd47cb9f1389e3561ba490"
1195
1251
  dependencies = [
1196
1252
  "loom",
1197
1253
  "once_cell",
@@ -1200,9 +1256,9 @@ dependencies = [
1200
1256
 
1201
1257
  [[package]]
1202
1258
  name = "tracy-client-sys"
1203
- version = "0.28.0"
1259
+ version = "0.30.0"
1204
1260
  source = "registry+https://github.com/rust-lang/crates.io-index"
1205
- checksum = "c5f7c95348f20c1c913d72157b3c6dee6ea3e30b3d19502c5a7f6d3f160dacbf"
1261
+ checksum = "eef8a023d2b19f44e430da334f7dfb5e5db219bb83e2b4f56a09c1cb12abe915"
1206
1262
  dependencies = [
1207
1263
  "cc",
1208
1264
  "windows-targets",
@@ -0,0 +1,110 @@
1
+ [package]
2
+ name = "rsloop"
3
+ version = "0.1.48"
4
+ edition = "2024"
5
+ description = "An event loop for asyncio written in Rust"
6
+ license = "Apache-2.0"
7
+ readme = "README.md"
8
+ repository = "https://github.com/RustedBytes/rsloop"
9
+ homepage = "https://github.com/RustedBytes/rsloop"
10
+ documentation = "https://github.com/RustedBytes/rsloop#readme"
11
+
12
+ [lib]
13
+ name = "rsloop"
14
+ crate-type = ["cdylib", "rlib"]
15
+
16
+ [features]
17
+ default = []
18
+ profiler = ["dep:tracy-client", "dep:tracy-client-sys"]
19
+ # Embedded-runtime modules are opt-in; production wheels retain the default
20
+ # networking/timer build unless a feature is explicitly requested.
21
+ fs = []
22
+ process = ["dep:async-channel"]
23
+ signal = ["dep:once_cell", "dep:errno"]
24
+ pipe = []
25
+ stdio = []
26
+ splice = []
27
+ blocking-default = ["dep:rusty_pool"]
28
+
29
+ [dependencies]
30
+ errno = { version = "0.3", optional = true }
31
+ async-channel = { version = "2", optional = true }
32
+ async-io = "2"
33
+ async-std = "1"
34
+ crossbeam-channel = "0.5"
35
+ crossbeam-queue = "0.3"
36
+ futures = { version = "0.3", default-features = false, features = ["std"] }
37
+ futures-util = "0.3"
38
+ libc = "0.2"
39
+ memchr = "2"
40
+ mio = "1"
41
+ oneshot = { version = "0.2", features = ["async", "std"] }
42
+ pin-project-lite = "0.2"
43
+ once_cell = { version = "1", optional = true }
44
+ pyo3 = { version = "0.29.2" }
45
+ pyo3-async-runtimes = { version = "0.29", features = ["async-std-runtime"] }
46
+ rustls = "0.23"
47
+ rustls-native-certs = "0.8"
48
+ rustls-pemfile = "2"
49
+ rusty_pool = { version = "0.7", default-features = false, optional = true }
50
+ signal-hook = "0.4"
51
+ slab = "0.4"
52
+ socket2 = "0.6"
53
+ tokio = { version = "1", default-features = false, features = ["io-util"] }
54
+ tracy-client = { version = "0.19", default-features = false, features = ["enable", "only-localhost", "sampling"], optional = true }
55
+ # tracy-client 0.19 accepts older sys releases whose generated API is
56
+ # incompatible with the wrapper. Keep the matching bindings selected.
57
+ tracy-client-sys = { version = "=0.30.0", default-features = false, optional = true }
58
+ [target.'cfg(target_os = "linux")'.dependencies]
59
+ io-uring = "0.7"
60
+
61
+ [target.'cfg(unix)'.dependencies]
62
+ mio = { version = "1", features = ["os-poll", "os-ext"] }
63
+
64
+ [target.'cfg(windows)'.dependencies]
65
+ windows-sys = { version = "0.61", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_IO", "Wdk_System_SystemServices", "Win32_Foundation", "Win32_Networking_WinSock", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_IO", "Win32_System_Pipes", "Win32_System_SystemInformation", "Win32_System_Threading"] }
66
+
67
+ [build-dependencies]
68
+ pyo3-build-config = "0.29.2"
69
+
70
+ [dev-dependencies]
71
+ proptest = { version = "1", default-features = false, features = ["std"] }
72
+
73
+ [lints.clippy]
74
+ # Enforce bug, concurrency, and performance checks rather than style preferences.
75
+ correctness = { level = "deny", priority = -1 }
76
+ suspicious = { level = "warn", priority = -1 }
77
+ perf = { level = "warn", priority = -1 }
78
+ complexity = { level = "warn", priority = -1 }
79
+ style = { level = "allow", priority = -1 }
80
+ pedantic = { level = "allow", priority = -1 }
81
+ # Keep safety checks even when they belong to an otherwise disabled group.
82
+ missing_safety_doc = "warn"
83
+ cast_ptr_alignment = "warn"
84
+ await_holding_lock = "warn"
85
+ await_holding_refcell_ref = "warn"
86
+
87
+ [lints.rust]
88
+ unexpected_cfgs = { level = "warn", check-cfg = ["cfg(kani)", "cfg(musl_v1_2_3)", "cfg(syscall_accept4)", "cfg(feature, values(\"blocking-default\", \"fs\", \"pipe\", \"process\", \"signal\", \"splice\", \"stdio\"))"] }
89
+
90
+ [package.metadata.kani.flags]
91
+ # Force every proof that reaches a loop to state and review its own bound.
92
+ default-unwind = "1"
93
+
94
+ [profile.release]
95
+ opt-level = 3
96
+ lto = "fat"
97
+ codegen-units = 1
98
+ incremental = false
99
+ # strip = true
100
+
101
+ [profile.bench]
102
+ inherits = "release"
103
+
104
+ [[bench]]
105
+ name = "runtime"
106
+ harness = false
107
+
108
+ [[bench]]
109
+ name = "timer"
110
+ harness = false