temporalio 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +180 -7
- data/bridge/Cargo.lock +208 -76
- data/bridge/Cargo.toml +5 -2
- data/bridge/sdk-core/Cargo.toml +1 -1
- data/bridge/sdk-core/README.md +20 -10
- data/bridge/sdk-core/client/Cargo.toml +1 -1
- data/bridge/sdk-core/client/src/lib.rs +227 -59
- data/bridge/sdk-core/client/src/metrics.rs +17 -8
- data/bridge/sdk-core/client/src/raw.rs +13 -12
- data/bridge/sdk-core/client/src/retry.rs +132 -43
- data/bridge/sdk-core/core/Cargo.toml +28 -15
- data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
- data/bridge/sdk-core/core/src/abstractions.rs +225 -36
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +217 -79
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +565 -34
- data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -90
- data/bridge/sdk-core/core/src/core_tests/workers.rs +3 -5
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +430 -67
- 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 +148 -34
- data/bridge/sdk-core/core/src/protosext/mod.rs +1 -1
- data/bridge/sdk-core/core/src/replay/mod.rs +185 -41
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +219 -140
- data/bridge/sdk-core/core/src/telemetry/mod.rs +326 -315
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +20 -14
- data/bridge/sdk-core/core/src/test_help/mod.rs +85 -21
- 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 +364 -128
- data/bridge/sdk-core/core/src/worker/activities.rs +263 -170
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +23 -3
- data/bridge/sdk-core/core/src/worker/client.rs +48 -6
- data/bridge/sdk-core/core/src/worker/mod.rs +186 -75
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +13 -24
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +879 -226
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +101 -48
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +90 -32
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -10
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +160 -83
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +36 -54
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +179 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +104 -157
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -13
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +10 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -11
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +395 -299
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +12 -20
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +33 -18
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1032 -374
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +525 -392
- 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 +3 -6
- 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 +456 -681
- data/bridge/sdk-core/core-api/Cargo.toml +6 -4
- data/bridge/sdk-core/core-api/src/errors.rs +1 -34
- data/bridge/sdk-core/core-api/src/lib.rs +7 -45
- data/bridge/sdk-core/core-api/src/telemetry.rs +141 -0
- data/bridge/sdk-core/core-api/src/worker.rs +27 -1
- data/bridge/sdk-core/etc/deps.svg +115 -140
- data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- 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/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -3
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
- data/bridge/sdk-core/protos/api_upstream/{temporal/api/enums/v1/cluster.proto → build/tools.go} +7 -18
- data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +12 -9
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +15 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +4 -9
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +10 -8
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +28 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +62 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +24 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -21
- data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +110 -31
- 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/taskqueue/v1/message.proto +4 -4
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +111 -36
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +19 -5
- 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 +9 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +9 -1
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
- data/bridge/sdk-core/sdk/Cargo.toml +4 -3
- data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
- data/bridge/sdk-core/sdk/src/lib.rs +94 -25
- data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
- data/bridge/sdk-core/sdk/src/workflow_future.rs +10 -13
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- data/bridge/sdk-core/sdk-core-protos/build.rs +36 -2
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +164 -104
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +27 -23
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +252 -74
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- data/bridge/sdk-core/test-utils/Cargo.toml +4 -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 +161 -50
- 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 +10 -5
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +239 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -60
- 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 +151 -116
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +54 -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 +115 -24
- 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 +27 -18
- data/bridge/sdk-core/tests/main.rs +8 -16
- 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 +117 -82
- data/bridge/src/lib.rs +356 -42
- data/bridge/src/runtime.rs +10 -3
- data/bridge/src/test_server.rs +153 -0
- data/bridge/src/worker.rs +133 -9
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
- data/lib/gen/temporal/api/command/v1/message_pb.rb +10 -16
- data/lib/gen/temporal/api/common/v1/message_pb.rb +5 -1
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +3 -3
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +5 -4
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +9 -1
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +7 -10
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +1 -1
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/history/v1/message_pb.rb +34 -25
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +14 -51
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
- data/lib/gen/temporal/api/query/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +22 -1
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
- 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 +49 -3
- data/lib/gen/temporal/api/version/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +47 -20
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
- 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 +28 -21
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +32 -24
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
- data/lib/temporalio/activity/context.rb +102 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/connect_options.rb +15 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge/retry_config.rb +24 -0
- data/lib/temporalio/bridge/tls_options.rb +19 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/{temporal → temporalio}/client/implementation.rb +57 -56
- data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
- data/lib/{temporal → temporalio}/client.rb +19 -32
- 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 +86 -0
- data/lib/{temporal → temporalio}/data_converter.rb +76 -35
- data/lib/{temporal → temporalio}/error/failure.rb +6 -6
- data/lib/{temporal → temporalio}/error/workflow_failure.rb +4 -2
- data/lib/{temporal → temporalio}/errors.rb +19 -1
- data/lib/{temporal → temporalio}/failure_converter/base.rb +5 -5
- data/lib/{temporal → temporalio}/failure_converter/basic.rb +58 -52
- data/lib/temporalio/failure_converter.rb +7 -0
- data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
- data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
- data/lib/{temporal → temporalio}/interceptor/chain.rb +7 -6
- data/lib/{temporal → temporalio}/interceptor/client.rb +27 -2
- data/lib/temporalio/interceptor.rb +22 -0
- data/lib/{temporal → temporalio}/payload_codec/base.rb +5 -5
- data/lib/{temporal → temporalio}/payload_converter/base.rb +3 -3
- data/lib/{temporal → temporalio}/payload_converter/bytes.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/composite.rb +7 -5
- data/lib/{temporal → temporalio}/payload_converter/encoding_base.rb +4 -4
- data/lib/{temporal → temporalio}/payload_converter/json.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/nil.rb +4 -3
- data/lib/temporalio/payload_converter.rb +14 -0
- data/lib/{temporal → temporalio}/retry_policy.rb +17 -7
- data/lib/{temporal → temporalio}/retry_state.rb +1 -1
- data/lib/temporalio/runtime.rb +25 -0
- 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/{temporal → temporalio}/timeout_type.rb +2 -2
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +114 -0
- data/lib/temporalio/worker/activity_worker.rb +164 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +124 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +204 -0
- data/lib/temporalio/workflow/async.rb +46 -0
- data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
- data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
- data/lib/temporalio/workflow/future.rb +138 -0
- data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
- data/lib/temporalio/workflow/info.rb +76 -0
- data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
- data/lib/temporalio.rb +12 -3
- data/temporalio.gemspec +11 -6
- metadata +137 -64
- data/bridge/sdk-core/Cargo.lock +0 -2606
- data/bridge/sdk-core/bridge-ffi/Cargo.toml +0 -24
- data/bridge/sdk-core/bridge-ffi/LICENSE.txt +0 -23
- data/bridge/sdk-core/bridge-ffi/build.rs +0 -25
- data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -249
- data/bridge/sdk-core/bridge-ffi/src/lib.rs +0 -825
- data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +0 -211
- data/bridge/sdk-core/core/src/log_export.rs +0 -62
- data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +0 -127
- data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +0 -71
- data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +0 -83
- data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
- data/bridge/sdk-core/sdk/src/conversions.rs +0 -8
- data/lib/bridge.so +0 -0
- data/lib/gen/temporal/api/cluster/v1/message_pb.rb +0 -67
- data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +0 -26
- data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
- data/lib/temporal/bridge.rb +0 -14
- data/lib/temporal/connection.rb +0 -736
- data/lib/temporal/failure_converter.rb +0 -8
- data/lib/temporal/payload_converter.rb +0 -14
- data/lib/temporal/runtime.rb +0 -22
- data/lib/temporal/version.rb +0 -3
- data/lib/temporal.rb +0 -8
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"
|
@@ -163,6 +152,12 @@ version = "0.13.1"
|
|
163
152
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
164
153
|
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
165
154
|
|
155
|
+
[[package]]
|
156
|
+
name = "base64"
|
157
|
+
version = "0.21.0"
|
158
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
159
|
+
checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
|
160
|
+
|
166
161
|
[[package]]
|
167
162
|
name = "base64ct"
|
168
163
|
version = "1.5.3"
|
@@ -186,9 +181,11 @@ dependencies = [
|
|
186
181
|
|
187
182
|
[[package]]
|
188
183
|
name = "bridge"
|
189
|
-
version = "0.0
|
184
|
+
version = "0.1.0"
|
190
185
|
dependencies = [
|
186
|
+
"anyhow",
|
191
187
|
"lazy_static",
|
188
|
+
"parking_lot",
|
192
189
|
"prost",
|
193
190
|
"rutie",
|
194
191
|
"temporal-client",
|
@@ -197,6 +194,7 @@ dependencies = [
|
|
197
194
|
"temporal-sdk-core-protos",
|
198
195
|
"thiserror",
|
199
196
|
"tokio",
|
197
|
+
"tokio-util",
|
200
198
|
"tonic",
|
201
199
|
"url",
|
202
200
|
]
|
@@ -221,9 +219,9 @@ checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
|
|
221
219
|
|
222
220
|
[[package]]
|
223
221
|
name = "bzip2"
|
224
|
-
version = "0.4.
|
222
|
+
version = "0.4.4"
|
225
223
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
226
|
-
checksum = "
|
224
|
+
checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
|
227
225
|
dependencies = [
|
228
226
|
"bzip2-sys",
|
229
227
|
"libc",
|
@@ -240,12 +238,6 @@ dependencies = [
|
|
240
238
|
"pkg-config",
|
241
239
|
]
|
242
240
|
|
243
|
-
[[package]]
|
244
|
-
name = "cache-padded"
|
245
|
-
version = "1.2.0"
|
246
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
247
|
-
checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
|
248
|
-
|
249
241
|
[[package]]
|
250
242
|
name = "cc"
|
251
243
|
version = "1.0.76"
|
@@ -262,21 +254,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
262
254
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
263
255
|
|
264
256
|
[[package]]
|
265
|
-
name = "
|
266
|
-
version = "0.
|
257
|
+
name = "chrono"
|
258
|
+
version = "0.4.23"
|
267
259
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
268
|
-
checksum = "
|
260
|
+
checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
|
269
261
|
dependencies = [
|
270
|
-
"
|
262
|
+
"num-integer",
|
263
|
+
"num-traits",
|
264
|
+
"serde",
|
271
265
|
]
|
272
266
|
|
273
267
|
[[package]]
|
274
|
-
name = "
|
275
|
-
version = "
|
268
|
+
name = "cipher"
|
269
|
+
version = "0.3.0"
|
276
270
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
277
|
-
checksum = "
|
271
|
+
checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
|
278
272
|
dependencies = [
|
279
|
-
"
|
273
|
+
"generic-array",
|
280
274
|
]
|
281
275
|
|
282
276
|
[[package]]
|
@@ -369,7 +363,7 @@ dependencies = [
|
|
369
363
|
"autocfg",
|
370
364
|
"cfg-if",
|
371
365
|
"crossbeam-utils",
|
372
|
-
"memoffset",
|
366
|
+
"memoffset 0.6.5",
|
373
367
|
"scopeguard",
|
374
368
|
]
|
375
369
|
|
@@ -402,6 +396,16 @@ dependencies = [
|
|
402
396
|
"typenum",
|
403
397
|
]
|
404
398
|
|
399
|
+
[[package]]
|
400
|
+
name = "ctor"
|
401
|
+
version = "0.1.26"
|
402
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
403
|
+
checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
|
404
|
+
dependencies = [
|
405
|
+
"quote",
|
406
|
+
"syn",
|
407
|
+
]
|
408
|
+
|
405
409
|
[[package]]
|
406
410
|
name = "darling"
|
407
411
|
version = "0.14.2"
|
@@ -444,7 +448,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
444
448
|
checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
|
445
449
|
dependencies = [
|
446
450
|
"cfg-if",
|
447
|
-
"hashbrown",
|
451
|
+
"hashbrown 0.12.3",
|
448
452
|
"lock_api",
|
449
453
|
"once_cell",
|
450
454
|
"parking_lot_core",
|
@@ -452,18 +456,18 @@ dependencies = [
|
|
452
456
|
|
453
457
|
[[package]]
|
454
458
|
name = "derive_builder"
|
455
|
-
version = "0.
|
459
|
+
version = "0.12.0"
|
456
460
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
457
|
-
checksum = "
|
461
|
+
checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
|
458
462
|
dependencies = [
|
459
463
|
"derive_builder_macro",
|
460
464
|
]
|
461
465
|
|
462
466
|
[[package]]
|
463
467
|
name = "derive_builder_core"
|
464
|
-
version = "0.
|
468
|
+
version = "0.12.0"
|
465
469
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
466
|
-
checksum = "
|
470
|
+
checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
|
467
471
|
dependencies = [
|
468
472
|
"darling",
|
469
473
|
"proc-macro2",
|
@@ -473,9 +477,9 @@ dependencies = [
|
|
473
477
|
|
474
478
|
[[package]]
|
475
479
|
name = "derive_builder_macro"
|
476
|
-
version = "0.
|
480
|
+
version = "0.12.0"
|
477
481
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
478
|
-
checksum = "
|
482
|
+
checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
|
479
483
|
dependencies = [
|
480
484
|
"derive_builder_core",
|
481
485
|
"syn",
|
@@ -545,10 +549,13 @@ dependencies = [
|
|
545
549
|
]
|
546
550
|
|
547
551
|
[[package]]
|
548
|
-
name = "
|
549
|
-
version = "
|
552
|
+
name = "erased-serde"
|
553
|
+
version = "0.3.24"
|
550
554
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
551
|
-
checksum = "
|
555
|
+
checksum = "e4ca605381c017ec7a5fef5e548f1cfaa419ed0f6df6367339300db74c92aa7d"
|
556
|
+
dependencies = [
|
557
|
+
"serde",
|
558
|
+
]
|
552
559
|
|
553
560
|
[[package]]
|
554
561
|
name = "fastrand"
|
@@ -744,6 +751,17 @@ dependencies = [
|
|
744
751
|
"wasi 0.11.0+wasi-snapshot-preview1",
|
745
752
|
]
|
746
753
|
|
754
|
+
[[package]]
|
755
|
+
name = "ghost"
|
756
|
+
version = "0.1.7"
|
757
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
758
|
+
checksum = "41973d4c45f7a35af8753ba3457cc99d406d863941fd7f52663cff54a5ab99b3"
|
759
|
+
dependencies = [
|
760
|
+
"proc-macro2",
|
761
|
+
"quote",
|
762
|
+
"syn",
|
763
|
+
]
|
764
|
+
|
747
765
|
[[package]]
|
748
766
|
name = "governor"
|
749
767
|
version = "0.5.0"
|
@@ -786,6 +804,12 @@ name = "hashbrown"
|
|
786
804
|
version = "0.12.3"
|
787
805
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
788
806
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
807
|
+
|
808
|
+
[[package]]
|
809
|
+
name = "hashbrown"
|
810
|
+
version = "0.13.2"
|
811
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
812
|
+
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
|
789
813
|
dependencies = [
|
790
814
|
"ahash",
|
791
815
|
]
|
@@ -926,7 +950,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
926
950
|
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
|
927
951
|
dependencies = [
|
928
952
|
"autocfg",
|
929
|
-
"hashbrown",
|
953
|
+
"hashbrown 0.12.3",
|
930
954
|
]
|
931
955
|
|
932
956
|
[[package]]
|
@@ -938,6 +962,16 @@ dependencies = [
|
|
938
962
|
"cfg-if",
|
939
963
|
]
|
940
964
|
|
965
|
+
[[package]]
|
966
|
+
name = "inventory"
|
967
|
+
version = "0.3.3"
|
968
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
969
|
+
checksum = "16fe3b35d64bd1f72917f06425e7573a2f63f74f42c8f56e53ea6826dde3a2b5"
|
970
|
+
dependencies = [
|
971
|
+
"ctor",
|
972
|
+
"ghost",
|
973
|
+
]
|
974
|
+
|
941
975
|
[[package]]
|
942
976
|
name = "ipnet"
|
943
977
|
version = "2.5.1"
|
@@ -1010,11 +1044,11 @@ dependencies = [
|
|
1010
1044
|
|
1011
1045
|
[[package]]
|
1012
1046
|
name = "lru"
|
1013
|
-
version = "0.
|
1047
|
+
version = "0.9.0"
|
1014
1048
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1015
|
-
checksum = "
|
1049
|
+
checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17"
|
1016
1050
|
dependencies = [
|
1017
|
-
"hashbrown",
|
1051
|
+
"hashbrown 0.13.2",
|
1018
1052
|
]
|
1019
1053
|
|
1020
1054
|
[[package]]
|
@@ -1056,6 +1090,15 @@ dependencies = [
|
|
1056
1090
|
"autocfg",
|
1057
1091
|
]
|
1058
1092
|
|
1093
|
+
[[package]]
|
1094
|
+
name = "memoffset"
|
1095
|
+
version = "0.7.1"
|
1096
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1097
|
+
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
|
1098
|
+
dependencies = [
|
1099
|
+
"autocfg",
|
1100
|
+
]
|
1101
|
+
|
1059
1102
|
[[package]]
|
1060
1103
|
name = "mime"
|
1061
1104
|
version = "0.3.16"
|
@@ -1118,16 +1161,16 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
|
|
1118
1161
|
|
1119
1162
|
[[package]]
|
1120
1163
|
name = "nix"
|
1121
|
-
version = "0.
|
1164
|
+
version = "0.26.1"
|
1122
1165
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1123
|
-
checksum = "
|
1166
|
+
checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694"
|
1124
1167
|
dependencies = [
|
1125
|
-
"autocfg",
|
1126
1168
|
"bitflags",
|
1127
1169
|
"cfg-if",
|
1128
1170
|
"libc",
|
1129
|
-
"memoffset",
|
1171
|
+
"memoffset 0.7.1",
|
1130
1172
|
"pin-utils",
|
1173
|
+
"static_assertions",
|
1131
1174
|
]
|
1132
1175
|
|
1133
1176
|
[[package]]
|
@@ -1158,6 +1201,16 @@ dependencies = [
|
|
1158
1201
|
"winapi",
|
1159
1202
|
]
|
1160
1203
|
|
1204
|
+
[[package]]
|
1205
|
+
name = "num-integer"
|
1206
|
+
version = "0.1.45"
|
1207
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1208
|
+
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
|
1209
|
+
dependencies = [
|
1210
|
+
"autocfg",
|
1211
|
+
"num-traits",
|
1212
|
+
]
|
1213
|
+
|
1161
1214
|
[[package]]
|
1162
1215
|
name = "num-traits"
|
1163
1216
|
version = "0.2.15"
|
@@ -1464,9 +1517,9 @@ dependencies = [
|
|
1464
1517
|
|
1465
1518
|
[[package]]
|
1466
1519
|
name = "prost"
|
1467
|
-
version = "0.11.
|
1520
|
+
version = "0.11.6"
|
1468
1521
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1469
|
-
checksum = "
|
1522
|
+
checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698"
|
1470
1523
|
dependencies = [
|
1471
1524
|
"bytes",
|
1472
1525
|
"prost-derive",
|
@@ -1474,9 +1527,9 @@ dependencies = [
|
|
1474
1527
|
|
1475
1528
|
[[package]]
|
1476
1529
|
name = "prost-build"
|
1477
|
-
version = "0.11.
|
1530
|
+
version = "0.11.6"
|
1478
1531
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1479
|
-
checksum = "
|
1532
|
+
checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e"
|
1480
1533
|
dependencies = [
|
1481
1534
|
"bytes",
|
1482
1535
|
"heck",
|
@@ -1496,9 +1549,9 @@ dependencies = [
|
|
1496
1549
|
|
1497
1550
|
[[package]]
|
1498
1551
|
name = "prost-derive"
|
1499
|
-
version = "0.11.
|
1552
|
+
version = "0.11.6"
|
1500
1553
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1501
|
-
checksum = "
|
1554
|
+
checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d"
|
1502
1555
|
dependencies = [
|
1503
1556
|
"anyhow",
|
1504
1557
|
"itertools",
|
@@ -1509,14 +1562,60 @@ dependencies = [
|
|
1509
1562
|
|
1510
1563
|
[[package]]
|
1511
1564
|
name = "prost-types"
|
1512
|
-
version = "0.11.
|
1565
|
+
version = "0.11.6"
|
1513
1566
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1514
|
-
checksum = "
|
1567
|
+
checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788"
|
1515
1568
|
dependencies = [
|
1516
1569
|
"bytes",
|
1517
1570
|
"prost",
|
1518
1571
|
]
|
1519
1572
|
|
1573
|
+
[[package]]
|
1574
|
+
name = "prost-wkt"
|
1575
|
+
version = "0.4.0"
|
1576
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1577
|
+
checksum = "81d27933a63f4fa7586c2eac76179e7a9b782a7165aa309028adbec626a33100"
|
1578
|
+
dependencies = [
|
1579
|
+
"chrono",
|
1580
|
+
"inventory",
|
1581
|
+
"prost",
|
1582
|
+
"serde",
|
1583
|
+
"serde_derive",
|
1584
|
+
"serde_json",
|
1585
|
+
"typetag",
|
1586
|
+
]
|
1587
|
+
|
1588
|
+
[[package]]
|
1589
|
+
name = "prost-wkt-build"
|
1590
|
+
version = "0.4.0"
|
1591
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1592
|
+
checksum = "edf268948bef41c2f9bb879e8868c155412d28d6ba4295c5b8d6d6639e47f9cf"
|
1593
|
+
dependencies = [
|
1594
|
+
"heck",
|
1595
|
+
"prost",
|
1596
|
+
"prost-build",
|
1597
|
+
"prost-types",
|
1598
|
+
"quote",
|
1599
|
+
]
|
1600
|
+
|
1601
|
+
[[package]]
|
1602
|
+
name = "prost-wkt-types"
|
1603
|
+
version = "0.4.0"
|
1604
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1605
|
+
checksum = "4e240034fe46986ab9f84d669ed9bd46ad0c6adb8777ef28f5c44b94b43a3743"
|
1606
|
+
dependencies = [
|
1607
|
+
"chrono",
|
1608
|
+
"prost",
|
1609
|
+
"prost-build",
|
1610
|
+
"prost-types",
|
1611
|
+
"prost-wkt",
|
1612
|
+
"prost-wkt-build",
|
1613
|
+
"regex",
|
1614
|
+
"serde",
|
1615
|
+
"serde_derive",
|
1616
|
+
"serde_json",
|
1617
|
+
]
|
1618
|
+
|
1520
1619
|
[[package]]
|
1521
1620
|
name = "protobuf"
|
1522
1621
|
version = "2.28.0"
|
@@ -1637,7 +1736,7 @@ version = "0.11.12"
|
|
1637
1736
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1638
1737
|
checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc"
|
1639
1738
|
dependencies = [
|
1640
|
-
"base64",
|
1739
|
+
"base64 0.13.1",
|
1641
1740
|
"bytes",
|
1642
1741
|
"encoding_rs",
|
1643
1742
|
"futures-core",
|
@@ -1688,11 +1787,11 @@ dependencies = [
|
|
1688
1787
|
|
1689
1788
|
[[package]]
|
1690
1789
|
name = "ringbuf"
|
1691
|
-
version = "0.
|
1790
|
+
version = "0.3.1"
|
1692
1791
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1693
|
-
checksum = "
|
1792
|
+
checksum = "89e68dd9c1d8f7bb0c664e1556b1521809bc6fa62d92bb3b813adf8611caa0eb"
|
1694
1793
|
dependencies = [
|
1695
|
-
"
|
1794
|
+
"crossbeam-utils",
|
1696
1795
|
]
|
1697
1796
|
|
1698
1797
|
[[package]]
|
@@ -1757,7 +1856,7 @@ version = "1.0.1"
|
|
1757
1856
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1758
1857
|
checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55"
|
1759
1858
|
dependencies = [
|
1760
|
-
"base64",
|
1859
|
+
"base64 0.13.1",
|
1761
1860
|
]
|
1762
1861
|
|
1763
1862
|
[[package]]
|
@@ -1960,6 +2059,12 @@ version = "0.5.2"
|
|
1960
2059
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1961
2060
|
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
1962
2061
|
|
2062
|
+
[[package]]
|
2063
|
+
name = "static_assertions"
|
2064
|
+
version = "1.1.0"
|
2065
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2066
|
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
2067
|
+
|
1963
2068
|
[[package]]
|
1964
2069
|
name = "strsim"
|
1965
2070
|
version = "0.10.0"
|
@@ -2046,9 +2151,8 @@ version = "0.1.0"
|
|
2046
2151
|
dependencies = [
|
2047
2152
|
"anyhow",
|
2048
2153
|
"arc-swap",
|
2049
|
-
"async-channel",
|
2050
2154
|
"async-trait",
|
2051
|
-
"base64",
|
2155
|
+
"base64 0.21.0",
|
2052
2156
|
"crossbeam",
|
2053
2157
|
"dashmap",
|
2054
2158
|
"derive_builder",
|
@@ -2062,7 +2166,6 @@ dependencies = [
|
|
2062
2166
|
"hyper",
|
2063
2167
|
"itertools",
|
2064
2168
|
"lazy_static",
|
2065
|
-
"log",
|
2066
2169
|
"lru",
|
2067
2170
|
"mockall",
|
2068
2171
|
"nix",
|
@@ -2071,9 +2174,10 @@ dependencies = [
|
|
2071
2174
|
"opentelemetry-otlp",
|
2072
2175
|
"opentelemetry-prometheus",
|
2073
2176
|
"parking_lot",
|
2177
|
+
"pin-project",
|
2074
2178
|
"prometheus",
|
2075
2179
|
"prost",
|
2076
|
-
"prost-types",
|
2180
|
+
"prost-wkt-types",
|
2077
2181
|
"rand",
|
2078
2182
|
"reqwest",
|
2079
2183
|
"ringbuf",
|
@@ -2105,16 +2209,18 @@ dependencies = [
|
|
2105
2209
|
name = "temporal-sdk-core-api"
|
2106
2210
|
version = "0.1.0"
|
2107
2211
|
dependencies = [
|
2108
|
-
"anyhow",
|
2109
2212
|
"async-trait",
|
2110
2213
|
"derive_builder",
|
2111
|
-
"log",
|
2112
|
-
"opentelemetry",
|
2113
2214
|
"prost-types",
|
2215
|
+
"serde",
|
2216
|
+
"serde_json",
|
2114
2217
|
"temporal-client",
|
2115
2218
|
"temporal-sdk-core-protos",
|
2116
2219
|
"thiserror",
|
2220
|
+
"tokio",
|
2117
2221
|
"tonic",
|
2222
|
+
"tracing-core",
|
2223
|
+
"url",
|
2118
2224
|
]
|
2119
2225
|
|
2120
2226
|
[[package]]
|
@@ -2122,10 +2228,12 @@ name = "temporal-sdk-core-protos"
|
|
2122
2228
|
version = "0.1.0"
|
2123
2229
|
dependencies = [
|
2124
2230
|
"anyhow",
|
2125
|
-
"base64",
|
2231
|
+
"base64 0.21.0",
|
2126
2232
|
"derive_more",
|
2127
2233
|
"prost",
|
2128
|
-
"prost-
|
2234
|
+
"prost-wkt",
|
2235
|
+
"prost-wkt-build",
|
2236
|
+
"prost-wkt-types",
|
2129
2237
|
"rand",
|
2130
2238
|
"serde",
|
2131
2239
|
"serde_json",
|
@@ -2214,9 +2322,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
|
|
2214
2322
|
|
2215
2323
|
[[package]]
|
2216
2324
|
name = "tokio"
|
2217
|
-
version = "1.
|
2325
|
+
version = "1.25.0"
|
2218
2326
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2219
|
-
checksum = "
|
2327
|
+
checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
|
2220
2328
|
dependencies = [
|
2221
2329
|
"autocfg",
|
2222
2330
|
"bytes",
|
@@ -2229,7 +2337,7 @@ dependencies = [
|
|
2229
2337
|
"signal-hook-registry",
|
2230
2338
|
"socket2",
|
2231
2339
|
"tokio-macros",
|
2232
|
-
"
|
2340
|
+
"windows-sys 0.42.0",
|
2233
2341
|
]
|
2234
2342
|
|
2235
2343
|
[[package]]
|
@@ -2298,7 +2406,7 @@ dependencies = [
|
|
2298
2406
|
"async-stream",
|
2299
2407
|
"async-trait",
|
2300
2408
|
"axum",
|
2301
|
-
"base64",
|
2409
|
+
"base64 0.13.1",
|
2302
2410
|
"bytes",
|
2303
2411
|
"futures-core",
|
2304
2412
|
"futures-util",
|
@@ -2488,6 +2596,30 @@ version = "1.15.0"
|
|
2488
2596
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2489
2597
|
checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
|
2490
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
|
+
|
2491
2623
|
[[package]]
|
2492
2624
|
name = "unicode-bidi"
|
2493
2625
|
version = "0.3.8"
|
data/bridge/Cargo.toml
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
[package]
|
2
2
|
name = "bridge"
|
3
|
-
version = "0.0
|
3
|
+
version = "0.1.0"
|
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,7 +16,8 @@ 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"
|
20
|
+
tokio-util = "0.7.4"
|
18
21
|
tonic = "0.8"
|
19
22
|
url = "2.2"
|
20
23
|
|
data/bridge/sdk-core/Cargo.toml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
[workspace]
|
2
|
-
members = ["
|
2
|
+
members = ["core", "client", "core-api", "fsm", "test-utils", "sdk-core-protos", "sdk"]
|
data/bridge/sdk-core/README.md
CHANGED
@@ -1,23 +1,29 @@
|
|
1
1
|
[![Build status](https://badge.buildkite.com/c23f47f4a827f04daece909963bd3a248496f0cdbabfbecee4.svg?branch=master)](https://buildkite.com/temporal/core-sdk?branch=master)
|
2
2
|
|
3
|
-
Core SDK that can be used as a base for
|
3
|
+
Core SDK that can be used as a base for other Temporal SDKs. It is currently used as the base of:
|
4
4
|
|
5
|
-
|
5
|
+
- [TypeScript SDK](https://github.com/temporalio/sdk-typescript/)
|
6
|
+
- [Python SDK](https://github.com/temporalio/sdk-python/)
|
7
|
+
- [.NET SDK](https://github.com/temporalio/sdk-dotnet/)
|
8
|
+
- [Ruby SDK](https://github.com/temporalio/sdk-ruby/)
|
6
9
|
|
7
|
-
|
10
|
+
For the reasoning behind the Core SDK, see:
|
8
11
|
|
9
|
-
|
10
|
-
|
12
|
+
- [Why Rust powers Temporal’s new Core SDK](https://temporal.io/blog/why-rust-powers-core-sdk).
|
13
|
+
|
14
|
+
See the [Architecture](ARCHITECTURE.md) doc for some high-level information about how Core works
|
15
|
+
and how language layers interact with it.
|
11
16
|
|
12
17
|
# Development
|
13
18
|
|
19
|
+
You will need the `protoc` protobuf compiler installed to build Core.
|
20
|
+
|
14
21
|
This repo is composed of multiple crates:
|
15
22
|
* temporal-sdk-core-protos `./sdk-core-protos` - Holds the generated proto code and extensions
|
16
23
|
* temporal-client `./client` - Defines client(s) for interacting with the Temporal gRPC service
|
17
24
|
* temporal-sdk-core-api `./core-api` - Defines the API surface exposed by Core
|
18
25
|
* temporal-sdk-core `./core` - The Core implementation
|
19
26
|
* temporal-sdk `./sdk` - A (currently prototype) Rust SDK built on top of Core. Used for testing.
|
20
|
-
* temporal-sdk-core-bridge-ffi `./bridge-ffi` - C API wrapper for Core
|
21
27
|
* rustfsm `./fsm` - Implements a procedural macro used by core for defining state machines
|
22
28
|
(contains subcrates). It is temporal agnostic.
|
23
29
|
|
@@ -25,7 +31,6 @@ Visualized (dev dependencies are in blue):
|
|
25
31
|
|
26
32
|
![Crate dependency graph](./etc/deps.svg)
|
27
33
|
|
28
|
-
|
29
34
|
All the following commands are enforced for each pull request:
|
30
35
|
|
31
36
|
## Building and testing
|
@@ -52,9 +57,7 @@ it for a test, insert the below snippet at the start of the test. By default, tr
|
|
52
57
|
to stdout in a (reasonably) pretty manner.
|
53
58
|
|
54
59
|
```rust
|
55
|
-
crate::telemetry::
|
56
|
-
let s = info_span!("Test start");
|
57
|
-
let _enter = s.enter();
|
60
|
+
crate::telemetry::test_telem_console();
|
58
61
|
```
|
59
62
|
|
60
63
|
The passed in options to initialization can be customized to export to an OTel collector, etc.
|
@@ -105,3 +108,10 @@ Any error which is returned from a public interface should be well-typed, and we
|
|
105
108
|
Errors returned from things only used in testing are free to use
|
106
109
|
[anyhow](https://github.com/dtolnay/anyhow) for less verbosity.
|
107
110
|
|
111
|
+
|
112
|
+
# The Rust "SDK"
|
113
|
+
This repo contains a *prototype* Rust sdk in the `sdk/` directory. This SDK should be considered
|
114
|
+
pre-alpha in terms of its API surface. Since it's still using Core underneath, it is generally
|
115
|
+
functional. We do not currently have any firm plans to productionize this SDK. If you want to write
|
116
|
+
workflows and activities in Rust, feel free to use it - but be aware that the API may change at any
|
117
|
+
time without warning and we do not provide any support guarantees.
|