tasker-rb 0.1.1

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 (78) hide show
  1. checksums.yaml +7 -0
  2. data/DEVELOPMENT.md +548 -0
  3. data/README.md +87 -0
  4. data/ext/tasker_core/Cargo.lock +4720 -0
  5. data/ext/tasker_core/Cargo.toml +76 -0
  6. data/ext/tasker_core/extconf.rb +38 -0
  7. data/ext/tasker_core/src/CLAUDE.md +7 -0
  8. data/ext/tasker_core/src/bootstrap.rs +320 -0
  9. data/ext/tasker_core/src/bridge.rs +400 -0
  10. data/ext/tasker_core/src/client_ffi.rs +173 -0
  11. data/ext/tasker_core/src/conversions.rs +131 -0
  12. data/ext/tasker_core/src/diagnostics.rs +57 -0
  13. data/ext/tasker_core/src/event_handler.rs +179 -0
  14. data/ext/tasker_core/src/event_publisher_ffi.rs +239 -0
  15. data/ext/tasker_core/src/ffi_logging.rs +245 -0
  16. data/ext/tasker_core/src/global_event_system.rs +16 -0
  17. data/ext/tasker_core/src/in_process_event_ffi.rs +319 -0
  18. data/ext/tasker_core/src/lib.rs +41 -0
  19. data/ext/tasker_core/src/observability_ffi.rs +339 -0
  20. data/lib/tasker_core/batch_processing/batch_aggregation_scenario.rb +85 -0
  21. data/lib/tasker_core/batch_processing/batch_worker_context.rb +238 -0
  22. data/lib/tasker_core/bootstrap.rb +394 -0
  23. data/lib/tasker_core/domain_events/base_publisher.rb +220 -0
  24. data/lib/tasker_core/domain_events/base_subscriber.rb +178 -0
  25. data/lib/tasker_core/domain_events/publisher_registry.rb +253 -0
  26. data/lib/tasker_core/domain_events/subscriber_registry.rb +152 -0
  27. data/lib/tasker_core/domain_events.rb +43 -0
  28. data/lib/tasker_core/errors/CLAUDE.md +7 -0
  29. data/lib/tasker_core/errors/common.rb +305 -0
  30. data/lib/tasker_core/errors/error_classifier.rb +61 -0
  31. data/lib/tasker_core/errors.rb +4 -0
  32. data/lib/tasker_core/event_bridge.rb +330 -0
  33. data/lib/tasker_core/handlers.rb +159 -0
  34. data/lib/tasker_core/internal.rb +31 -0
  35. data/lib/tasker_core/logger.rb +234 -0
  36. data/lib/tasker_core/models.rb +337 -0
  37. data/lib/tasker_core/observability/types.rb +158 -0
  38. data/lib/tasker_core/observability.rb +292 -0
  39. data/lib/tasker_core/registry/handler_registry.rb +453 -0
  40. data/lib/tasker_core/registry/resolver_chain.rb +258 -0
  41. data/lib/tasker_core/registry/resolvers/base_resolver.rb +90 -0
  42. data/lib/tasker_core/registry/resolvers/class_constant_resolver.rb +156 -0
  43. data/lib/tasker_core/registry/resolvers/explicit_mapping_resolver.rb +146 -0
  44. data/lib/tasker_core/registry/resolvers/method_dispatch_wrapper.rb +144 -0
  45. data/lib/tasker_core/registry/resolvers/registry_resolver.rb +229 -0
  46. data/lib/tasker_core/registry/resolvers.rb +42 -0
  47. data/lib/tasker_core/registry.rb +12 -0
  48. data/lib/tasker_core/step_handler/api.rb +48 -0
  49. data/lib/tasker_core/step_handler/base.rb +354 -0
  50. data/lib/tasker_core/step_handler/batchable.rb +50 -0
  51. data/lib/tasker_core/step_handler/decision.rb +53 -0
  52. data/lib/tasker_core/step_handler/mixins/api.rb +452 -0
  53. data/lib/tasker_core/step_handler/mixins/batchable.rb +465 -0
  54. data/lib/tasker_core/step_handler/mixins/decision.rb +252 -0
  55. data/lib/tasker_core/step_handler/mixins.rb +66 -0
  56. data/lib/tasker_core/subscriber.rb +212 -0
  57. data/lib/tasker_core/task_handler/base.rb +254 -0
  58. data/lib/tasker_core/tasker_rb.so +0 -0
  59. data/lib/tasker_core/template_discovery.rb +181 -0
  60. data/lib/tasker_core/tracing.rb +166 -0
  61. data/lib/tasker_core/types/batch_processing_outcome.rb +301 -0
  62. data/lib/tasker_core/types/client_types.rb +145 -0
  63. data/lib/tasker_core/types/decision_point_outcome.rb +177 -0
  64. data/lib/tasker_core/types/error_types.rb +72 -0
  65. data/lib/tasker_core/types/simple_message.rb +151 -0
  66. data/lib/tasker_core/types/step_context.rb +328 -0
  67. data/lib/tasker_core/types/step_handler_call_result.rb +307 -0
  68. data/lib/tasker_core/types/step_message.rb +112 -0
  69. data/lib/tasker_core/types/step_types.rb +207 -0
  70. data/lib/tasker_core/types/task_template.rb +240 -0
  71. data/lib/tasker_core/types/task_types.rb +148 -0
  72. data/lib/tasker_core/types.rb +132 -0
  73. data/lib/tasker_core/version.rb +13 -0
  74. data/lib/tasker_core/worker/CLAUDE.md +7 -0
  75. data/lib/tasker_core/worker/event_poller.rb +224 -0
  76. data/lib/tasker_core/worker/in_process_domain_event_poller.rb +271 -0
  77. data/lib/tasker_core.rb +160 -0
  78. metadata +322 -0
metadata ADDED
@@ -0,0 +1,322 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tasker-rb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Pete Taylor
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rb_sys
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 0.9.39
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.9.39
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '8.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '8.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: json-schema
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.4'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 2.4.0
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '2.4'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 2.4.0
60
+ - !ruby/object:Gem::Dependency
61
+ name: logger
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '1.6'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.6'
74
+ - !ruby/object:Gem::Dependency
75
+ name: dry-events
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.1'
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.1'
88
+ - !ruby/object:Gem::Dependency
89
+ name: dry-struct
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '1.8'
95
+ type: :runtime
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.8'
102
+ - !ruby/object:Gem::Dependency
103
+ name: dry-types
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.8'
109
+ type: :runtime
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.8'
116
+ - !ruby/object:Gem::Dependency
117
+ name: dry-validation
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.10'
123
+ type: :runtime
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '1.10'
130
+ - !ruby/object:Gem::Dependency
131
+ name: dotenv
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.8'
137
+ type: :runtime
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '2.8'
144
+ - !ruby/object:Gem::Dependency
145
+ name: faraday
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: 2.12.2
151
+ type: :runtime
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: 2.12.2
158
+ - !ruby/object:Gem::Dependency
159
+ name: csv
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3.3'
165
+ type: :runtime
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '3.3'
172
+ - !ruby/object:Gem::Dependency
173
+ name: concurrent-ruby
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 1.3.5
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 1.3.5
186
+ - !ruby/object:Gem::Dependency
187
+ name: concurrent-ruby-ext
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: 1.3.5
193
+ type: :runtime
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: 1.3.5
200
+ description: |
201
+ Ruby FFI bindings for tasker-core, providing 10-100x performance improvements
202
+ for workflow orchestration, dependency resolution, and state management.
203
+
204
+ This gem enables Rails applications using the Tasker engine to leverage
205
+ Rust's performance for computationally intensive orchestration operations
206
+ while maintaining Ruby's flexibility for business logic.
207
+ email:
208
+ - pete.jc.taylor@hey.com
209
+ executables: []
210
+ extensions:
211
+ - ext/tasker_core/extconf.rb
212
+ extra_rdoc_files: []
213
+ files:
214
+ - DEVELOPMENT.md
215
+ - README.md
216
+ - ext/tasker_core/Cargo.lock
217
+ - ext/tasker_core/Cargo.toml
218
+ - ext/tasker_core/extconf.rb
219
+ - ext/tasker_core/src/CLAUDE.md
220
+ - ext/tasker_core/src/bootstrap.rs
221
+ - ext/tasker_core/src/bridge.rs
222
+ - ext/tasker_core/src/client_ffi.rs
223
+ - ext/tasker_core/src/conversions.rs
224
+ - ext/tasker_core/src/diagnostics.rs
225
+ - ext/tasker_core/src/event_handler.rs
226
+ - ext/tasker_core/src/event_publisher_ffi.rs
227
+ - ext/tasker_core/src/ffi_logging.rs
228
+ - ext/tasker_core/src/global_event_system.rs
229
+ - ext/tasker_core/src/in_process_event_ffi.rs
230
+ - ext/tasker_core/src/lib.rs
231
+ - ext/tasker_core/src/observability_ffi.rs
232
+ - lib/tasker_core.rb
233
+ - lib/tasker_core/batch_processing/batch_aggregation_scenario.rb
234
+ - lib/tasker_core/batch_processing/batch_worker_context.rb
235
+ - lib/tasker_core/bootstrap.rb
236
+ - lib/tasker_core/domain_events.rb
237
+ - lib/tasker_core/domain_events/base_publisher.rb
238
+ - lib/tasker_core/domain_events/base_subscriber.rb
239
+ - lib/tasker_core/domain_events/publisher_registry.rb
240
+ - lib/tasker_core/domain_events/subscriber_registry.rb
241
+ - lib/tasker_core/errors.rb
242
+ - lib/tasker_core/errors/CLAUDE.md
243
+ - lib/tasker_core/errors/common.rb
244
+ - lib/tasker_core/errors/error_classifier.rb
245
+ - lib/tasker_core/event_bridge.rb
246
+ - lib/tasker_core/handlers.rb
247
+ - lib/tasker_core/internal.rb
248
+ - lib/tasker_core/logger.rb
249
+ - lib/tasker_core/models.rb
250
+ - lib/tasker_core/observability.rb
251
+ - lib/tasker_core/observability/types.rb
252
+ - lib/tasker_core/registry.rb
253
+ - lib/tasker_core/registry/handler_registry.rb
254
+ - lib/tasker_core/registry/resolver_chain.rb
255
+ - lib/tasker_core/registry/resolvers.rb
256
+ - lib/tasker_core/registry/resolvers/base_resolver.rb
257
+ - lib/tasker_core/registry/resolvers/class_constant_resolver.rb
258
+ - lib/tasker_core/registry/resolvers/explicit_mapping_resolver.rb
259
+ - lib/tasker_core/registry/resolvers/method_dispatch_wrapper.rb
260
+ - lib/tasker_core/registry/resolvers/registry_resolver.rb
261
+ - lib/tasker_core/step_handler/api.rb
262
+ - lib/tasker_core/step_handler/base.rb
263
+ - lib/tasker_core/step_handler/batchable.rb
264
+ - lib/tasker_core/step_handler/decision.rb
265
+ - lib/tasker_core/step_handler/mixins.rb
266
+ - lib/tasker_core/step_handler/mixins/api.rb
267
+ - lib/tasker_core/step_handler/mixins/batchable.rb
268
+ - lib/tasker_core/step_handler/mixins/decision.rb
269
+ - lib/tasker_core/subscriber.rb
270
+ - lib/tasker_core/task_handler/base.rb
271
+ - lib/tasker_core/tasker_rb.so
272
+ - lib/tasker_core/template_discovery.rb
273
+ - lib/tasker_core/tracing.rb
274
+ - lib/tasker_core/types.rb
275
+ - lib/tasker_core/types/batch_processing_outcome.rb
276
+ - lib/tasker_core/types/client_types.rb
277
+ - lib/tasker_core/types/decision_point_outcome.rb
278
+ - lib/tasker_core/types/error_types.rb
279
+ - lib/tasker_core/types/simple_message.rb
280
+ - lib/tasker_core/types/step_context.rb
281
+ - lib/tasker_core/types/step_handler_call_result.rb
282
+ - lib/tasker_core/types/step_message.rb
283
+ - lib/tasker_core/types/step_types.rb
284
+ - lib/tasker_core/types/task_template.rb
285
+ - lib/tasker_core/types/task_types.rb
286
+ - lib/tasker_core/version.rb
287
+ - lib/tasker_core/worker/CLAUDE.md
288
+ - lib/tasker_core/worker/event_poller.rb
289
+ - lib/tasker_core/worker/in_process_domain_event_poller.rb
290
+ homepage: https://github.com/tasker-systems/tasker-core
291
+ licenses:
292
+ - MIT
293
+ metadata:
294
+ homepage_uri: https://github.com/tasker-systems/tasker-core
295
+ source_code_uri: https://github.com/tasker-systems/tasker-core/tree/main/workers/ruby
296
+ changelog_uri: https://github.com/tasker-systems/tasker-core/blob/main/workers/ruby/CHANGELOG.md
297
+ documentation_uri: https://github.com/tasker-systems/tasker-core/blob/main/docs/RUBY.md
298
+ bug_tracker_uri: https://github.com/tasker-systems/tasker-core/issues
299
+ allowed_push_host: https://rubygems.org
300
+ rubygems_mfa_required: 'true'
301
+ post_install_message: "\n\U0001F980 tasker-rb successfully installed!\n\nThis gem
302
+ provides high-performance Rust-powered workflow orchestration.\n\nDocumentation:
303
+ https://github.com/tasker-systems/tasker-core/blob/main/docs/workers/ruby.md\n\nFor
304
+ Rails integration, see the tasker-engine gem documentation.\n\n"
305
+ rdoc_options: []
306
+ require_paths:
307
+ - lib
308
+ required_ruby_version: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ version: 3.4.0
313
+ required_rubygems_version: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - ">="
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
318
+ requirements: []
319
+ rubygems_version: 3.6.9
320
+ specification_version: 4
321
+ summary: High-performance Ruby bindings for Tasker workflow orchestration
322
+ test_files: []