@temporalio/core-bridge 1.14.2-canary-release-testing.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/Cargo.lock +794 -650
  2. package/bridge-macros/src/derive_tryintojs.rs +40 -0
  3. package/lib/native.d.ts +24 -3
  4. package/package.json +4 -4
  5. package/releases/aarch64-apple-darwin/index.node +0 -0
  6. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  7. package/releases/x86_64-apple-darwin/index.node +0 -0
  8. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  9. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  10. package/sdk-core/.github/workflows/per-pr.yml +6 -6
  11. package/sdk-core/AGENTS.md +42 -31
  12. package/sdk-core/Cargo.toml +4 -1
  13. package/sdk-core/README.md +19 -13
  14. package/sdk-core/crates/client/Cargo.toml +4 -0
  15. package/sdk-core/crates/client/README.md +139 -0
  16. package/sdk-core/crates/client/src/async_activity_handle.rs +297 -0
  17. package/sdk-core/crates/client/src/callback_based.rs +7 -0
  18. package/sdk-core/crates/client/src/errors.rs +294 -0
  19. package/sdk-core/crates/client/src/{raw.rs → grpc.rs} +370 -159
  20. package/sdk-core/crates/client/src/lib.rs +920 -1326
  21. package/sdk-core/crates/client/src/metrics.rs +24 -33
  22. package/sdk-core/crates/client/src/options_structs.rs +457 -0
  23. package/sdk-core/crates/client/src/replaceable.rs +5 -4
  24. package/sdk-core/crates/client/src/request_extensions.rs +8 -9
  25. package/sdk-core/crates/client/src/retry.rs +99 -54
  26. package/sdk-core/crates/client/src/{worker/mod.rs → worker.rs} +104 -29
  27. package/sdk-core/crates/client/src/workflow_handle.rs +826 -0
  28. package/sdk-core/crates/common/Cargo.toml +62 -3
  29. package/sdk-core/crates/common/build.rs +742 -12
  30. package/sdk-core/crates/common/protos/api_upstream/.github/workflows/ci.yml +2 -0
  31. package/sdk-core/crates/common/protos/api_upstream/.github/workflows/create-release.yml +0 -5
  32. package/sdk-core/crates/common/protos/api_upstream/Makefile +2 -1
  33. package/sdk-core/crates/common/protos/api_upstream/README.md +8 -0
  34. package/sdk-core/crates/common/protos/api_upstream/cmd/check-path-conflicts/main.go +137 -0
  35. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv2.json +3329 -2647
  36. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv3.yaml +2734 -708
  37. package/sdk-core/crates/common/protos/api_upstream/temporal/api/activity/v1/message.proto +155 -3
  38. package/sdk-core/crates/common/protos/api_upstream/temporal/api/command/v1/message.proto +26 -0
  39. package/sdk-core/crates/common/protos/api_upstream/temporal/api/common/v1/message.proto +8 -1
  40. package/sdk-core/crates/common/protos/api_upstream/temporal/api/deployment/v1/message.proto +27 -1
  41. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/activity.proto +81 -0
  42. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/event_type.proto +4 -0
  43. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +4 -0
  44. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +15 -0
  45. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/workflow.proto +63 -15
  46. package/sdk-core/crates/common/protos/api_upstream/temporal/api/errordetails/v1/message.proto +8 -0
  47. package/sdk-core/crates/common/protos/api_upstream/temporal/api/failure/v1/message.proto +1 -0
  48. package/sdk-core/crates/common/protos/api_upstream/temporal/api/history/v1/message.proto +111 -17
  49. package/sdk-core/crates/common/protos/api_upstream/temporal/api/namespace/v1/message.proto +21 -0
  50. package/sdk-core/crates/common/protos/api_upstream/temporal/api/nexus/v1/message.proto +20 -1
  51. package/sdk-core/crates/common/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +4 -0
  52. package/sdk-core/crates/common/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
  53. package/sdk-core/crates/common/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -0
  54. package/sdk-core/crates/common/protos/api_upstream/temporal/api/worker/v1/message.proto +4 -7
  55. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflow/v1/message.proto +80 -22
  56. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +347 -23
  57. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +242 -43
  58. package/sdk-core/crates/common/protos/local/temporal/sdk/core/core_interface.proto +15 -0
  59. package/sdk-core/crates/common/protos/local/temporal/sdk/core/nexus/nexus.proto +9 -2
  60. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +8 -0
  61. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +22 -5
  62. package/sdk-core/crates/common/src/activity_definition.rs +20 -0
  63. package/sdk-core/crates/common/src/data_converters.rs +770 -0
  64. package/sdk-core/crates/common/src/envconfig.rs +5 -0
  65. package/sdk-core/crates/common/src/lib.rs +15 -211
  66. package/sdk-core/crates/common/src/payload_visitor.rs +648 -0
  67. package/sdk-core/crates/common/src/priority.rs +110 -0
  68. package/sdk-core/crates/common/src/protos/canned_histories.rs +19 -0
  69. package/sdk-core/crates/common/src/protos/history_builder.rs +45 -0
  70. package/sdk-core/crates/common/src/protos/history_info.rs +2 -0
  71. package/sdk-core/crates/common/src/protos/mod.rs +134 -27
  72. package/sdk-core/crates/common/src/protos/task_token.rs +3 -3
  73. package/sdk-core/crates/common/src/protos/utilities.rs +11 -0
  74. package/sdk-core/crates/{sdk-core → common}/src/telemetry/log_export.rs +11 -16
  75. package/sdk-core/crates/common/src/telemetry/metrics/core.rs +125 -0
  76. package/sdk-core/crates/common/src/telemetry/metrics.rs +272 -225
  77. package/sdk-core/crates/{sdk-core → common}/src/telemetry/otel.rs +8 -13
  78. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_meter.rs +49 -50
  79. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_server.rs +2 -3
  80. package/sdk-core/crates/common/src/telemetry.rs +278 -19
  81. package/sdk-core/crates/common/src/worker.rs +68 -636
  82. package/sdk-core/crates/common/src/workflow_definition.rs +60 -0
  83. package/sdk-core/crates/macros/Cargo.toml +5 -1
  84. package/sdk-core/crates/macros/src/activities_definitions.rs +585 -0
  85. package/sdk-core/crates/macros/src/fsm_impl.rs +507 -0
  86. package/sdk-core/crates/macros/src/lib.rs +138 -512
  87. package/sdk-core/crates/macros/src/macro_utils.rs +106 -0
  88. package/sdk-core/crates/macros/src/workflow_definitions.rs +1224 -0
  89. package/sdk-core/crates/sdk/Cargo.toml +19 -6
  90. package/sdk-core/crates/sdk/README.md +415 -0
  91. package/sdk-core/crates/sdk/src/activities.rs +417 -0
  92. package/sdk-core/crates/sdk/src/interceptors.rs +1 -1
  93. package/sdk-core/crates/sdk/src/lib.rs +759 -442
  94. package/sdk-core/crates/sdk/src/workflow_context/options.rs +64 -35
  95. package/sdk-core/crates/sdk/src/workflow_context.rs +1033 -289
  96. package/sdk-core/crates/sdk/src/workflow_future.rs +277 -213
  97. package/sdk-core/crates/sdk/src/workflows.rs +711 -0
  98. package/sdk-core/crates/sdk-core/Cargo.toml +59 -65
  99. package/sdk-core/crates/sdk-core/benches/workflow_replay_bench.rs +45 -54
  100. package/sdk-core/crates/sdk-core/machine_coverage/ActivityMachine_Coverage.puml +1 -1
  101. package/sdk-core/crates/sdk-core/src/abstractions.rs +6 -10
  102. package/sdk-core/crates/sdk-core/src/core_tests/activity_tasks.rs +6 -5
  103. package/sdk-core/crates/sdk-core/src/core_tests/mod.rs +22 -21
  104. package/sdk-core/crates/sdk-core/src/core_tests/queries.rs +21 -25
  105. package/sdk-core/crates/sdk-core/src/core_tests/replay_flag.rs +7 -10
  106. package/sdk-core/crates/sdk-core/src/core_tests/updates.rs +14 -17
  107. package/sdk-core/crates/sdk-core/src/core_tests/workers.rs +647 -27
  108. package/sdk-core/crates/sdk-core/src/core_tests/workflow_tasks.rs +46 -41
  109. package/sdk-core/crates/sdk-core/src/ephemeral_server/mod.rs +13 -16
  110. package/sdk-core/crates/sdk-core/src/histfetch.rs +20 -10
  111. package/sdk-core/crates/sdk-core/src/lib.rs +60 -123
  112. package/sdk-core/crates/sdk-core/src/pollers/mod.rs +4 -9
  113. package/sdk-core/crates/sdk-core/src/pollers/poll_buffer.rs +411 -32
  114. package/sdk-core/crates/sdk-core/src/protosext/mod.rs +2 -2
  115. package/sdk-core/crates/sdk-core/src/replay/mod.rs +14 -5
  116. package/sdk-core/crates/sdk-core/src/telemetry/metrics.rs +183 -198
  117. package/sdk-core/crates/sdk-core/src/telemetry/mod.rs +3 -281
  118. package/sdk-core/crates/sdk-core/src/test_help/integ_helpers.rs +35 -16
  119. package/sdk-core/crates/sdk-core/src/test_help/unit_helpers.rs +3 -6
  120. package/sdk-core/crates/sdk-core/src/worker/activities/activity_heartbeat_manager.rs +1 -0
  121. package/sdk-core/crates/sdk-core/src/worker/activities/local_activities.rs +11 -14
  122. package/sdk-core/crates/sdk-core/src/worker/activities.rs +16 -19
  123. package/sdk-core/crates/sdk-core/src/worker/client/mocks.rs +11 -5
  124. package/sdk-core/crates/sdk-core/src/worker/client.rs +104 -86
  125. package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +10 -14
  126. package/sdk-core/crates/sdk-core/src/worker/mod.rs +1175 -241
  127. package/sdk-core/crates/sdk-core/src/worker/nexus.rs +150 -23
  128. package/sdk-core/crates/sdk-core/src/worker/slot_provider.rs +2 -2
  129. package/sdk-core/crates/sdk-core/src/worker/tuner/fixed_size.rs +2 -2
  130. package/sdk-core/crates/sdk-core/src/worker/tuner/resource_based.rs +25 -27
  131. package/sdk-core/crates/sdk-core/src/worker/tuner.rs +64 -44
  132. package/sdk-core/crates/sdk-core/src/worker/workflow/driven_workflow.rs +9 -3
  133. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/patch_state_machine.rs +5 -8
  134. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +21 -22
  135. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/workflow_machines.rs +28 -4
  136. package/sdk-core/crates/sdk-core/src/worker/workflow/managed_run.rs +20 -41
  137. package/sdk-core/crates/sdk-core/src/worker/workflow/mod.rs +50 -9
  138. package/sdk-core/crates/sdk-core/src/worker/workflow/run_cache.rs +4 -7
  139. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_extraction.rs +2 -4
  140. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_poller.rs +8 -9
  141. package/sdk-core/crates/sdk-core/src/worker/workflow/workflow_stream.rs +1 -3
  142. package/sdk-core/crates/sdk-core/tests/activities_procmacro.rs +6 -0
  143. package/sdk-core/crates/sdk-core/tests/activities_trybuild/basic_pass.rs +54 -0
  144. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.rs +18 -0
  145. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.stderr +5 -0
  146. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.rs +14 -0
  147. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.stderr +5 -0
  148. package/sdk-core/crates/sdk-core/tests/activities_trybuild/multi_arg_pass.rs +48 -0
  149. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_input_pass.rs +14 -0
  150. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_return_type_pass.rs +19 -0
  151. package/sdk-core/crates/sdk-core/tests/cloud_tests.rs +14 -5
  152. package/sdk-core/crates/sdk-core/tests/common/activity_functions.rs +55 -0
  153. package/sdk-core/crates/sdk-core/tests/common/mod.rs +281 -236
  154. package/sdk-core/crates/sdk-core/tests/common/workflows.rs +41 -28
  155. package/sdk-core/crates/sdk-core/tests/global_metric_tests.rs +9 -14
  156. package/sdk-core/crates/sdk-core/tests/heavy_tests/fuzzy_workflow.rs +73 -66
  157. package/sdk-core/crates/sdk-core/tests/heavy_tests.rs +306 -268
  158. package/sdk-core/crates/sdk-core/tests/integ_tests/async_activity_client_tests.rs +230 -0
  159. package/sdk-core/crates/sdk-core/tests/integ_tests/client_tests.rs +94 -57
  160. package/sdk-core/crates/sdk-core/tests/integ_tests/data_converter_tests.rs +381 -0
  161. package/sdk-core/crates/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +37 -38
  162. package/sdk-core/crates/sdk-core/tests/integ_tests/heartbeat_tests.rs +49 -40
  163. package/sdk-core/crates/sdk-core/tests/integ_tests/metrics_tests.rs +447 -300
  164. package/sdk-core/crates/sdk-core/tests/integ_tests/pagination_tests.rs +50 -45
  165. package/sdk-core/crates/sdk-core/tests/integ_tests/polling_tests.rs +157 -157
  166. package/sdk-core/crates/sdk-core/tests/integ_tests/queries_tests.rs +103 -89
  167. package/sdk-core/crates/sdk-core/tests/integ_tests/update_tests.rs +609 -463
  168. package/sdk-core/crates/sdk-core/tests/integ_tests/visibility_tests.rs +80 -62
  169. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +389 -265
  170. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_tests.rs +250 -185
  171. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_versioning_tests.rs +52 -49
  172. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_client_tests.rs +180 -0
  173. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/activities.rs +437 -327
  174. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +82 -58
  175. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +56 -30
  176. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +364 -251
  177. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/client_interactions.rs +552 -0
  178. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +110 -46
  179. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +243 -149
  180. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/eager.rs +98 -32
  181. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +1475 -1040
  182. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +73 -43
  183. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/nexus.rs +402 -245
  184. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/patches.rs +343 -207
  185. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/queries.rs +415 -0
  186. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/replay.rs +96 -36
  187. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/resets.rs +155 -140
  188. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/signals.rs +183 -113
  189. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +85 -44
  190. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/timers.rs +142 -48
  191. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +73 -56
  192. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests.rs +365 -242
  193. package/sdk-core/crates/sdk-core/tests/main.rs +22 -16
  194. package/sdk-core/crates/sdk-core/tests/manual_tests.rs +233 -187
  195. package/sdk-core/crates/sdk-core/tests/runner.rs +4 -6
  196. package/sdk-core/crates/sdk-core/tests/shared_tests/mod.rs +73 -27
  197. package/sdk-core/crates/sdk-core/tests/shared_tests/priority.rs +107 -84
  198. package/sdk-core/crates/sdk-core/tests/workflows_procmacro.rs +6 -0
  199. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.rs +26 -0
  200. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.stderr +5 -0
  201. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/basic_pass.rs +49 -0
  202. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/minimal_pass.rs +21 -0
  203. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.rs +26 -0
  204. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.stderr +5 -0
  205. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.rs +21 -0
  206. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.stderr +5 -0
  207. package/sdk-core/crates/sdk-core-c-bridge/Cargo.toml +8 -1
  208. package/sdk-core/crates/sdk-core-c-bridge/include/temporal-sdk-core-c-bridge.h +37 -26
  209. package/sdk-core/crates/sdk-core-c-bridge/src/client.rs +180 -87
  210. package/sdk-core/crates/sdk-core-c-bridge/src/lib.rs +89 -5
  211. package/sdk-core/crates/sdk-core-c-bridge/src/metric.rs +10 -16
  212. package/sdk-core/crates/sdk-core-c-bridge/src/runtime.rs +59 -67
  213. package/sdk-core/crates/sdk-core-c-bridge/src/testing.rs +10 -10
  214. package/sdk-core/crates/sdk-core-c-bridge/src/tests/context.rs +57 -22
  215. package/sdk-core/crates/sdk-core-c-bridge/src/tests/mod.rs +108 -12
  216. package/sdk-core/crates/sdk-core-c-bridge/src/tests/utils.rs +9 -52
  217. package/sdk-core/crates/sdk-core-c-bridge/src/worker.rs +74 -91
  218. package/sdk-core/rustfmt.toml +2 -1
  219. package/src/client.rs +206 -289
  220. package/src/helpers/try_into_js.rs +88 -2
  221. package/src/metrics.rs +277 -35
  222. package/src/runtime.rs +94 -45
  223. package/src/testing.rs +9 -16
  224. package/src/worker.rs +86 -68
  225. package/ts/native.ts +39 -3
  226. package/sdk-core/crates/client/src/workflow_handle/mod.rs +0 -212
  227. package/sdk-core/crates/common/src/errors.rs +0 -85
  228. package/sdk-core/crates/common/tests/worker_task_types_test.rs +0 -129
  229. package/sdk-core/crates/macros/LICENSE.txt +0 -21
  230. package/sdk-core/crates/sdk/src/activity_context.rs +0 -238
  231. package/sdk-core/crates/sdk/src/app_data.rs +0 -37
  232. package/sdk-core/crates/sdk-core/tests/integ_tests/activity_functions.rs +0 -5
  233. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
@@ -56,8 +56,6 @@ typedef enum TemporalCoreSlotKindType {
56
56
 
57
57
  typedef struct TemporalCoreCancellationToken TemporalCoreCancellationToken;
58
58
 
59
- typedef struct TemporalCoreClient TemporalCoreClient;
60
-
61
59
  /**
62
60
  * Representation of gRPC request for the callback.
63
61
  *
@@ -67,6 +65,8 @@ typedef struct TemporalCoreClient TemporalCoreClient;
67
65
  */
68
66
  typedef struct TemporalCoreClientGrpcOverrideRequest TemporalCoreClientGrpcOverrideRequest;
69
67
 
68
+ typedef struct TemporalCoreConnection TemporalCoreConnection;
69
+
70
70
  typedef struct TemporalCoreEphemeralServer TemporalCoreEphemeralServer;
71
71
 
72
72
  typedef struct TemporalCoreForwardedLog TemporalCoreForwardedLog;
@@ -92,11 +92,16 @@ typedef struct TemporalCoreByteArrayRef {
92
92
  size_t size;
93
93
  } TemporalCoreByteArrayRef;
94
94
 
95
+ typedef struct TemporalCoreByteArrayRefArray {
96
+ const struct TemporalCoreByteArrayRef *data;
97
+ size_t size;
98
+ } TemporalCoreByteArrayRefArray;
99
+
95
100
  /**
96
- * Metadata is `<key1>\n<value1>\n<key2>\n<value2>`. Metadata keys or
97
- * values cannot contain a newline within.
101
+ * Each ByteArrayRef is `<key>\n<value>`.
102
+ * Keys cannot contain a newline.
98
103
  */
99
- typedef struct TemporalCoreByteArrayRef TemporalCoreMetadataRef;
104
+ typedef struct TemporalCoreByteArrayRefArray TemporalCoreMetadataRef;
100
105
 
101
106
  typedef struct TemporalCoreClientTlsOptions {
102
107
  struct TemporalCoreByteArrayRef server_root_ca_cert;
@@ -139,11 +144,12 @@ typedef struct TemporalCoreClientHttpConnectProxyOptions {
139
144
  typedef void (*TemporalCoreClientGrpcOverrideCallback)(struct TemporalCoreClientGrpcOverrideRequest *request,
140
145
  void *user_data);
141
146
 
142
- typedef struct TemporalCoreClientOptions {
147
+ typedef struct TemporalCoreConnectionOptions {
143
148
  struct TemporalCoreByteArrayRef target_url;
144
149
  struct TemporalCoreByteArrayRef client_name;
145
150
  struct TemporalCoreByteArrayRef client_version;
146
151
  TemporalCoreMetadataRef metadata;
152
+ TemporalCoreMetadataRef binary_metadata;
147
153
  struct TemporalCoreByteArrayRef api_key;
148
154
  struct TemporalCoreByteArrayRef identity;
149
155
  const struct TemporalCoreClientTlsOptions *tls_options;
@@ -165,7 +171,7 @@ typedef struct TemporalCoreClientOptions {
165
171
  * Optional user data passed to each callback call.
166
172
  */
167
173
  void *grpc_override_callback_user_data;
168
- } TemporalCoreClientOptions;
174
+ } TemporalCoreConnectionOptions;
169
175
 
170
176
  typedef struct TemporalCoreByteArray {
171
177
  const uint8_t *data;
@@ -184,7 +190,7 @@ typedef struct TemporalCoreByteArray {
184
190
  * If success or fail are not null, they must be manually freed when done.
185
191
  */
186
192
  typedef void (*TemporalCoreClientConnectCallback)(void *user_data,
187
- struct TemporalCoreClient *success,
193
+ struct TemporalCoreConnection *success,
188
194
  const struct TemporalCoreByteArray *fail);
189
195
 
190
196
  /**
@@ -223,6 +229,7 @@ typedef struct TemporalCoreRpcCallOptions {
223
229
  struct TemporalCoreByteArrayRef req;
224
230
  bool retry;
225
231
  TemporalCoreMetadataRef metadata;
232
+ TemporalCoreMetadataRef binary_metadata;
226
233
  /**
227
234
  * 0 means no timeout
228
235
  */
@@ -334,9 +341,15 @@ typedef struct TemporalCoreLoggingOptions {
334
341
  TemporalCoreForwardedLogCallback forward_to;
335
342
  } TemporalCoreLoggingOptions;
336
343
 
344
+ /**
345
+ * Data is `<key1>\n<value1>\n<key2>\n<value2>`.
346
+ * Keys and values cannot contain a newline within.
347
+ */
348
+ typedef struct TemporalCoreByteArrayRef TemporalCoreNewlineDelimitedMapRef;
349
+
337
350
  typedef struct TemporalCoreOpenTelemetryOptions {
338
351
  struct TemporalCoreByteArrayRef url;
339
- TemporalCoreMetadataRef headers;
352
+ TemporalCoreNewlineDelimitedMapRef headers;
340
353
  uint32_t metric_periodicity_millis;
341
354
  enum TemporalCoreOpenTelemetryMetricTemporality metric_temporality;
342
355
  bool durations_as_seconds;
@@ -345,7 +358,7 @@ typedef struct TemporalCoreOpenTelemetryOptions {
345
358
  * Histogram bucket overrides in form of
346
359
  * `<metric1>\n<float>,<float>,<float>\n<metric2>\n<float>,<float>,<float>`
347
360
  */
348
- TemporalCoreMetadataRef histogram_bucket_overrides;
361
+ TemporalCoreNewlineDelimitedMapRef histogram_bucket_overrides;
349
362
  } TemporalCoreOpenTelemetryOptions;
350
363
 
351
364
  typedef struct TemporalCorePrometheusOptions {
@@ -357,7 +370,7 @@ typedef struct TemporalCorePrometheusOptions {
357
370
  * Histogram bucket overrides in form of
358
371
  * `<metric1>\n<float>,<float>,<float>\n<metric2>\n<float>,<float>,<float>`
359
372
  */
360
- TemporalCoreMetadataRef histogram_bucket_overrides;
373
+ TemporalCoreNewlineDelimitedMapRef histogram_bucket_overrides;
361
374
  } TemporalCorePrometheusOptions;
362
375
 
363
376
  typedef const void *(*TemporalCoreCustomMetricMeterMetricNewCallback)(struct TemporalCoreByteArrayRef name,
@@ -435,7 +448,7 @@ typedef struct TemporalCoreMetricsOptions {
435
448
  */
436
449
  const struct TemporalCoreCustomMetricMeter *custom_meter;
437
450
  bool attach_service_name;
438
- TemporalCoreMetadataRef global_tags;
451
+ TemporalCoreNewlineDelimitedMapRef global_tags;
439
452
  struct TemporalCoreByteArrayRef metric_prefix;
440
453
  } TemporalCoreMetricsOptions;
441
454
 
@@ -679,7 +692,7 @@ typedef struct TemporalCoreCustomSlotSupplierCallbacks {
679
692
  */
680
693
  TemporalCoreCustomSlotSupplierTryReserveCallback try_reserve;
681
694
  /**
682
- * Called after successful reservation to mark slot as used. See [`SlotSupplier`](temporalio_common::worker::SlotSupplier)
695
+ * Called after successful reservation to mark slot as used. See [`SlotSupplier`](temporalio_sdk_core::SlotSupplier)
683
696
  * trait for details.
684
697
  */
685
698
  TemporalCoreCustomSlotSupplierMarkUsedCallback mark_used;
@@ -760,11 +773,6 @@ typedef struct TemporalCorePollerBehavior {
760
773
  const struct TemporalCorePollerBehaviorAutoscaling *autoscaling;
761
774
  } TemporalCorePollerBehavior;
762
775
 
763
- typedef struct TemporalCoreByteArrayRefArray {
764
- const struct TemporalCoreByteArrayRef *data;
765
- size_t size;
766
- } TemporalCoreByteArrayRefArray;
767
-
768
776
  typedef struct TemporalCoreWorkerOptions {
769
777
  struct TemporalCoreByteArrayRef namespace_;
770
778
  struct TemporalCoreByteArrayRef task_queue;
@@ -826,16 +834,19 @@ void temporal_core_cancellation_token_free(struct TemporalCoreCancellationToken
826
834
  * callback.
827
835
  */
828
836
  void temporal_core_client_connect(struct TemporalCoreRuntime *runtime,
829
- const struct TemporalCoreClientOptions *options,
837
+ const struct TemporalCoreConnectionOptions *options,
830
838
  void *user_data,
831
839
  TemporalCoreClientConnectCallback callback);
832
840
 
833
- void temporal_core_client_free(struct TemporalCoreClient *client);
841
+ void temporal_core_client_free(struct TemporalCoreConnection *client);
842
+
843
+ void temporal_core_client_update_metadata(struct TemporalCoreConnection *client,
844
+ TemporalCoreMetadataRef metadata);
834
845
 
835
- void temporal_core_client_update_metadata(struct TemporalCoreClient *client,
836
- struct TemporalCoreByteArrayRef metadata);
846
+ void temporal_core_client_update_binary_metadata(struct TemporalCoreConnection *client,
847
+ TemporalCoreMetadataRef metadata);
837
848
 
838
- void temporal_core_client_update_api_key(struct TemporalCoreClient *client,
849
+ void temporal_core_client_update_api_key(struct TemporalCoreConnection *client,
839
850
  struct TemporalCoreByteArrayRef api_key);
840
851
 
841
852
  /**
@@ -878,7 +889,7 @@ void temporal_core_client_grpc_override_request_respond(struct TemporalCoreClien
878
889
  /**
879
890
  * Client, options, and user data must live through callback.
880
891
  */
881
- void temporal_core_client_rpc_call(struct TemporalCoreClient *client,
892
+ void temporal_core_client_rpc_call(struct TemporalCoreConnection *client,
882
893
  const struct TemporalCoreRpcCallOptions *options,
883
894
  void *user_data,
884
895
  TemporalCoreClientRpcCallCallback callback);
@@ -985,7 +996,7 @@ void temporal_core_ephemeral_server_shutdown(struct TemporalCoreEphemeralServer
985
996
  void *user_data,
986
997
  TemporalCoreEphemeralServerShutdownCallback callback);
987
998
 
988
- struct TemporalCoreWorkerOrFail temporal_core_worker_new(struct TemporalCoreClient *client,
999
+ struct TemporalCoreWorkerOrFail temporal_core_worker_new(struct TemporalCoreConnection *connection,
989
1000
  const struct TemporalCoreWorkerOptions *options);
990
1001
 
991
1002
  void temporal_core_worker_free(struct TemporalCoreWorker *worker);
@@ -995,7 +1006,7 @@ void temporal_core_worker_validate(struct TemporalCoreWorker *worker,
995
1006
  TemporalCoreWorkerCallback callback);
996
1007
 
997
1008
  const struct TemporalCoreByteArray *temporal_core_worker_replace_client(struct TemporalCoreWorker *worker,
998
- struct TemporalCoreClient *new_client);
1009
+ struct TemporalCoreConnection *new_connection);
999
1010
 
1000
1011
  void temporal_core_worker_poll_workflow_activation(struct TemporalCoreWorker *worker,
1001
1012
  void *user_data,