solid_objects 0.1.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 (178) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +17 -0
  3. data/MIT-LICENSE +19 -0
  4. data/README.md +744 -0
  5. data/Rakefile +40 -0
  6. data/app/controllers/solid_objects/application_controller.rb +23 -0
  7. data/app/controllers/solid_objects/dead_letters_controller.rb +23 -0
  8. data/app/controllers/solid_objects/instances_controller.rb +29 -0
  9. data/app/helpers/solid_objects/actor_helper.rb +25 -0
  10. data/app/models/solid_objects/broadcast.rb +10 -0
  11. data/app/models/solid_objects/claimed_message.rb +14 -0
  12. data/app/models/solid_objects/dead_letter.rb +13 -0
  13. data/app/models/solid_objects/effect.rb +10 -0
  14. data/app/models/solid_objects/instance.rb +93 -0
  15. data/app/models/solid_objects/message.rb +53 -0
  16. data/app/models/solid_objects/process.rb +13 -0
  17. data/app/models/solid_objects/ready_message.rb +10 -0
  18. data/app/models/solid_objects/record.rb +17 -0
  19. data/app/models/solid_objects/reminder.rb +9 -0
  20. data/app/views/solid_objects/dead_letters/index.html.erb +26 -0
  21. data/app/views/solid_objects/instances/index.html.erb +24 -0
  22. data/app/views/solid_objects/instances/show.html.erb +35 -0
  23. data/benchmark/activation_cache.rb +5 -0
  24. data/benchmark/ask_latency.rb +5 -0
  25. data/benchmark/claim.rb +5 -0
  26. data/benchmark/cold_actors.rb +5 -0
  27. data/benchmark/concurrent_actors.rb +5 -0
  28. data/benchmark/enqueue.rb +5 -0
  29. data/benchmark/hot_actor.rb +5 -0
  30. data/benchmark/processing.rb +5 -0
  31. data/benchmark/query_count.rb +5 -0
  32. data/benchmark/support.rb +271 -0
  33. data/config/routes.rb +8 -0
  34. data/db/migrate/20260805000000_create_solid_objects_tables.rb +319 -0
  35. data/docs/adr/0001-postgresql-backend.md +21 -0
  36. data/docs/adr/0002-jsonb-actor-state.md +21 -0
  37. data/docs/adr/0003-mailbox-ordering.md +30 -0
  38. data/docs/adr/0004-activation-leasing.md +21 -0
  39. data/docs/adr/0005-fencing-tokens.md +25 -0
  40. data/docs/adr/0006-at-least-once-delivery.md +24 -0
  41. data/docs/adr/0007-transactional-outbox.md +21 -0
  42. data/docs/adr/0008-actor-communication.md +21 -0
  43. data/docs/adr/0009-realtime-updates.md +21 -0
  44. data/docs/adr/0010-state-versioning.md +29 -0
  45. data/docs/adr/0011-wake-up-strategy.md +34 -0
  46. data/docs/adr/0012-not-active-jobs.md +21 -0
  47. data/docs/adr/0013-database-adapters.md +48 -0
  48. data/docs/architecture.md +615 -0
  49. data/docs/benchmarks.md +26 -0
  50. data/docs/correctness.md +124 -0
  51. data/docs/database-schema.md +111 -0
  52. data/docs/development.md +87 -0
  53. data/docs/implementation-plan.md +518 -0
  54. data/docs/operations.md +123 -0
  55. data/docs/realtime.md +51 -0
  56. data/docs/research/solid_queue.md +545 -0
  57. data/docs/roadmap.md +53 -0
  58. data/docs/security.md +61 -0
  59. data/docs/state-migrations.md +46 -0
  60. data/examples/application/README.md +16 -0
  61. data/examples/application/app/actors/chat_room_actor.rb +34 -0
  62. data/examples/application/app/actors/shopping_cart_actor.rb +79 -0
  63. data/examples/application/app/controllers/cart_controller.rb +54 -0
  64. data/examples/application/app/controllers/chat_rooms_controller.rb +44 -0
  65. data/examples/application/app/views/actors/chat_room_actor/_messages.html.erb +8 -0
  66. data/examples/application/app/views/actors/shopping_cart_actor/_summary.html.erb +10 -0
  67. data/examples/application/app/views/cart/show.html.erb +13 -0
  68. data/examples/application/app/views/chat_rooms/show.html.erb +8 -0
  69. data/examples/application/config/initializers/solid_objects.rb +23 -0
  70. data/examples/application/config/routes.rb +20 -0
  71. data/exe/solid_objects +9 -0
  72. data/lib/generators/solid_objects/install_generator.rb +21 -0
  73. data/lib/generators/solid_objects/templates/solid_objects.rb +13 -0
  74. data/lib/solid_objects/action_cable_broadcast_adapter.rb +19 -0
  75. data/lib/solid_objects/activation.rb +183 -0
  76. data/lib/solid_objects/activation_manager.rb +102 -0
  77. data/lib/solid_objects/actor.rb +271 -0
  78. data/lib/solid_objects/actor_channel.rb +29 -0
  79. data/lib/solid_objects/actor_definition.rb +212 -0
  80. data/lib/solid_objects/actor_registry.rb +65 -0
  81. data/lib/solid_objects/actor_snapshot.rb +42 -0
  82. data/lib/solid_objects/actor_view.rb +117 -0
  83. data/lib/solid_objects/broadcast_executor.rb +162 -0
  84. data/lib/solid_objects/cli.rb +118 -0
  85. data/lib/solid_objects/client.rb +153 -0
  86. data/lib/solid_objects/configuration.rb +168 -0
  87. data/lib/solid_objects/context.rb +41 -0
  88. data/lib/solid_objects/database_adapter.rb +82 -0
  89. data/lib/solid_objects/database_adapters/mysql.rb +22 -0
  90. data/lib/solid_objects/database_adapters/postgresql.rb +17 -0
  91. data/lib/solid_objects/database_adapters/sqlite.rb +12 -0
  92. data/lib/solid_objects/dead_letter_manager.rb +47 -0
  93. data/lib/solid_objects/dom_identity.rb +38 -0
  94. data/lib/solid_objects/effect_executor.rb +235 -0
  95. data/lib/solid_objects/effect_registry.rb +34 -0
  96. data/lib/solid_objects/engine.rb +33 -0
  97. data/lib/solid_objects/errors.rb +65 -0
  98. data/lib/solid_objects/executor.rb +290 -0
  99. data/lib/solid_objects/instrumentation.rb +10 -0
  100. data/lib/solid_objects/lease.rb +172 -0
  101. data/lib/solid_objects/lease_renewer.rb +70 -0
  102. data/lib/solid_objects/log_subscriber.rb +29 -0
  103. data/lib/solid_objects/mailbox.rb +178 -0
  104. data/lib/solid_objects/message_reference.rb +52 -0
  105. data/lib/solid_objects/process_registry.rb +143 -0
  106. data/lib/solid_objects/reference.rb +96 -0
  107. data/lib/solid_objects/reminder_scheduler.rb +168 -0
  108. data/lib/solid_objects/serialization.rb +99 -0
  109. data/lib/solid_objects/state.rb +111 -0
  110. data/lib/solid_objects/stream_name.rb +29 -0
  111. data/lib/solid_objects/stream_token.rb +59 -0
  112. data/lib/solid_objects/supervisor.rb +87 -0
  113. data/lib/solid_objects/turbo_stream_renderer.rb +35 -0
  114. data/lib/solid_objects/version.rb +5 -0
  115. data/lib/solid_objects/wake_up.rb +28 -0
  116. data/lib/solid_objects/worker.rb +139 -0
  117. data/lib/solid_objects.rb +118 -0
  118. data/sig/generated/controllers/solid_objects/application_controller.rbs +10 -0
  119. data/sig/generated/controllers/solid_objects/dead_letters_controller.rbs +11 -0
  120. data/sig/generated/controllers/solid_objects/instances_controller.rbs +11 -0
  121. data/sig/generated/helpers/solid_objects/actor_helper.rbs +8 -0
  122. data/sig/generated/lib/generators/solid_objects/install_generator.rbs +13 -0
  123. data/sig/generated/lib/solid_objects/action_cable_broadcast_adapter.rbs +8 -0
  124. data/sig/generated/lib/solid_objects/activation.rbs +65 -0
  125. data/sig/generated/lib/solid_objects/activation_manager.rbs +36 -0
  126. data/sig/generated/lib/solid_objects/actor.rbs +183 -0
  127. data/sig/generated/lib/solid_objects/actor_channel.rbs +8 -0
  128. data/sig/generated/lib/solid_objects/actor_definition.rbs +117 -0
  129. data/sig/generated/lib/solid_objects/actor_registry.rbs +36 -0
  130. data/sig/generated/lib/solid_objects/actor_snapshot.rbs +28 -0
  131. data/sig/generated/lib/solid_objects/actor_view.rbs +56 -0
  132. data/sig/generated/lib/solid_objects/broadcast_executor.rbs +55 -0
  133. data/sig/generated/lib/solid_objects/cli.rbs +31 -0
  134. data/sig/generated/lib/solid_objects/client.rbs +35 -0
  135. data/sig/generated/lib/solid_objects/configuration.rbs +147 -0
  136. data/sig/generated/lib/solid_objects/context.rbs +56 -0
  137. data/sig/generated/lib/solid_objects/database_adapter.rbs +42 -0
  138. data/sig/generated/lib/solid_objects/database_adapters/mysql.rbs +16 -0
  139. data/sig/generated/lib/solid_objects/database_adapters/postgresql.rbs +13 -0
  140. data/sig/generated/lib/solid_objects/database_adapters/sqlite.rbs +10 -0
  141. data/sig/generated/lib/solid_objects/dead_letter_manager.rbs +16 -0
  142. data/sig/generated/lib/solid_objects/dom_identity.rbs +20 -0
  143. data/sig/generated/lib/solid_objects/effect_executor.rbs +82 -0
  144. data/sig/generated/lib/solid_objects/effect_registry.rbs +24 -0
  145. data/sig/generated/lib/solid_objects/engine.rbs +7 -0
  146. data/sig/generated/lib/solid_objects/errors.rbs +64 -0
  147. data/sig/generated/lib/solid_objects/executor.rbs +60 -0
  148. data/sig/generated/lib/solid_objects/instrumentation.rbs +8 -0
  149. data/sig/generated/lib/solid_objects/lease.rbs +57 -0
  150. data/sig/generated/lib/solid_objects/lease_renewer.rbs +42 -0
  151. data/sig/generated/lib/solid_objects/log_subscriber.rbs +11 -0
  152. data/sig/generated/lib/solid_objects/mailbox.rbs +46 -0
  153. data/sig/generated/lib/solid_objects/message_reference.rbs +37 -0
  154. data/sig/generated/lib/solid_objects/process_registry.rbs +46 -0
  155. data/sig/generated/lib/solid_objects/reference.rbs +45 -0
  156. data/sig/generated/lib/solid_objects/reminder_scheduler.rbs +55 -0
  157. data/sig/generated/lib/solid_objects/serialization.rbs +31 -0
  158. data/sig/generated/lib/solid_objects/state.rbs +72 -0
  159. data/sig/generated/lib/solid_objects/stream_name.rbs +11 -0
  160. data/sig/generated/lib/solid_objects/stream_token.rbs +19 -0
  161. data/sig/generated/lib/solid_objects/supervisor.rbs +38 -0
  162. data/sig/generated/lib/solid_objects/turbo_stream_renderer.rbs +14 -0
  163. data/sig/generated/lib/solid_objects/version.rbs +5 -0
  164. data/sig/generated/lib/solid_objects/wake_up.rbs +24 -0
  165. data/sig/generated/lib/solid_objects/worker.rbs +56 -0
  166. data/sig/generated/lib/solid_objects.rbs +41 -0
  167. data/sig/generated/models/solid_objects/broadcast.rbs +6 -0
  168. data/sig/generated/models/solid_objects/claimed_message.rbs +6 -0
  169. data/sig/generated/models/solid_objects/dead_letter.rbs +6 -0
  170. data/sig/generated/models/solid_objects/effect.rbs +6 -0
  171. data/sig/generated/models/solid_objects/instance.rbs +25 -0
  172. data/sig/generated/models/solid_objects/message.rbs +22 -0
  173. data/sig/generated/models/solid_objects/process.rbs +6 -0
  174. data/sig/generated/models/solid_objects/ready_message.rbs +6 -0
  175. data/sig/generated/models/solid_objects/record.rbs +8 -0
  176. data/sig/generated/models/solid_objects/reminder.rbs +6 -0
  177. data/sig/support/framework.rbs +37 -0
  178. metadata +467 -0
metadata ADDED
@@ -0,0 +1,467 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solid_objects
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Lucas Carlson
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-08-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actioncable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '8.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '8.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actionpack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '8.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '8.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: actionview
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '8.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '8.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activerecord
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '8.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '8.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '8.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '8.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: railties
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '8.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '8.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: thor
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '1.3'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '1.3'
111
+ - !ruby/object:Gem::Dependency
112
+ name: benchmark
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: brakeman
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: minitest
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mysql2
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0.5'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0.5'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pg
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '1.5'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '1.5'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rbs-inline
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-rails-omakase
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: sqlite3
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '2.1'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '2.1'
223
+ - !ruby/object:Gem::Dependency
224
+ name: standard
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: steep
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ description: 'The Cloudflare Durable Objects programming model for Rails: addressable
252
+ objects with durable state, ordered mailboxes, fenced activation, per-object alarms,
253
+ transactional effects, and reactive ERB. It runs on MySQL, PostgreSQL, and SQLite
254
+ without requiring Redis.'
255
+ email:
256
+ executables:
257
+ - solid_objects
258
+ extensions: []
259
+ extra_rdoc_files: []
260
+ files:
261
+ - CHANGELOG.md
262
+ - MIT-LICENSE
263
+ - README.md
264
+ - Rakefile
265
+ - app/controllers/solid_objects/application_controller.rb
266
+ - app/controllers/solid_objects/dead_letters_controller.rb
267
+ - app/controllers/solid_objects/instances_controller.rb
268
+ - app/helpers/solid_objects/actor_helper.rb
269
+ - app/models/solid_objects/broadcast.rb
270
+ - app/models/solid_objects/claimed_message.rb
271
+ - app/models/solid_objects/dead_letter.rb
272
+ - app/models/solid_objects/effect.rb
273
+ - app/models/solid_objects/instance.rb
274
+ - app/models/solid_objects/message.rb
275
+ - app/models/solid_objects/process.rb
276
+ - app/models/solid_objects/ready_message.rb
277
+ - app/models/solid_objects/record.rb
278
+ - app/models/solid_objects/reminder.rb
279
+ - app/views/solid_objects/dead_letters/index.html.erb
280
+ - app/views/solid_objects/instances/index.html.erb
281
+ - app/views/solid_objects/instances/show.html.erb
282
+ - benchmark/activation_cache.rb
283
+ - benchmark/ask_latency.rb
284
+ - benchmark/claim.rb
285
+ - benchmark/cold_actors.rb
286
+ - benchmark/concurrent_actors.rb
287
+ - benchmark/enqueue.rb
288
+ - benchmark/hot_actor.rb
289
+ - benchmark/processing.rb
290
+ - benchmark/query_count.rb
291
+ - benchmark/support.rb
292
+ - config/routes.rb
293
+ - db/migrate/20260805000000_create_solid_objects_tables.rb
294
+ - docs/adr/0001-postgresql-backend.md
295
+ - docs/adr/0002-jsonb-actor-state.md
296
+ - docs/adr/0003-mailbox-ordering.md
297
+ - docs/adr/0004-activation-leasing.md
298
+ - docs/adr/0005-fencing-tokens.md
299
+ - docs/adr/0006-at-least-once-delivery.md
300
+ - docs/adr/0007-transactional-outbox.md
301
+ - docs/adr/0008-actor-communication.md
302
+ - docs/adr/0009-realtime-updates.md
303
+ - docs/adr/0010-state-versioning.md
304
+ - docs/adr/0011-wake-up-strategy.md
305
+ - docs/adr/0012-not-active-jobs.md
306
+ - docs/adr/0013-database-adapters.md
307
+ - docs/architecture.md
308
+ - docs/benchmarks.md
309
+ - docs/correctness.md
310
+ - docs/database-schema.md
311
+ - docs/development.md
312
+ - docs/implementation-plan.md
313
+ - docs/operations.md
314
+ - docs/realtime.md
315
+ - docs/research/solid_queue.md
316
+ - docs/roadmap.md
317
+ - docs/security.md
318
+ - docs/state-migrations.md
319
+ - examples/application/README.md
320
+ - examples/application/app/actors/chat_room_actor.rb
321
+ - examples/application/app/actors/shopping_cart_actor.rb
322
+ - examples/application/app/controllers/cart_controller.rb
323
+ - examples/application/app/controllers/chat_rooms_controller.rb
324
+ - examples/application/app/views/actors/chat_room_actor/_messages.html.erb
325
+ - examples/application/app/views/actors/shopping_cart_actor/_summary.html.erb
326
+ - examples/application/app/views/cart/show.html.erb
327
+ - examples/application/app/views/chat_rooms/show.html.erb
328
+ - examples/application/config/initializers/solid_objects.rb
329
+ - examples/application/config/routes.rb
330
+ - exe/solid_objects
331
+ - lib/generators/solid_objects/install_generator.rb
332
+ - lib/generators/solid_objects/templates/solid_objects.rb
333
+ - lib/solid_objects.rb
334
+ - lib/solid_objects/action_cable_broadcast_adapter.rb
335
+ - lib/solid_objects/activation.rb
336
+ - lib/solid_objects/activation_manager.rb
337
+ - lib/solid_objects/actor.rb
338
+ - lib/solid_objects/actor_channel.rb
339
+ - lib/solid_objects/actor_definition.rb
340
+ - lib/solid_objects/actor_registry.rb
341
+ - lib/solid_objects/actor_snapshot.rb
342
+ - lib/solid_objects/actor_view.rb
343
+ - lib/solid_objects/broadcast_executor.rb
344
+ - lib/solid_objects/cli.rb
345
+ - lib/solid_objects/client.rb
346
+ - lib/solid_objects/configuration.rb
347
+ - lib/solid_objects/context.rb
348
+ - lib/solid_objects/database_adapter.rb
349
+ - lib/solid_objects/database_adapters/mysql.rb
350
+ - lib/solid_objects/database_adapters/postgresql.rb
351
+ - lib/solid_objects/database_adapters/sqlite.rb
352
+ - lib/solid_objects/dead_letter_manager.rb
353
+ - lib/solid_objects/dom_identity.rb
354
+ - lib/solid_objects/effect_executor.rb
355
+ - lib/solid_objects/effect_registry.rb
356
+ - lib/solid_objects/engine.rb
357
+ - lib/solid_objects/errors.rb
358
+ - lib/solid_objects/executor.rb
359
+ - lib/solid_objects/instrumentation.rb
360
+ - lib/solid_objects/lease.rb
361
+ - lib/solid_objects/lease_renewer.rb
362
+ - lib/solid_objects/log_subscriber.rb
363
+ - lib/solid_objects/mailbox.rb
364
+ - lib/solid_objects/message_reference.rb
365
+ - lib/solid_objects/process_registry.rb
366
+ - lib/solid_objects/reference.rb
367
+ - lib/solid_objects/reminder_scheduler.rb
368
+ - lib/solid_objects/serialization.rb
369
+ - lib/solid_objects/state.rb
370
+ - lib/solid_objects/stream_name.rb
371
+ - lib/solid_objects/stream_token.rb
372
+ - lib/solid_objects/supervisor.rb
373
+ - lib/solid_objects/turbo_stream_renderer.rb
374
+ - lib/solid_objects/version.rb
375
+ - lib/solid_objects/wake_up.rb
376
+ - lib/solid_objects/worker.rb
377
+ - sig/generated/controllers/solid_objects/application_controller.rbs
378
+ - sig/generated/controllers/solid_objects/dead_letters_controller.rbs
379
+ - sig/generated/controllers/solid_objects/instances_controller.rbs
380
+ - sig/generated/helpers/solid_objects/actor_helper.rbs
381
+ - sig/generated/lib/generators/solid_objects/install_generator.rbs
382
+ - sig/generated/lib/solid_objects.rbs
383
+ - sig/generated/lib/solid_objects/action_cable_broadcast_adapter.rbs
384
+ - sig/generated/lib/solid_objects/activation.rbs
385
+ - sig/generated/lib/solid_objects/activation_manager.rbs
386
+ - sig/generated/lib/solid_objects/actor.rbs
387
+ - sig/generated/lib/solid_objects/actor_channel.rbs
388
+ - sig/generated/lib/solid_objects/actor_definition.rbs
389
+ - sig/generated/lib/solid_objects/actor_registry.rbs
390
+ - sig/generated/lib/solid_objects/actor_snapshot.rbs
391
+ - sig/generated/lib/solid_objects/actor_view.rbs
392
+ - sig/generated/lib/solid_objects/broadcast_executor.rbs
393
+ - sig/generated/lib/solid_objects/cli.rbs
394
+ - sig/generated/lib/solid_objects/client.rbs
395
+ - sig/generated/lib/solid_objects/configuration.rbs
396
+ - sig/generated/lib/solid_objects/context.rbs
397
+ - sig/generated/lib/solid_objects/database_adapter.rbs
398
+ - sig/generated/lib/solid_objects/database_adapters/mysql.rbs
399
+ - sig/generated/lib/solid_objects/database_adapters/postgresql.rbs
400
+ - sig/generated/lib/solid_objects/database_adapters/sqlite.rbs
401
+ - sig/generated/lib/solid_objects/dead_letter_manager.rbs
402
+ - sig/generated/lib/solid_objects/dom_identity.rbs
403
+ - sig/generated/lib/solid_objects/effect_executor.rbs
404
+ - sig/generated/lib/solid_objects/effect_registry.rbs
405
+ - sig/generated/lib/solid_objects/engine.rbs
406
+ - sig/generated/lib/solid_objects/errors.rbs
407
+ - sig/generated/lib/solid_objects/executor.rbs
408
+ - sig/generated/lib/solid_objects/instrumentation.rbs
409
+ - sig/generated/lib/solid_objects/lease.rbs
410
+ - sig/generated/lib/solid_objects/lease_renewer.rbs
411
+ - sig/generated/lib/solid_objects/log_subscriber.rbs
412
+ - sig/generated/lib/solid_objects/mailbox.rbs
413
+ - sig/generated/lib/solid_objects/message_reference.rbs
414
+ - sig/generated/lib/solid_objects/process_registry.rbs
415
+ - sig/generated/lib/solid_objects/reference.rbs
416
+ - sig/generated/lib/solid_objects/reminder_scheduler.rbs
417
+ - sig/generated/lib/solid_objects/serialization.rbs
418
+ - sig/generated/lib/solid_objects/state.rbs
419
+ - sig/generated/lib/solid_objects/stream_name.rbs
420
+ - sig/generated/lib/solid_objects/stream_token.rbs
421
+ - sig/generated/lib/solid_objects/supervisor.rbs
422
+ - sig/generated/lib/solid_objects/turbo_stream_renderer.rbs
423
+ - sig/generated/lib/solid_objects/version.rbs
424
+ - sig/generated/lib/solid_objects/wake_up.rbs
425
+ - sig/generated/lib/solid_objects/worker.rbs
426
+ - sig/generated/models/solid_objects/broadcast.rbs
427
+ - sig/generated/models/solid_objects/claimed_message.rbs
428
+ - sig/generated/models/solid_objects/dead_letter.rbs
429
+ - sig/generated/models/solid_objects/effect.rbs
430
+ - sig/generated/models/solid_objects/instance.rbs
431
+ - sig/generated/models/solid_objects/message.rbs
432
+ - sig/generated/models/solid_objects/process.rbs
433
+ - sig/generated/models/solid_objects/ready_message.rbs
434
+ - sig/generated/models/solid_objects/record.rbs
435
+ - sig/generated/models/solid_objects/reminder.rbs
436
+ - sig/support/framework.rbs
437
+ homepage: https://solidobjects.dev
438
+ licenses:
439
+ - MIT
440
+ metadata:
441
+ allowed_push_host: https://rubygems.org
442
+ bug_tracker_uri: https://github.com/cardmagic/solid_objects/issues
443
+ changelog_uri: https://github.com/cardmagic/solid_objects/blob/main/CHANGELOG.md
444
+ documentation_uri: https://github.com/cardmagic/solid_objects#readme
445
+ homepage_uri: https://solidobjects.dev
446
+ rubygems_mfa_required: 'true'
447
+ source_code_uri: https://github.com/cardmagic/solid_objects
448
+ post_install_message:
449
+ rdoc_options: []
450
+ require_paths:
451
+ - lib
452
+ required_ruby_version: !ruby/object:Gem::Requirement
453
+ requirements:
454
+ - - ">="
455
+ - !ruby/object:Gem::Version
456
+ version: '3.3'
457
+ required_rubygems_version: !ruby/object:Gem::Requirement
458
+ requirements:
459
+ - - ">="
460
+ - !ruby/object:Gem::Version
461
+ version: '0'
462
+ requirements: []
463
+ rubygems_version: 3.5.22
464
+ signing_key:
465
+ specification_version: 4
466
+ summary: Cloudflare Durable Objects, ported to Rails
467
+ test_files: []