breaker_machines 0.5.0 → 0.7.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/ext/breaker_machines_native/Cargo.toml +8 -0
  3. data/ext/breaker_machines_native/core/Cargo.toml +18 -0
  4. data/ext/breaker_machines_native/core/examples/basic.rs +61 -0
  5. data/ext/breaker_machines_native/core/src/builder.rs +232 -0
  6. data/ext/breaker_machines_native/core/src/bulkhead.rs +223 -0
  7. data/ext/breaker_machines_native/core/src/callbacks.rs +58 -0
  8. data/ext/breaker_machines_native/core/src/circuit.rs +1156 -0
  9. data/ext/breaker_machines_native/core/src/classifier.rs +177 -0
  10. data/ext/breaker_machines_native/core/src/errors.rs +47 -0
  11. data/ext/breaker_machines_native/core/src/lib.rs +62 -0
  12. data/ext/breaker_machines_native/core/src/storage.rs +377 -0
  13. data/ext/breaker_machines_native/extconf.rb +3 -0
  14. data/ext/breaker_machines_native/ffi/Cargo.toml +16 -0
  15. data/ext/breaker_machines_native/ffi/extconf.rb +67 -0
  16. data/ext/breaker_machines_native/ffi/src/lib.rs +218 -0
  17. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/common.rs +355 -0
  18. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/dynamic.rs +276 -0
  19. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/macros.rs +49 -0
  20. data/ext/breaker_machines_native/target/debug/build/rb-sys-2bb7281aac8faec8/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs +8936 -0
  21. data/ext/breaker_machines_native/target/debug/build/rb-sys-54cb99ea6aeab8bc/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs +8936 -0
  22. data/ext/breaker_machines_native/target/debug/build/rb-sys-9e64a270c6421e93/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs +8936 -0
  23. data/ext/breaker_machines_native/target/debug/build/rb-sys-e627030114d3fc19/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs +8936 -0
  24. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/Cargo.toml +48 -0
  25. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/examples/basic.rs +61 -0
  26. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/builder.rs +154 -0
  27. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/callbacks.rs +55 -0
  28. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/circuit.rs +607 -0
  29. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/errors.rs +38 -0
  30. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/lib.rs +58 -0
  31. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/storage.rs +377 -0
  32. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/Cargo.toml +48 -0
  33. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/examples/basic.rs +61 -0
  34. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/builder.rs +173 -0
  35. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/callbacks.rs +55 -0
  36. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/circuit.rs +855 -0
  37. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/errors.rs +38 -0
  38. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/lib.rs +58 -0
  39. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/storage.rs +377 -0
  40. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/Cargo.toml +48 -0
  41. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/examples/basic.rs +61 -0
  42. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/builder.rs +154 -0
  43. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/callbacks.rs +55 -0
  44. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/circuit.rs +607 -0
  45. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/errors.rs +38 -0
  46. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/lib.rs +58 -0
  47. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/storage.rs +377 -0
  48. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/Cargo.toml +48 -0
  49. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/examples/basic.rs +61 -0
  50. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/builder.rs +232 -0
  51. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/bulkhead.rs +223 -0
  52. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/callbacks.rs +58 -0
  53. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/circuit.rs +1156 -0
  54. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/classifier.rs +177 -0
  55. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/errors.rs +47 -0
  56. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/lib.rs +62 -0
  57. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/storage.rs +377 -0
  58. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/common.rs +355 -0
  59. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/dynamic.rs +276 -0
  60. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/macros.rs +49 -0
  61. data/ext/breaker_machines_native/target/release/build/rb-sys-064bf9961dd17810/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs +8936 -0
  62. data/lib/breaker_machines/circuit/async_state_management.rb +1 -1
  63. data/lib/breaker_machines/circuit/base.rb +2 -1
  64. data/lib/breaker_machines/circuit/coordinated_state_management.rb +3 -3
  65. data/lib/breaker_machines/circuit/native.rb +127 -0
  66. data/lib/breaker_machines/circuit/state_callbacks.rb +17 -5
  67. data/lib/breaker_machines/circuit/state_management.rb +1 -1
  68. data/lib/breaker_machines/native_extension.rb +44 -0
  69. data/lib/breaker_machines/native_speedup.rb +10 -0
  70. data/lib/breaker_machines/storage/bucket_memory.rb +4 -1
  71. data/lib/breaker_machines/storage/memory.rb +4 -1
  72. data/lib/breaker_machines/storage/native.rb +93 -0
  73. data/lib/breaker_machines/version.rb +1 -1
  74. data/lib/breaker_machines.rb +98 -11
  75. data/sig/breaker_machines.rbs +20 -8
  76. metadata +116 -7
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breaker_machines
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih
@@ -15,14 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.2'
18
+ version: '8.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '7.2'
25
+ version: '8.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: chrono_machines
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.2'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: concurrent-ruby
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -43,14 +57,14 @@ dependencies:
43
57
  requirements:
44
58
  - - ">="
45
59
  - !ruby/object:Gem::Version
46
- version: 0.100.0
60
+ version: 0.100.4
47
61
  type: :runtime
48
62
  prerelease: false
49
63
  version_requirements: !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - ">="
52
66
  - !ruby/object:Gem::Version
53
- version: 0.100.0
67
+ version: 0.100.4
54
68
  - !ruby/object:Gem::Dependency
55
69
  name: zeitwerk
56
70
  requirement: !ruby/object:Gem::Requirement
@@ -65,6 +79,20 @@ dependencies:
65
79
  - - "~>"
66
80
  - !ruby/object:Gem::Version
67
81
  version: '2.7'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rb_sys
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.9'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.9'
68
96
  - !ruby/object:Gem::Dependency
69
97
  name: minitest
70
98
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +121,20 @@ dependencies:
93
121
  - - "~>"
94
122
  - !ruby/object:Gem::Version
95
123
  version: '13.0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rake-compiler
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.3'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '1.3'
96
138
  description: |
97
139
  BreakerMachines is a production-ready circuit breaker implementation for Ruby that prevents
98
140
  cascade failures in distributed systems. Built on the battle-tested state_machines gem, it
@@ -102,11 +144,72 @@ description: |
102
144
  email:
103
145
  - terminale@gmail.com
104
146
  executables: []
105
- extensions: []
147
+ extensions:
148
+ - ext/breaker_machines_native/extconf.rb
106
149
  extra_rdoc_files: []
107
150
  files:
108
151
  - LICENSE.txt
109
152
  - README.md
153
+ - ext/breaker_machines_native/Cargo.toml
154
+ - ext/breaker_machines_native/core/Cargo.toml
155
+ - ext/breaker_machines_native/core/examples/basic.rs
156
+ - ext/breaker_machines_native/core/src/builder.rs
157
+ - ext/breaker_machines_native/core/src/bulkhead.rs
158
+ - ext/breaker_machines_native/core/src/callbacks.rs
159
+ - ext/breaker_machines_native/core/src/circuit.rs
160
+ - ext/breaker_machines_native/core/src/classifier.rs
161
+ - ext/breaker_machines_native/core/src/errors.rs
162
+ - ext/breaker_machines_native/core/src/lib.rs
163
+ - ext/breaker_machines_native/core/src/storage.rs
164
+ - ext/breaker_machines_native/extconf.rb
165
+ - ext/breaker_machines_native/ffi/Cargo.toml
166
+ - ext/breaker_machines_native/ffi/extconf.rb
167
+ - ext/breaker_machines_native/ffi/src/lib.rs
168
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/common.rs
169
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/dynamic.rs
170
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/macros.rs
171
+ - ext/breaker_machines_native/target/debug/build/rb-sys-2bb7281aac8faec8/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
172
+ - ext/breaker_machines_native/target/debug/build/rb-sys-54cb99ea6aeab8bc/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
173
+ - ext/breaker_machines_native/target/debug/build/rb-sys-9e64a270c6421e93/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
174
+ - ext/breaker_machines_native/target/debug/build/rb-sys-e627030114d3fc19/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
175
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/Cargo.toml
176
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/examples/basic.rs
177
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/builder.rs
178
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/callbacks.rs
179
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/circuit.rs
180
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/errors.rs
181
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/lib.rs
182
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/storage.rs
183
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/Cargo.toml
184
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/examples/basic.rs
185
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/builder.rs
186
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/callbacks.rs
187
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/circuit.rs
188
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/errors.rs
189
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/lib.rs
190
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/storage.rs
191
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/Cargo.toml
192
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/examples/basic.rs
193
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/builder.rs
194
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/callbacks.rs
195
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/circuit.rs
196
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/errors.rs
197
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/lib.rs
198
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/storage.rs
199
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/Cargo.toml
200
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/examples/basic.rs
201
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/builder.rs
202
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/bulkhead.rs
203
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/callbacks.rs
204
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/circuit.rs
205
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/classifier.rs
206
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/errors.rs
207
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/lib.rs
208
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/storage.rs
209
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/common.rs
210
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/dynamic.rs
211
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/macros.rs
212
+ - ext/breaker_machines_native/target/release/build/rb-sys-064bf9961dd17810/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
110
213
  - lib/breaker_machines.rb
111
214
  - lib/breaker_machines/async_circuit.rb
112
215
  - lib/breaker_machines/async_support.rb
@@ -120,6 +223,7 @@ files:
120
223
  - lib/breaker_machines/circuit/execution.rb
121
224
  - lib/breaker_machines/circuit/hedged_execution.rb
122
225
  - lib/breaker_machines/circuit/introspection.rb
226
+ - lib/breaker_machines/circuit/native.rb
123
227
  - lib/breaker_machines/circuit/state_callbacks.rb
124
228
  - lib/breaker_machines/circuit/state_management.rb
125
229
  - lib/breaker_machines/circuit_group.rb
@@ -132,6 +236,8 @@ files:
132
236
  - lib/breaker_machines/dsl/parallel_fallback_wrapper.rb
133
237
  - lib/breaker_machines/errors.rb
134
238
  - lib/breaker_machines/hedged_async_support.rb
239
+ - lib/breaker_machines/native_extension.rb
240
+ - lib/breaker_machines/native_speedup.rb
135
241
  - lib/breaker_machines/registry.rb
136
242
  - lib/breaker_machines/storage.rb
137
243
  - lib/breaker_machines/storage/backend_state.rb
@@ -140,6 +246,7 @@ files:
140
246
  - lib/breaker_machines/storage/cache.rb
141
247
  - lib/breaker_machines/storage/fallback_chain.rb
142
248
  - lib/breaker_machines/storage/memory.rb
249
+ - lib/breaker_machines/storage/native.rb
143
250
  - lib/breaker_machines/storage/null.rb
144
251
  - lib/breaker_machines/types.rb
145
252
  - lib/breaker_machines/version.rb
@@ -165,6 +272,8 @@ metadata:
165
272
  bug_tracker_uri: https://github.com/seuros/breaker_machines/issues
166
273
  documentation_uri: https://github.com/seuros/breaker_machines#readme
167
274
  rubygems_mfa_required: 'true'
275
+ cargo_crate_name: breaker_machines_native
276
+ cargo_manifest_path: ext/breaker_machines_native/ffi/Cargo.toml
168
277
  rdoc_options: []
169
278
  require_paths:
170
279
  - lib
@@ -172,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
281
  requirements:
173
282
  - - ">="
174
283
  - !ruby/object:Gem::Version
175
- version: 3.2.0
284
+ version: 3.3.0
176
285
  required_rubygems_version: !ruby/object:Gem::Requirement
177
286
  requirements:
178
287
  - - ">="