temporalio 0.0.2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -23
  3. data/bridge/Cargo.lock +185 -76
  4. data/bridge/Cargo.toml +6 -4
  5. data/bridge/sdk-core/README.md +19 -6
  6. data/bridge/sdk-core/client/src/lib.rs +215 -39
  7. data/bridge/sdk-core/client/src/metrics.rs +17 -8
  8. data/bridge/sdk-core/client/src/raw.rs +4 -4
  9. data/bridge/sdk-core/client/src/retry.rs +32 -20
  10. data/bridge/sdk-core/core/Cargo.toml +22 -9
  11. data/bridge/sdk-core/core/src/abstractions.rs +203 -14
  12. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +76 -41
  13. data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
  14. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +204 -83
  15. data/bridge/sdk-core/core/src/core_tests/queries.rs +3 -4
  16. data/bridge/sdk-core/core/src/core_tests/workers.rs +1 -3
  17. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +397 -54
  18. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
  19. data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
  20. data/bridge/sdk-core/core/src/lib.rs +16 -9
  21. data/bridge/sdk-core/core/src/telemetry/log_export.rs +1 -1
  22. data/bridge/sdk-core/core/src/telemetry/metrics.rs +69 -35
  23. data/bridge/sdk-core/core/src/telemetry/mod.rs +29 -13
  24. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +17 -12
  25. data/bridge/sdk-core/core/src/test_help/mod.rs +62 -12
  26. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
  27. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  28. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +352 -122
  29. data/bridge/sdk-core/core/src/worker/activities.rs +233 -157
  30. data/bridge/sdk-core/core/src/worker/client/mocks.rs +22 -2
  31. data/bridge/sdk-core/core/src/worker/client.rs +18 -2
  32. data/bridge/sdk-core/core/src/worker/mod.rs +165 -58
  33. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  34. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
  35. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +856 -277
  36. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +100 -43
  37. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +7 -7
  38. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +5 -4
  39. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +87 -27
  40. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +5 -4
  41. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +5 -4
  42. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +5 -4
  43. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +137 -62
  44. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +25 -17
  45. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +7 -6
  46. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +103 -152
  47. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +7 -7
  48. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -9
  49. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
  50. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -7
  51. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +5 -16
  52. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +201 -121
  53. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +11 -14
  54. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +30 -15
  55. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1026 -376
  56. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +460 -384
  57. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  58. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  59. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
  60. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +448 -718
  63. data/bridge/sdk-core/core-api/Cargo.toml +2 -1
  64. data/bridge/sdk-core/core-api/src/errors.rs +1 -34
  65. data/bridge/sdk-core/core-api/src/lib.rs +6 -2
  66. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -6
  67. data/bridge/sdk-core/core-api/src/worker.rs +14 -1
  68. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
  69. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
  70. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  71. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +5 -17
  72. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +11 -0
  73. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +1 -6
  74. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +6 -6
  75. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +5 -0
  76. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +22 -6
  77. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +48 -19
  78. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -0
  79. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +3 -0
  80. data/bridge/sdk-core/protos/api_upstream/temporal/api/{enums/v1/interaction_type.proto → protocol/v1/message.proto} +29 -11
  81. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  82. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +111 -0
  83. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +59 -28
  84. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
  85. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
  86. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
  87. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
  88. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  89. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  90. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
  91. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +7 -0
  92. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +1 -0
  93. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
  94. data/bridge/sdk-core/sdk/Cargo.toml +3 -2
  95. data/bridge/sdk-core/sdk/src/lib.rs +87 -20
  96. data/bridge/sdk-core/sdk/src/workflow_future.rs +9 -8
  97. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  98. data/bridge/sdk-core/sdk-core-protos/build.rs +36 -1
  99. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +100 -87
  100. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +5 -1
  101. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +175 -57
  102. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  103. data/bridge/sdk-core/test-utils/Cargo.toml +3 -1
  104. data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
  105. data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
  106. data/bridge/sdk-core/test-utils/src/lib.rs +82 -23
  107. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  108. data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
  109. data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
  110. data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  111. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  112. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -3
  113. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
  114. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
  115. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  116. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  117. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
  118. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  119. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  120. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
  121. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  122. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  123. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +72 -191
  124. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -0
  125. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
  126. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
  127. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  128. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  129. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  130. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  131. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
  132. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +10 -11
  133. data/bridge/sdk-core/tests/main.rs +3 -13
  134. data/bridge/sdk-core/tests/runner.rs +75 -36
  135. data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
  136. data/bridge/src/connection.rs +41 -25
  137. data/bridge/src/lib.rs +269 -14
  138. data/bridge/src/runtime.rs +1 -1
  139. data/bridge/src/test_server.rs +153 -0
  140. data/bridge/src/worker.rs +89 -16
  141. data/lib/gen/temporal/api/command/v1/message_pb.rb +4 -18
  142. data/lib/gen/temporal/api/common/v1/message_pb.rb +4 -0
  143. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +1 -3
  144. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -3
  145. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +2 -0
  146. data/lib/gen/temporal/api/enums/v1/update_pb.rb +6 -4
  147. data/lib/gen/temporal/api/history/v1/message_pb.rb +27 -19
  148. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -0
  149. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +3 -0
  150. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
  151. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
  152. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
  153. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
  154. data/lib/gen/temporal/api/update/v1/message_pb.rb +72 -0
  155. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +26 -16
  156. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
  157. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
  158. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
  159. data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
  160. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
  161. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
  162. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +27 -21
  163. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +28 -24
  164. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
  165. data/lib/temporalio/activity/context.rb +13 -8
  166. data/lib/temporalio/activity/info.rb +1 -1
  167. data/lib/temporalio/bridge/connect_options.rb +15 -0
  168. data/lib/temporalio/bridge/retry_config.rb +24 -0
  169. data/lib/temporalio/bridge/tls_options.rb +19 -0
  170. data/lib/temporalio/bridge.rb +1 -1
  171. data/lib/temporalio/client/implementation.rb +8 -8
  172. data/lib/temporalio/connection/retry_config.rb +44 -0
  173. data/lib/temporalio/connection/service.rb +20 -0
  174. data/lib/temporalio/connection/test_service.rb +92 -0
  175. data/lib/temporalio/connection/tls_options.rb +51 -0
  176. data/lib/temporalio/connection/workflow_service.rb +731 -0
  177. data/lib/temporalio/connection.rb +55 -720
  178. data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
  179. data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
  180. data/lib/temporalio/interceptor/chain.rb +5 -5
  181. data/lib/temporalio/interceptor/client.rb +8 -4
  182. data/lib/temporalio/interceptor.rb +22 -0
  183. data/lib/temporalio/retry_policy.rb +13 -3
  184. data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
  185. data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
  186. data/lib/temporalio/testing/workflow_environment.rb +112 -0
  187. data/lib/temporalio/testing.rb +175 -0
  188. data/lib/temporalio/version.rb +1 -1
  189. data/lib/temporalio/worker/activity_runner.rb +26 -4
  190. data/lib/temporalio/worker/activity_worker.rb +44 -18
  191. data/lib/temporalio/worker/sync_worker.rb +47 -11
  192. data/lib/temporalio/worker.rb +27 -21
  193. data/lib/temporalio/workflow/async.rb +46 -0
  194. data/lib/temporalio/workflow/future.rb +138 -0
  195. data/lib/temporalio/workflow/info.rb +76 -0
  196. data/lib/thermite_patch.rb +10 -0
  197. data/sig/async.rbs +17 -0
  198. data/sig/protobuf.rbs +16 -0
  199. data/sig/protos/dependencies/gogoproto/gogo.rbs +914 -0
  200. data/sig/protos/google/protobuf/any.rbs +157 -0
  201. data/sig/protos/google/protobuf/descriptor.rbs +2825 -0
  202. data/sig/protos/google/protobuf/duration.rbs +114 -0
  203. data/sig/protos/google/protobuf/empty.rbs +36 -0
  204. data/sig/protos/google/protobuf/timestamp.rbs +145 -0
  205. data/sig/protos/google/protobuf/wrappers.rbs +358 -0
  206. data/sig/protos/temporal/api/batch/v1/message.rbs +300 -0
  207. data/sig/protos/temporal/api/command/v1/message.rbs +1399 -0
  208. data/sig/protos/temporal/api/common/v1/message.rbs +528 -0
  209. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +79 -0
  210. data/sig/protos/temporal/api/enums/v1/command_type.rbs +68 -0
  211. data/sig/protos/temporal/api/enums/v1/common.rbs +118 -0
  212. data/sig/protos/temporal/api/enums/v1/event_type.rbs +264 -0
  213. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +277 -0
  214. data/sig/protos/temporal/api/enums/v1/namespace.rbs +108 -0
  215. data/sig/protos/temporal/api/enums/v1/query.rbs +81 -0
  216. data/sig/protos/temporal/api/enums/v1/reset.rbs +44 -0
  217. data/sig/protos/temporal/api/enums/v1/schedule.rbs +72 -0
  218. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +92 -0
  219. data/sig/protos/temporal/api/enums/v1/update.rbs +64 -0
  220. data/sig/protos/temporal/api/enums/v1/workflow.rbs +371 -0
  221. data/sig/protos/temporal/api/errordetails/v1/message.rbs +551 -0
  222. data/sig/protos/temporal/api/failure/v1/message.rbs +581 -0
  223. data/sig/protos/temporal/api/filter/v1/message.rbs +171 -0
  224. data/sig/protos/temporal/api/history/v1/message.rbs +4609 -0
  225. data/sig/protos/temporal/api/namespace/v1/message.rbs +410 -0
  226. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +643 -0
  227. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +17 -0
  228. data/sig/protos/temporal/api/protocol/v1/message.rbs +84 -0
  229. data/sig/protos/temporal/api/query/v1/message.rbs +182 -0
  230. data/sig/protos/temporal/api/replication/v1/message.rbs +148 -0
  231. data/sig/protos/temporal/api/schedule/v1/message.rbs +1488 -0
  232. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +110 -0
  233. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +486 -0
  234. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +249 -0
  235. data/sig/protos/temporal/api/testservice/v1/service.rbs +15 -0
  236. data/sig/protos/temporal/api/update/v1/message.rbs +489 -0
  237. data/sig/protos/temporal/api/version/v1/message.rbs +184 -0
  238. data/sig/protos/temporal/api/workflow/v1/message.rbs +824 -0
  239. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +7250 -0
  240. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +22 -0
  241. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +380 -0
  242. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +386 -0
  243. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +323 -0
  244. data/sig/protos/temporal/sdk/core/common/common.rbs +62 -0
  245. data/sig/protos/temporal/sdk/core/core_interface.rbs +101 -0
  246. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +119 -0
  247. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +1473 -0
  248. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +1784 -0
  249. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +180 -0
  250. data/sig/ruby.rbs +12 -0
  251. data/sig/temporalio/activity/context.rbs +29 -0
  252. data/sig/temporalio/activity/info.rbs +43 -0
  253. data/sig/temporalio/activity.rbs +19 -0
  254. data/sig/temporalio/bridge/connect_options.rbs +19 -0
  255. data/sig/temporalio/bridge/error.rbs +8 -0
  256. data/sig/temporalio/bridge/retry_config.rbs +21 -0
  257. data/sig/temporalio/bridge/tls_options.rbs +17 -0
  258. data/sig/temporalio/bridge.rbs +71 -0
  259. data/sig/temporalio/client/implementation.rbs +38 -0
  260. data/sig/temporalio/client/workflow_handle.rbs +41 -0
  261. data/sig/temporalio/client.rbs +35 -0
  262. data/sig/temporalio/connection/retry_config.rbs +37 -0
  263. data/sig/temporalio/connection/service.rbs +14 -0
  264. data/sig/temporalio/connection/test_service.rbs +13 -0
  265. data/sig/temporalio/connection/tls_options.rbs +43 -0
  266. data/sig/temporalio/connection/workflow_service.rbs +48 -0
  267. data/sig/temporalio/connection.rbs +30 -0
  268. data/sig/temporalio/data_converter.rbs +35 -0
  269. data/sig/temporalio/error/failure.rbs +121 -0
  270. data/sig/temporalio/error/workflow_failure.rbs +9 -0
  271. data/sig/temporalio/errors.rbs +36 -0
  272. data/sig/temporalio/failure_converter/base.rbs +12 -0
  273. data/sig/temporalio/failure_converter/basic.rbs +86 -0
  274. data/sig/temporalio/failure_converter.rbs +5 -0
  275. data/sig/temporalio/interceptor/activity_inbound.rbs +21 -0
  276. data/sig/temporalio/interceptor/activity_outbound.rbs +10 -0
  277. data/sig/temporalio/interceptor/chain.rbs +24 -0
  278. data/sig/temporalio/interceptor/client.rbs +148 -0
  279. data/sig/temporalio/interceptor.rbs +6 -0
  280. data/sig/temporalio/payload_codec/base.rbs +12 -0
  281. data/sig/temporalio/payload_converter/base.rbs +12 -0
  282. data/sig/temporalio/payload_converter/bytes.rbs +9 -0
  283. data/sig/temporalio/payload_converter/composite.rbs +19 -0
  284. data/sig/temporalio/payload_converter/encoding_base.rbs +14 -0
  285. data/sig/temporalio/payload_converter/json.rbs +9 -0
  286. data/sig/temporalio/payload_converter/nil.rbs +9 -0
  287. data/sig/temporalio/payload_converter.rbs +5 -0
  288. data/sig/temporalio/retry_policy.rbs +25 -0
  289. data/sig/temporalio/retry_state.rbs +20 -0
  290. data/sig/temporalio/runtime.rbs +12 -0
  291. data/sig/temporalio/testing/time_skipping_handle.rbs +15 -0
  292. data/sig/temporalio/testing/time_skipping_interceptor.rbs +13 -0
  293. data/sig/temporalio/testing/workflow_environment.rbs +22 -0
  294. data/sig/temporalio/testing.rbs +35 -0
  295. data/sig/temporalio/timeout_type.rbs +15 -0
  296. data/sig/temporalio/version.rbs +3 -0
  297. data/sig/temporalio/worker/activity_runner.rbs +35 -0
  298. data/sig/temporalio/worker/activity_worker.rbs +44 -0
  299. data/sig/temporalio/worker/reactor.rbs +22 -0
  300. data/sig/temporalio/worker/runner.rbs +21 -0
  301. data/sig/temporalio/worker/sync_worker.rbs +23 -0
  302. data/sig/temporalio/worker/thread_pool_executor.rbs +23 -0
  303. data/sig/temporalio/worker.rbs +46 -0
  304. data/sig/temporalio/workflow/async.rbs +9 -0
  305. data/sig/temporalio/workflow/execution_info.rbs +55 -0
  306. data/sig/temporalio/workflow/execution_status.rbs +21 -0
  307. data/sig/temporalio/workflow/future.rbs +40 -0
  308. data/sig/temporalio/workflow/id_reuse_policy.rbs +15 -0
  309. data/sig/temporalio/workflow/info.rbs +55 -0
  310. data/sig/temporalio/workflow/query_reject_condition.rbs +14 -0
  311. data/sig/temporalio.rbs +2 -0
  312. data/sig/thermite_patch.rbs +15 -0
  313. data/temporalio.gemspec +6 -4
  314. metadata +183 -17
  315. data/bridge/sdk-core/Cargo.lock +0 -2606
  316. data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +0 -87
  317. data/lib/bridge.so +0 -0
  318. data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +0 -25
  319. data/lib/gen/temporal/api/interaction/v1/message_pb.rb +0 -49
  320. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 657f0a3bde04af32d78ce4f6b58103ba1eb5e16b6b023aea02fdd8889fe7594c
4
- data.tar.gz: 7b51a09196eb6dde92b54e31b1abad8cf7ce3a41f2c719de73d8341e83d5d95e
3
+ metadata.gz: 7b66a076a009147a66ed59c5220287ce676fc556f7ebcbf133cd326a36cdde98
4
+ data.tar.gz: 36f9c733d6d07e92e3afafe14a3d96141d5cfd3b539cb67232eb0e1df7674d82
5
5
  SHA512:
6
- metadata.gz: 768d7983132b8a4bc3bd359be90a621463f9abd0e3a6de51dbd13256c86e9f60f916142b3301d22082e7ffacba156b5a97666b4f189299e976bc890c224fe2bb
7
- data.tar.gz: 7602428c63547f9de4da9dcbd4180d58617eae04fb5478a58fbfc16c2d7f27fda8894134ab1a7d37dfe3c79f0c67d97eabf5f2f7f50e0112f19dbcc12f32d1d3
6
+ metadata.gz: b4a85294be411f8dc7e5aee0970541169b5b5abc4323c55183f630be5a9e5727759e7898bf245ff1e7148d91403ac7d83813a3980a19a61ea50a61da15487680
7
+ data.tar.gz: 8d339cca13baae36ed45ec58d5023f2809afb956edbca61144e8ecde0021b0ba439378f92862cd46c75a39d11ac7b41bdc4b32162687fcef45cc640a7e8a464a
data/README.md CHANGED
@@ -21,7 +21,6 @@ At this point the SDK only supports the **Temporal Client** capabilities:
21
21
  - Interacting with a workflow (cancelling, querying, signalling, etc)
22
22
  - Interceptor and Data Conversion support
23
23
  - gRPC access to Temporal Server
24
- - Temporal Cloud is not yet supported due to the lack of TLS support, but it's coming soon
25
24
 
26
25
  As well as **Activity Worker** capabilities:
27
26
 
@@ -43,7 +42,6 @@ The SDK is now ready for use. To build from source, see [Dev Setup](#dev-setup).
43
42
 
44
43
  **NOTE: This README is for the current branch and not necessarily what's released on RubyGems.**
45
44
 
46
-
47
45
  ## Usage
48
46
 
49
47
  ### Client
@@ -54,6 +52,12 @@ A client can be created and used to start a workflow like so:
54
52
  # Establish a gRPC connection to the server
55
53
  connection = Temporalio::Connection.new('localhost:7233')
56
54
 
55
+ # To enable TLS, simply add the `tls:` argument:
56
+ # Temporalio::Connection.new(
57
+ # 'localhost:7233',
58
+ # tls: Temporalio::Connection::TlsOptions.new(client_cert, client_private_key)
59
+ # )
60
+
57
61
  # Initialize a Client with a namespace
58
62
  client = Temporalio::Client.new(connection, 'my-namespace')
59
63
 
@@ -68,7 +72,6 @@ puts "Result: #{result}"
68
72
  Some things to note about the above code:
69
73
 
70
74
  - A `Client` does not have an explicit "close"
71
- - TLS is not yet supported
72
75
  - All positional arguments after the workflow name are treated as workflow arguments
73
76
  - The `handle` represents the workflow that was started and can be used for more than just getting
74
77
  the result
@@ -98,13 +101,13 @@ different SDKs. A custom payload converter can be implemented to support these.
98
101
  Workers host workflows (coming soon) and/or activities. Here's how to run a worker:
99
102
 
100
103
  ```ruby
101
- require 'temporal'
104
+ require 'temporalio'
102
105
 
103
106
  # Establish a gRPC connection to the server
104
- connection = Temporal::Connection.new('localhost:7233')
107
+ connection = Temporalio::Connection.new('localhost:7233')
105
108
 
106
109
  # Initialize a new worker with your activities
107
- worker = Temporal::Worker.new(connection, 'my-namespace', 'my-task-queue', activities: [MyActivity])
110
+ worker = Temporalio::Worker.new(connection, 'my-namespace', 'my-task-queue', activities: [MyActivity])
108
111
 
109
112
  # Occupy the thread by running the worker
110
113
  worker.run
@@ -125,7 +128,7 @@ which the worker will shut itself down:
125
128
  worker_1.run { sleep 5 }
126
129
 
127
130
  # Or shut the worker down when a workflow completes (very useful for running specs):
128
- client = Temporal::Client.new(connection, 'my-namespace')
131
+ client = Temporalio::Client.new(connection, 'my-namespace')
129
132
  handle = client.start_workflow('MyWorkflow', 'some input', id: 'my-id', task_queue: 'my-task-queue')
130
133
  worker_2.run { handle.result }
131
134
 
@@ -135,34 +138,34 @@ Signal.trap('USR1') { stop_queue.close }
135
138
  worker_3.run { stop_queue.pop }
136
139
  ```
137
140
 
138
- You can also shut down a running worker by calling `Temporal::Worker#shutdown` from a separate
141
+ You can also shut down a running worker by calling `Temporalio::Worker#shutdown` from a separate
139
142
  thread at any time.
140
143
 
141
144
  #### Running multiple workers
142
145
 
143
- In order to run multiple workers in the same thread you can use the `Temporal::Worker.run` method:
146
+ In order to run multiple workers in the same thread you can use the `Temporalio::Worker.run` method:
144
147
 
145
148
  ```ruby
146
149
  # Initialize workers
147
- worker_1 = Temporal::Worker.new(connection, 'my-namespace-1', 'my-task-queue-1', activities: [MyActivity1, MyActivity2])
148
- worker_2 = Temporal::Worker.new(connection, 'my-namespace-2', 'my-task-queue-1', activities: [MyActivity3])
149
- worker_3 = Temporal::Worker.new(connection, 'my-namespace-1', 'my-task-queue-2', activities: [MyActivity4])
150
+ worker_1 = Temporalio::Worker.new(connection, 'my-namespace-1', 'my-task-queue-1', activities: [MyActivity1, MyActivity2])
151
+ worker_2 = Temporalio::Worker.new(connection, 'my-namespace-2', 'my-task-queue-1', activities: [MyActivity3])
152
+ worker_3 = Temporalio::Worker.new(connection, 'my-namespace-1', 'my-task-queue-2', activities: [MyActivity4])
150
153
 
151
- Temporal::Worker.run(worker_1, worker_2, worker_3)
154
+ Temporalio::Worker.run(worker_1, worker_2, worker_3)
152
155
  ```
153
156
 
154
- Please note that similar to `Temporal::Worker#run`, `Temporal::Worker.run` accepts a block that
157
+ Please note that similar to `Temporalio::Worker#run`, `Temporalio::Worker.run` accepts a block that
155
158
  behaves the same way — the workers will be shut down when the block finishes.
156
159
 
157
160
  You can also configure your worker to listen on process signals to initiate a shutdown:
158
161
 
159
162
  ```ruby
160
- Temporal::Worker.run(worker_1, worker_2, worker_3, shutdown_signals: %w[INT TERM])
163
+ Temporalio::Worker.run(worker_1, worker_2, worker_3, shutdown_signals: %w[INT TERM])
161
164
  ```
162
165
 
163
166
  #### Worker Shutdown
164
167
 
165
- The `Temporal::Worker#run` (as well as `Temporal::Worker#shutdown`) invocation will wait on all
168
+ The `Temporalio::Worker#run` (as well as `Temporalio::Worker#shutdown`) invocation will wait on all
166
169
  activities to complete, so if a long-running activity does not at least respect cancellation, the
167
170
  shutdown may never complete.
168
171
 
@@ -175,10 +178,10 @@ Cancellation](#heartbeating-and-cancellation).
175
178
 
176
179
  #### Definition
177
180
 
178
- Activities are defined by subclassing `Temporal::Activity` class:
181
+ Activities are defined by subclassing `Temporalio::Activity` class:
179
182
 
180
183
  ```ruby
181
- class SayHelloActivity < Temporal::Activity
184
+ class SayHelloActivity < Temporalio::Activity
182
185
  # Optionally specify a custom activity name:
183
186
  # (The class name `SayHelloActivity` will be used by default)
184
187
  activity_name 'say-hello'
@@ -197,7 +200,7 @@ Some things to note about activity definitions:
197
200
 
198
201
  #### Activity Context
199
202
 
200
- Activity classes have access to `Temporal::Activity::Context` via the `activity` method. Which
203
+ Activity classes have access to `Temporalio::Activity::Context` via the `activity` method. Which
201
204
  itself provides access to useful methods, specifically:
202
205
 
203
206
  - `info` - Returns the immutable info of the currently running activity
@@ -217,12 +220,12 @@ persisted on the server for retrieval during activity retry. If an activity call
217
220
  return an array containing `123` and `456` on the next run.
218
221
 
219
222
  A cancellation is implemented using the `Thread#raise` method, which will raise a
220
- `Temporal::Error::ActivityCancelled` during the execution of an activity. This means that your code
223
+ `Temporalio::Error::ActivityCancelled` during the execution of an activity. This means that your code
221
224
  might get interrupted at any point and never complete. In order to protect critical parts of your
222
225
  activities wrap them in `activity.shield`:
223
226
 
224
227
  ```ruby
225
- class ActivityWithCriticalLogic < Temporal::Activity
228
+ class ActivityWithCriticalLogic < Temporalio::Activity
226
229
  def execute
227
230
  activity.shield do
228
231
  run_business_critical_logic_1
@@ -244,7 +247,7 @@ In case the entire activity is considered critical, you can mark it as `shielded
244
247
  cancellation requests altogether:
245
248
 
246
249
  ```ruby
247
- class CriticalActivity < Temporal::Activity
250
+ class CriticalActivity < Temporalio::Activity
248
251
  shielded!
249
252
 
250
253
  def execute
@@ -259,7 +262,6 @@ For any long-running activity using this approach it is recommended to periodica
259
262
  Please note that your activities can also get cancelled during a worker shutdown process ([if
260
263
  configured accordingly](#worker-shutdown)).
261
264
 
262
-
263
265
  ## Dev Setup
264
266
 
265
267
  Once you've forked/cloned the repository you want to make sure all the submodules are fetched as
data/bridge/Cargo.lock CHANGED
@@ -22,11 +22,11 @@ dependencies = [
22
22
 
23
23
  [[package]]
24
24
  name = "ahash"
25
- version = "0.7.6"
25
+ version = "0.8.3"
26
26
  source = "registry+https://github.com/rust-lang/crates.io-index"
27
- checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
27
+ checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
28
28
  dependencies = [
29
- "getrandom",
29
+ "cfg-if",
30
30
  "once_cell",
31
31
  "version_check",
32
32
  ]
@@ -52,17 +52,6 @@ version = "1.5.1"
52
52
  source = "registry+https://github.com/rust-lang/crates.io-index"
53
53
  checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164"
54
54
 
55
- [[package]]
56
- name = "async-channel"
57
- version = "1.7.1"
58
- source = "registry+https://github.com/rust-lang/crates.io-index"
59
- checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
60
- dependencies = [
61
- "concurrent-queue",
62
- "event-listener",
63
- "futures-core",
64
- ]
65
-
66
55
  [[package]]
67
56
  name = "async-stream"
68
57
  version = "0.3.3"
@@ -165,9 +154,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
165
154
 
166
155
  [[package]]
167
156
  name = "base64"
168
- version = "0.20.0"
157
+ version = "0.21.0"
169
158
  source = "registry+https://github.com/rust-lang/crates.io-index"
170
- checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
159
+ checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
171
160
 
172
161
  [[package]]
173
162
  name = "base64ct"
@@ -190,24 +179,6 @@ dependencies = [
190
179
  "generic-array",
191
180
  ]
192
181
 
193
- [[package]]
194
- name = "bridge"
195
- version = "0.0.1"
196
- dependencies = [
197
- "lazy_static",
198
- "prost",
199
- "rutie",
200
- "temporal-client",
201
- "temporal-sdk-core",
202
- "temporal-sdk-core-api",
203
- "temporal-sdk-core-protos",
204
- "thiserror",
205
- "tokio",
206
- "tokio-util",
207
- "tonic",
208
- "url",
209
- ]
210
-
211
182
  [[package]]
212
183
  name = "bumpalo"
213
184
  version = "3.11.1"
@@ -228,9 +199,9 @@ checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
228
199
 
229
200
  [[package]]
230
201
  name = "bzip2"
231
- version = "0.4.3"
202
+ version = "0.4.4"
232
203
  source = "registry+https://github.com/rust-lang/crates.io-index"
233
- checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0"
204
+ checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
234
205
  dependencies = [
235
206
  "bzip2-sys",
236
207
  "libc",
@@ -247,12 +218,6 @@ dependencies = [
247
218
  "pkg-config",
248
219
  ]
249
220
 
250
- [[package]]
251
- name = "cache-padded"
252
- version = "1.2.0"
253
- source = "registry+https://github.com/rust-lang/crates.io-index"
254
- checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
255
-
256
221
  [[package]]
257
222
  name = "cc"
258
223
  version = "1.0.76"
@@ -269,21 +234,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
269
234
  checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
270
235
 
271
236
  [[package]]
272
- name = "cipher"
273
- version = "0.3.0"
237
+ name = "chrono"
238
+ version = "0.4.23"
274
239
  source = "registry+https://github.com/rust-lang/crates.io-index"
275
- checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
240
+ checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
276
241
  dependencies = [
277
- "generic-array",
242
+ "num-integer",
243
+ "num-traits",
244
+ "serde",
278
245
  ]
279
246
 
280
247
  [[package]]
281
- name = "concurrent-queue"
282
- version = "1.2.4"
248
+ name = "cipher"
249
+ version = "0.3.0"
283
250
  source = "registry+https://github.com/rust-lang/crates.io-index"
284
- checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
251
+ checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
285
252
  dependencies = [
286
- "cache-padded",
253
+ "generic-array",
287
254
  ]
288
255
 
289
256
  [[package]]
@@ -409,6 +376,16 @@ dependencies = [
409
376
  "typenum",
410
377
  ]
411
378
 
379
+ [[package]]
380
+ name = "ctor"
381
+ version = "0.1.26"
382
+ source = "registry+https://github.com/rust-lang/crates.io-index"
383
+ checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
384
+ dependencies = [
385
+ "quote",
386
+ "syn",
387
+ ]
388
+
412
389
  [[package]]
413
390
  name = "darling"
414
391
  version = "0.14.2"
@@ -451,7 +428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
451
428
  checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
452
429
  dependencies = [
453
430
  "cfg-if",
454
- "hashbrown",
431
+ "hashbrown 0.12.3",
455
432
  "lock_api",
456
433
  "once_cell",
457
434
  "parking_lot_core",
@@ -552,10 +529,13 @@ dependencies = [
552
529
  ]
553
530
 
554
531
  [[package]]
555
- name = "event-listener"
556
- version = "2.5.3"
532
+ name = "erased-serde"
533
+ version = "0.3.24"
557
534
  source = "registry+https://github.com/rust-lang/crates.io-index"
558
- checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
535
+ checksum = "e4ca605381c017ec7a5fef5e548f1cfaa419ed0f6df6367339300db74c92aa7d"
536
+ dependencies = [
537
+ "serde",
538
+ ]
559
539
 
560
540
  [[package]]
561
541
  name = "fastrand"
@@ -751,6 +731,17 @@ dependencies = [
751
731
  "wasi 0.11.0+wasi-snapshot-preview1",
752
732
  ]
753
733
 
734
+ [[package]]
735
+ name = "ghost"
736
+ version = "0.1.7"
737
+ source = "registry+https://github.com/rust-lang/crates.io-index"
738
+ checksum = "41973d4c45f7a35af8753ba3457cc99d406d863941fd7f52663cff54a5ab99b3"
739
+ dependencies = [
740
+ "proc-macro2",
741
+ "quote",
742
+ "syn",
743
+ ]
744
+
754
745
  [[package]]
755
746
  name = "governor"
756
747
  version = "0.5.0"
@@ -793,6 +784,12 @@ name = "hashbrown"
793
784
  version = "0.12.3"
794
785
  source = "registry+https://github.com/rust-lang/crates.io-index"
795
786
  checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
787
+
788
+ [[package]]
789
+ name = "hashbrown"
790
+ version = "0.13.2"
791
+ source = "registry+https://github.com/rust-lang/crates.io-index"
792
+ checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
796
793
  dependencies = [
797
794
  "ahash",
798
795
  ]
@@ -933,7 +930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
933
930
  checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
934
931
  dependencies = [
935
932
  "autocfg",
936
- "hashbrown",
933
+ "hashbrown 0.12.3",
937
934
  ]
938
935
 
939
936
  [[package]]
@@ -945,6 +942,16 @@ dependencies = [
945
942
  "cfg-if",
946
943
  ]
947
944
 
945
+ [[package]]
946
+ name = "inventory"
947
+ version = "0.3.3"
948
+ source = "registry+https://github.com/rust-lang/crates.io-index"
949
+ checksum = "16fe3b35d64bd1f72917f06425e7573a2f63f74f42c8f56e53ea6826dde3a2b5"
950
+ dependencies = [
951
+ "ctor",
952
+ "ghost",
953
+ ]
954
+
948
955
  [[package]]
949
956
  name = "ipnet"
950
957
  version = "2.5.1"
@@ -1017,11 +1024,11 @@ dependencies = [
1017
1024
 
1018
1025
  [[package]]
1019
1026
  name = "lru"
1020
- version = "0.8.1"
1027
+ version = "0.9.0"
1021
1028
  source = "registry+https://github.com/rust-lang/crates.io-index"
1022
- checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909"
1029
+ checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17"
1023
1030
  dependencies = [
1024
- "hashbrown",
1031
+ "hashbrown 0.13.2",
1025
1032
  ]
1026
1033
 
1027
1034
  [[package]]
@@ -1174,6 +1181,16 @@ dependencies = [
1174
1181
  "winapi",
1175
1182
  ]
1176
1183
 
1184
+ [[package]]
1185
+ name = "num-integer"
1186
+ version = "0.1.45"
1187
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1188
+ checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
1189
+ dependencies = [
1190
+ "autocfg",
1191
+ "num-traits",
1192
+ ]
1193
+
1177
1194
  [[package]]
1178
1195
  name = "num-traits"
1179
1196
  version = "0.2.15"
@@ -1480,9 +1497,9 @@ dependencies = [
1480
1497
 
1481
1498
  [[package]]
1482
1499
  name = "prost"
1483
- version = "0.11.2"
1500
+ version = "0.11.6"
1484
1501
  source = "registry+https://github.com/rust-lang/crates.io-index"
1485
- checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a"
1502
+ checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698"
1486
1503
  dependencies = [
1487
1504
  "bytes",
1488
1505
  "prost-derive",
@@ -1490,9 +1507,9 @@ dependencies = [
1490
1507
 
1491
1508
  [[package]]
1492
1509
  name = "prost-build"
1493
- version = "0.11.2"
1510
+ version = "0.11.6"
1494
1511
  source = "registry+https://github.com/rust-lang/crates.io-index"
1495
- checksum = "1d8b442418ea0822409d9e7d047cbf1e7e9e1760b172bf9982cf29d517c93511"
1512
+ checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e"
1496
1513
  dependencies = [
1497
1514
  "bytes",
1498
1515
  "heck",
@@ -1512,9 +1529,9 @@ dependencies = [
1512
1529
 
1513
1530
  [[package]]
1514
1531
  name = "prost-derive"
1515
- version = "0.11.2"
1532
+ version = "0.11.6"
1516
1533
  source = "registry+https://github.com/rust-lang/crates.io-index"
1517
- checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306"
1534
+ checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d"
1518
1535
  dependencies = [
1519
1536
  "anyhow",
1520
1537
  "itertools",
@@ -1525,14 +1542,60 @@ dependencies = [
1525
1542
 
1526
1543
  [[package]]
1527
1544
  name = "prost-types"
1528
- version = "0.11.2"
1545
+ version = "0.11.6"
1529
1546
  source = "registry+https://github.com/rust-lang/crates.io-index"
1530
- checksum = "747761bc3dc48f9a34553bf65605cf6cb6288ba219f3450b4275dbd81539551a"
1547
+ checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788"
1531
1548
  dependencies = [
1532
1549
  "bytes",
1533
1550
  "prost",
1534
1551
  ]
1535
1552
 
1553
+ [[package]]
1554
+ name = "prost-wkt"
1555
+ version = "0.4.0"
1556
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1557
+ checksum = "81d27933a63f4fa7586c2eac76179e7a9b782a7165aa309028adbec626a33100"
1558
+ dependencies = [
1559
+ "chrono",
1560
+ "inventory",
1561
+ "prost",
1562
+ "serde",
1563
+ "serde_derive",
1564
+ "serde_json",
1565
+ "typetag",
1566
+ ]
1567
+
1568
+ [[package]]
1569
+ name = "prost-wkt-build"
1570
+ version = "0.4.0"
1571
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1572
+ checksum = "edf268948bef41c2f9bb879e8868c155412d28d6ba4295c5b8d6d6639e47f9cf"
1573
+ dependencies = [
1574
+ "heck",
1575
+ "prost",
1576
+ "prost-build",
1577
+ "prost-types",
1578
+ "quote",
1579
+ ]
1580
+
1581
+ [[package]]
1582
+ name = "prost-wkt-types"
1583
+ version = "0.4.0"
1584
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1585
+ checksum = "4e240034fe46986ab9f84d669ed9bd46ad0c6adb8777ef28f5c44b94b43a3743"
1586
+ dependencies = [
1587
+ "chrono",
1588
+ "prost",
1589
+ "prost-build",
1590
+ "prost-types",
1591
+ "prost-wkt",
1592
+ "prost-wkt-build",
1593
+ "regex",
1594
+ "serde",
1595
+ "serde_derive",
1596
+ "serde_json",
1597
+ ]
1598
+
1536
1599
  [[package]]
1537
1600
  name = "protobuf"
1538
1601
  version = "2.28.0"
@@ -2068,9 +2131,8 @@ version = "0.1.0"
2068
2131
  dependencies = [
2069
2132
  "anyhow",
2070
2133
  "arc-swap",
2071
- "async-channel",
2072
2134
  "async-trait",
2073
- "base64 0.20.0",
2135
+ "base64 0.21.0",
2074
2136
  "crossbeam",
2075
2137
  "dashmap",
2076
2138
  "derive_builder",
@@ -2084,7 +2146,6 @@ dependencies = [
2084
2146
  "hyper",
2085
2147
  "itertools",
2086
2148
  "lazy_static",
2087
- "log",
2088
2149
  "lru",
2089
2150
  "mockall",
2090
2151
  "nix",
@@ -2093,9 +2154,10 @@ dependencies = [
2093
2154
  "opentelemetry-otlp",
2094
2155
  "opentelemetry-prometheus",
2095
2156
  "parking_lot",
2157
+ "pin-project",
2096
2158
  "prometheus",
2097
2159
  "prost",
2098
- "prost-types",
2160
+ "prost-wkt-types",
2099
2161
  "rand",
2100
2162
  "reqwest",
2101
2163
  "ringbuf",
@@ -2129,12 +2191,13 @@ version = "0.1.0"
2129
2191
  dependencies = [
2130
2192
  "async-trait",
2131
2193
  "derive_builder",
2132
- "opentelemetry",
2133
2194
  "prost-types",
2195
+ "serde",
2134
2196
  "serde_json",
2135
2197
  "temporal-client",
2136
2198
  "temporal-sdk-core-protos",
2137
2199
  "thiserror",
2200
+ "tokio",
2138
2201
  "tonic",
2139
2202
  "tracing-core",
2140
2203
  "url",
@@ -2145,10 +2208,12 @@ name = "temporal-sdk-core-protos"
2145
2208
  version = "0.1.0"
2146
2209
  dependencies = [
2147
2210
  "anyhow",
2148
- "base64 0.20.0",
2211
+ "base64 0.21.0",
2149
2212
  "derive_more",
2150
2213
  "prost",
2151
- "prost-types",
2214
+ "prost-wkt",
2215
+ "prost-wkt-build",
2216
+ "prost-wkt-types",
2152
2217
  "rand",
2153
2218
  "serde",
2154
2219
  "serde_json",
@@ -2158,6 +2223,26 @@ dependencies = [
2158
2223
  "uuid",
2159
2224
  ]
2160
2225
 
2226
+ [[package]]
2227
+ name = "temporal-sdk-ruby-bridge"
2228
+ version = "0.1.1"
2229
+ dependencies = [
2230
+ "anyhow",
2231
+ "lazy_static",
2232
+ "parking_lot",
2233
+ "prost",
2234
+ "rutie",
2235
+ "temporal-client",
2236
+ "temporal-sdk-core",
2237
+ "temporal-sdk-core-api",
2238
+ "temporal-sdk-core-protos",
2239
+ "thiserror",
2240
+ "tokio",
2241
+ "tokio-util",
2242
+ "tonic",
2243
+ "url",
2244
+ ]
2245
+
2161
2246
  [[package]]
2162
2247
  name = "termtree"
2163
2248
  version = "0.4.0"
@@ -2237,9 +2322,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
2237
2322
 
2238
2323
  [[package]]
2239
2324
  name = "tokio"
2240
- version = "1.21.2"
2325
+ version = "1.25.0"
2241
2326
  source = "registry+https://github.com/rust-lang/crates.io-index"
2242
- checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
2327
+ checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
2243
2328
  dependencies = [
2244
2329
  "autocfg",
2245
2330
  "bytes",
@@ -2252,7 +2337,7 @@ dependencies = [
2252
2337
  "signal-hook-registry",
2253
2338
  "socket2",
2254
2339
  "tokio-macros",
2255
- "winapi",
2340
+ "windows-sys 0.42.0",
2256
2341
  ]
2257
2342
 
2258
2343
  [[package]]
@@ -2511,6 +2596,30 @@ version = "1.15.0"
2511
2596
  source = "registry+https://github.com/rust-lang/crates.io-index"
2512
2597
  checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
2513
2598
 
2599
+ [[package]]
2600
+ name = "typetag"
2601
+ version = "0.2.5"
2602
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2603
+ checksum = "8eecd98403ae5ea2813689125cf5b3f99c40b8abed46c0a8945c81eadb673b31"
2604
+ dependencies = [
2605
+ "erased-serde",
2606
+ "inventory",
2607
+ "once_cell",
2608
+ "serde",
2609
+ "typetag-impl",
2610
+ ]
2611
+
2612
+ [[package]]
2613
+ name = "typetag-impl"
2614
+ version = "0.2.5"
2615
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2616
+ checksum = "8f9568611f0de5e83e0993b85c54679cd0afd659adcfcb0233f16280b980492e"
2617
+ dependencies = [
2618
+ "proc-macro2",
2619
+ "quote",
2620
+ "syn",
2621
+ ]
2622
+
2514
2623
  [[package]]
2515
2624
  name = "unicode-bidi"
2516
2625
  version = "0.3.8"
data/bridge/Cargo.toml CHANGED
@@ -1,12 +1,14 @@
1
1
  [package]
2
- name = "bridge"
3
- version = "0.0.1"
2
+ name = "temporal-sdk-ruby-bridge"
3
+ version = "0.1.1"
4
4
  authors = ["Anthony D <anthony@temporal.io>"]
5
5
  edition = "2021"
6
6
  repository = "https://github.com/temporalio/sdk-ruby"
7
7
 
8
8
  [dependencies]
9
+ anyhow = "1.0"
9
10
  lazy_static = "1.4.0"
11
+ parking_lot = { version = "0.12", features = ["send_guard"] }
10
12
  prost = "0.11"
11
13
  rutie = { version = "0.8.4", features = ["no-link"] }
12
14
  temporal-client = { version = "0.1.0", path = "./sdk-core/client" }
@@ -14,13 +16,13 @@ temporal-sdk-core = { version = "0.1.0", path = "./sdk-core/core" }
14
16
  temporal-sdk-core-api = { version = "0.1.0", path = "./sdk-core/core-api" }
15
17
  temporal-sdk-core-protos = { version = "0.1.0", path = "./sdk-core/sdk-core-protos" }
16
18
  thiserror = "1.0.31"
17
- tokio = "1.15"
19
+ tokio = "1.23"
18
20
  tokio-util = "0.7.4"
19
21
  tonic = "0.8"
20
22
  url = "2.2"
21
23
 
22
24
  [lib]
23
- name = "bridge"
25
+ name = "temporal_sdk_ruby_bridge"
24
26
  crate-type = ["dylib"]
25
27
 
26
28
  [package.metadata.thermite]