temporalio 0.0.2 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -23
- data/bridge/Cargo.lock +185 -76
- data/bridge/Cargo.toml +6 -4
- data/bridge/sdk-core/README.md +19 -6
- data/bridge/sdk-core/client/src/lib.rs +215 -39
- data/bridge/sdk-core/client/src/metrics.rs +17 -8
- data/bridge/sdk-core/client/src/raw.rs +4 -4
- data/bridge/sdk-core/client/src/retry.rs +32 -20
- data/bridge/sdk-core/core/Cargo.toml +22 -9
- data/bridge/sdk-core/core/src/abstractions.rs +203 -14
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +76 -41
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +204 -83
- data/bridge/sdk-core/core/src/core_tests/queries.rs +3 -4
- data/bridge/sdk-core/core/src/core_tests/workers.rs +1 -3
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +397 -54
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
- data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
- data/bridge/sdk-core/core/src/lib.rs +16 -9
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +1 -1
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +69 -35
- data/bridge/sdk-core/core/src/telemetry/mod.rs +29 -13
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +17 -12
- data/bridge/sdk-core/core/src/test_help/mod.rs +62 -12
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +352 -122
- data/bridge/sdk-core/core/src/worker/activities.rs +233 -157
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +22 -2
- data/bridge/sdk-core/core/src/worker/client.rs +18 -2
- data/bridge/sdk-core/core/src/worker/mod.rs +165 -58
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +856 -277
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +100 -43
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +7 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +87 -27
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +137 -62
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +25 -17
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +7 -6
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +103 -152
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +7 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +5 -16
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +201 -121
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +11 -14
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +30 -15
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1026 -376
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +460 -384
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +448 -718
- data/bridge/sdk-core/core-api/Cargo.toml +2 -1
- data/bridge/sdk-core/core-api/src/errors.rs +1 -34
- data/bridge/sdk-core/core-api/src/lib.rs +6 -2
- data/bridge/sdk-core/core-api/src/telemetry.rs +0 -6
- data/bridge/sdk-core/core-api/src/worker.rs +14 -1
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +5 -17
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +11 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +1 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +6 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +5 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +22 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +48 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +3 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/{enums/v1/interaction_type.proto → protocol/v1/message.proto} +29 -11
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +111 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +59 -28
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +7 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
- data/bridge/sdk-core/sdk/Cargo.toml +3 -2
- data/bridge/sdk-core/sdk/src/lib.rs +87 -20
- data/bridge/sdk-core/sdk/src/workflow_future.rs +9 -8
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- data/bridge/sdk-core/sdk-core-protos/build.rs +36 -1
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +100 -87
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +5 -1
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +175 -57
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- data/bridge/sdk-core/test-utils/Cargo.toml +3 -1
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
- data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
- data/bridge/sdk-core/test-utils/src/lib.rs +82 -23
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
- data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -3
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +72 -191
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +10 -11
- data/bridge/sdk-core/tests/main.rs +3 -13
- data/bridge/sdk-core/tests/runner.rs +75 -36
- data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
- data/bridge/src/connection.rs +41 -25
- data/bridge/src/lib.rs +269 -14
- data/bridge/src/runtime.rs +1 -1
- data/bridge/src/test_server.rs +153 -0
- data/bridge/src/worker.rs +89 -16
- data/lib/gen/temporal/api/command/v1/message_pb.rb +4 -18
- data/lib/gen/temporal/api/common/v1/message_pb.rb +4 -0
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +1 -3
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -3
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +2 -0
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +6 -4
- data/lib/gen/temporal/api/history/v1/message_pb.rb +27 -19
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -0
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +3 -0
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
- data/lib/gen/temporal/api/update/v1/message_pb.rb +72 -0
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +26 -16
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +27 -21
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +28 -24
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
- data/lib/temporalio/activity/context.rb +13 -8
- data/lib/temporalio/activity/info.rb +1 -1
- data/lib/temporalio/bridge/connect_options.rb +15 -0
- data/lib/temporalio/bridge/retry_config.rb +24 -0
- data/lib/temporalio/bridge/tls_options.rb +19 -0
- data/lib/temporalio/bridge.rb +1 -1
- data/lib/temporalio/client/implementation.rb +8 -8
- data/lib/temporalio/connection/retry_config.rb +44 -0
- data/lib/temporalio/connection/service.rb +20 -0
- data/lib/temporalio/connection/test_service.rb +92 -0
- data/lib/temporalio/connection/tls_options.rb +51 -0
- data/lib/temporalio/connection/workflow_service.rb +731 -0
- data/lib/temporalio/connection.rb +55 -720
- data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
- data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
- data/lib/temporalio/interceptor/chain.rb +5 -5
- data/lib/temporalio/interceptor/client.rb +8 -4
- data/lib/temporalio/interceptor.rb +22 -0
- data/lib/temporalio/retry_policy.rb +13 -3
- data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
- data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
- data/lib/temporalio/testing/workflow_environment.rb +112 -0
- data/lib/temporalio/testing.rb +175 -0
- data/lib/temporalio/version.rb +1 -1
- data/lib/temporalio/worker/activity_runner.rb +26 -4
- data/lib/temporalio/worker/activity_worker.rb +44 -18
- data/lib/temporalio/worker/sync_worker.rb +47 -11
- data/lib/temporalio/worker.rb +27 -21
- data/lib/temporalio/workflow/async.rb +46 -0
- data/lib/temporalio/workflow/future.rb +138 -0
- data/lib/temporalio/workflow/info.rb +76 -0
- data/lib/thermite_patch.rb +10 -0
- data/sig/async.rbs +17 -0
- data/sig/protobuf.rbs +16 -0
- data/sig/protos/dependencies/gogoproto/gogo.rbs +914 -0
- data/sig/protos/google/protobuf/any.rbs +157 -0
- data/sig/protos/google/protobuf/descriptor.rbs +2825 -0
- data/sig/protos/google/protobuf/duration.rbs +114 -0
- data/sig/protos/google/protobuf/empty.rbs +36 -0
- data/sig/protos/google/protobuf/timestamp.rbs +145 -0
- data/sig/protos/google/protobuf/wrappers.rbs +358 -0
- data/sig/protos/temporal/api/batch/v1/message.rbs +300 -0
- data/sig/protos/temporal/api/command/v1/message.rbs +1399 -0
- data/sig/protos/temporal/api/common/v1/message.rbs +528 -0
- data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +79 -0
- data/sig/protos/temporal/api/enums/v1/command_type.rbs +68 -0
- data/sig/protos/temporal/api/enums/v1/common.rbs +118 -0
- data/sig/protos/temporal/api/enums/v1/event_type.rbs +264 -0
- data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +277 -0
- data/sig/protos/temporal/api/enums/v1/namespace.rbs +108 -0
- data/sig/protos/temporal/api/enums/v1/query.rbs +81 -0
- data/sig/protos/temporal/api/enums/v1/reset.rbs +44 -0
- data/sig/protos/temporal/api/enums/v1/schedule.rbs +72 -0
- data/sig/protos/temporal/api/enums/v1/task_queue.rbs +92 -0
- data/sig/protos/temporal/api/enums/v1/update.rbs +64 -0
- data/sig/protos/temporal/api/enums/v1/workflow.rbs +371 -0
- data/sig/protos/temporal/api/errordetails/v1/message.rbs +551 -0
- data/sig/protos/temporal/api/failure/v1/message.rbs +581 -0
- data/sig/protos/temporal/api/filter/v1/message.rbs +171 -0
- data/sig/protos/temporal/api/history/v1/message.rbs +4609 -0
- data/sig/protos/temporal/api/namespace/v1/message.rbs +410 -0
- data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +643 -0
- data/sig/protos/temporal/api/operatorservice/v1/service.rbs +17 -0
- data/sig/protos/temporal/api/protocol/v1/message.rbs +84 -0
- data/sig/protos/temporal/api/query/v1/message.rbs +182 -0
- data/sig/protos/temporal/api/replication/v1/message.rbs +148 -0
- data/sig/protos/temporal/api/schedule/v1/message.rbs +1488 -0
- data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +110 -0
- data/sig/protos/temporal/api/taskqueue/v1/message.rbs +486 -0
- data/sig/protos/temporal/api/testservice/v1/request_response.rbs +249 -0
- data/sig/protos/temporal/api/testservice/v1/service.rbs +15 -0
- data/sig/protos/temporal/api/update/v1/message.rbs +489 -0
- data/sig/protos/temporal/api/version/v1/message.rbs +184 -0
- data/sig/protos/temporal/api/workflow/v1/message.rbs +824 -0
- data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +7250 -0
- data/sig/protos/temporal/api/workflowservice/v1/service.rbs +22 -0
- data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +380 -0
- data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +386 -0
- data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +323 -0
- data/sig/protos/temporal/sdk/core/common/common.rbs +62 -0
- data/sig/protos/temporal/sdk/core/core_interface.rbs +101 -0
- data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +119 -0
- data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +1473 -0
- data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +1784 -0
- data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +180 -0
- data/sig/ruby.rbs +12 -0
- data/sig/temporalio/activity/context.rbs +29 -0
- data/sig/temporalio/activity/info.rbs +43 -0
- data/sig/temporalio/activity.rbs +19 -0
- data/sig/temporalio/bridge/connect_options.rbs +19 -0
- data/sig/temporalio/bridge/error.rbs +8 -0
- data/sig/temporalio/bridge/retry_config.rbs +21 -0
- data/sig/temporalio/bridge/tls_options.rbs +17 -0
- data/sig/temporalio/bridge.rbs +71 -0
- data/sig/temporalio/client/implementation.rbs +38 -0
- data/sig/temporalio/client/workflow_handle.rbs +41 -0
- data/sig/temporalio/client.rbs +35 -0
- data/sig/temporalio/connection/retry_config.rbs +37 -0
- data/sig/temporalio/connection/service.rbs +14 -0
- data/sig/temporalio/connection/test_service.rbs +13 -0
- data/sig/temporalio/connection/tls_options.rbs +43 -0
- data/sig/temporalio/connection/workflow_service.rbs +48 -0
- data/sig/temporalio/connection.rbs +30 -0
- data/sig/temporalio/data_converter.rbs +35 -0
- data/sig/temporalio/error/failure.rbs +121 -0
- data/sig/temporalio/error/workflow_failure.rbs +9 -0
- data/sig/temporalio/errors.rbs +36 -0
- data/sig/temporalio/failure_converter/base.rbs +12 -0
- data/sig/temporalio/failure_converter/basic.rbs +86 -0
- data/sig/temporalio/failure_converter.rbs +5 -0
- data/sig/temporalio/interceptor/activity_inbound.rbs +21 -0
- data/sig/temporalio/interceptor/activity_outbound.rbs +10 -0
- data/sig/temporalio/interceptor/chain.rbs +24 -0
- data/sig/temporalio/interceptor/client.rbs +148 -0
- data/sig/temporalio/interceptor.rbs +6 -0
- data/sig/temporalio/payload_codec/base.rbs +12 -0
- data/sig/temporalio/payload_converter/base.rbs +12 -0
- data/sig/temporalio/payload_converter/bytes.rbs +9 -0
- data/sig/temporalio/payload_converter/composite.rbs +19 -0
- data/sig/temporalio/payload_converter/encoding_base.rbs +14 -0
- data/sig/temporalio/payload_converter/json.rbs +9 -0
- data/sig/temporalio/payload_converter/nil.rbs +9 -0
- data/sig/temporalio/payload_converter.rbs +5 -0
- data/sig/temporalio/retry_policy.rbs +25 -0
- data/sig/temporalio/retry_state.rbs +20 -0
- data/sig/temporalio/runtime.rbs +12 -0
- data/sig/temporalio/testing/time_skipping_handle.rbs +15 -0
- data/sig/temporalio/testing/time_skipping_interceptor.rbs +13 -0
- data/sig/temporalio/testing/workflow_environment.rbs +22 -0
- data/sig/temporalio/testing.rbs +35 -0
- data/sig/temporalio/timeout_type.rbs +15 -0
- data/sig/temporalio/version.rbs +3 -0
- data/sig/temporalio/worker/activity_runner.rbs +35 -0
- data/sig/temporalio/worker/activity_worker.rbs +44 -0
- data/sig/temporalio/worker/reactor.rbs +22 -0
- data/sig/temporalio/worker/runner.rbs +21 -0
- data/sig/temporalio/worker/sync_worker.rbs +23 -0
- data/sig/temporalio/worker/thread_pool_executor.rbs +23 -0
- data/sig/temporalio/worker.rbs +46 -0
- data/sig/temporalio/workflow/async.rbs +9 -0
- data/sig/temporalio/workflow/execution_info.rbs +55 -0
- data/sig/temporalio/workflow/execution_status.rbs +21 -0
- data/sig/temporalio/workflow/future.rbs +40 -0
- data/sig/temporalio/workflow/id_reuse_policy.rbs +15 -0
- data/sig/temporalio/workflow/info.rbs +55 -0
- data/sig/temporalio/workflow/query_reject_condition.rbs +14 -0
- data/sig/temporalio.rbs +2 -0
- data/sig/thermite_patch.rbs +15 -0
- data/temporalio.gemspec +6 -4
- metadata +183 -17
- data/bridge/sdk-core/Cargo.lock +0 -2606
- data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +0 -87
- data/lib/bridge.so +0 -0
- data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +0 -25
- data/lib/gen/temporal/api/interaction/v1/message_pb.rb +0 -49
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b66a076a009147a66ed59c5220287ce676fc556f7ebcbf133cd326a36cdde98
|
4
|
+
data.tar.gz: 36f9c733d6d07e92e3afafe14a3d96141d5cfd3b539cb67232eb0e1df7674d82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 '
|
104
|
+
require 'temporalio'
|
102
105
|
|
103
106
|
# Establish a gRPC connection to the server
|
104
|
-
connection =
|
107
|
+
connection = Temporalio::Connection.new('localhost:7233')
|
105
108
|
|
106
109
|
# Initialize a new worker with your activities
|
107
|
-
worker =
|
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 =
|
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 `
|
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 `
|
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 =
|
148
|
-
worker_2 =
|
149
|
-
worker_3 =
|
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
|
-
|
154
|
+
Temporalio::Worker.run(worker_1, worker_2, worker_3)
|
152
155
|
```
|
153
156
|
|
154
|
-
Please note that similar to `
|
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
|
-
|
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 `
|
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 `
|
181
|
+
Activities are defined by subclassing `Temporalio::Activity` class:
|
179
182
|
|
180
183
|
```ruby
|
181
|
-
class SayHelloActivity <
|
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 `
|
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
|
-
`
|
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 <
|
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 <
|
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.
|
25
|
+
version = "0.8.3"
|
26
26
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
27
|
-
checksum = "
|
27
|
+
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
|
28
28
|
dependencies = [
|
29
|
-
"
|
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.
|
157
|
+
version = "0.21.0"
|
169
158
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
170
|
-
checksum = "
|
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.
|
202
|
+
version = "0.4.4"
|
232
203
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
233
|
-
checksum = "
|
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 = "
|
273
|
-
version = "0.
|
237
|
+
name = "chrono"
|
238
|
+
version = "0.4.23"
|
274
239
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
275
|
-
checksum = "
|
240
|
+
checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
|
276
241
|
dependencies = [
|
277
|
-
"
|
242
|
+
"num-integer",
|
243
|
+
"num-traits",
|
244
|
+
"serde",
|
278
245
|
]
|
279
246
|
|
280
247
|
[[package]]
|
281
|
-
name = "
|
282
|
-
version = "
|
248
|
+
name = "cipher"
|
249
|
+
version = "0.3.0"
|
283
250
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
284
|
-
checksum = "
|
251
|
+
checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
|
285
252
|
dependencies = [
|
286
|
-
"
|
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 = "
|
556
|
-
version = "
|
532
|
+
name = "erased-serde"
|
533
|
+
version = "0.3.24"
|
557
534
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
558
|
-
checksum = "
|
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.
|
1027
|
+
version = "0.9.0"
|
1021
1028
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1022
|
-
checksum = "
|
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.
|
1500
|
+
version = "0.11.6"
|
1484
1501
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1485
|
-
checksum = "
|
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.
|
1510
|
+
version = "0.11.6"
|
1494
1511
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1495
|
-
checksum = "
|
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.
|
1532
|
+
version = "0.11.6"
|
1516
1533
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1517
|
-
checksum = "
|
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.
|
1545
|
+
version = "0.11.6"
|
1529
1546
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1530
|
-
checksum = "
|
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.
|
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.
|
2211
|
+
"base64 0.21.0",
|
2149
2212
|
"derive_more",
|
2150
2213
|
"prost",
|
2151
|
-
"prost-
|
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.
|
2325
|
+
version = "1.25.0"
|
2241
2326
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2242
|
-
checksum = "
|
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
|
-
"
|
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.
|
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.
|
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 = "
|
25
|
+
name = "temporal_sdk_ruby_bridge"
|
24
26
|
crate-type = ["dylib"]
|
25
27
|
|
26
28
|
[package.metadata.thermite]
|