breaker_machines 0.5.0 → 0.6.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 +40 -0
  14. data/ext/breaker_machines_native/ffi/Cargo.toml +16 -0
  15. data/ext/breaker_machines_native/ffi/src/lib.rs +218 -0
  16. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/common.rs +355 -0
  17. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/dynamic.rs +276 -0
  18. data/ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/macros.rs +49 -0
  19. 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
  20. 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
  21. 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
  22. 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
  23. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/Cargo.toml +48 -0
  24. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/examples/basic.rs +61 -0
  25. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/builder.rs +154 -0
  26. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/callbacks.rs +55 -0
  27. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/circuit.rs +607 -0
  28. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/errors.rs +38 -0
  29. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/lib.rs +58 -0
  30. data/ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/storage.rs +377 -0
  31. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/Cargo.toml +48 -0
  32. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/examples/basic.rs +61 -0
  33. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/builder.rs +173 -0
  34. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/callbacks.rs +55 -0
  35. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/circuit.rs +855 -0
  36. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/errors.rs +38 -0
  37. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/lib.rs +58 -0
  38. data/ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/storage.rs +377 -0
  39. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/Cargo.toml +48 -0
  40. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/examples/basic.rs +61 -0
  41. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/builder.rs +154 -0
  42. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/callbacks.rs +55 -0
  43. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/circuit.rs +607 -0
  44. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/errors.rs +38 -0
  45. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/lib.rs +58 -0
  46. data/ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/storage.rs +377 -0
  47. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/Cargo.toml +48 -0
  48. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/examples/basic.rs +61 -0
  49. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/builder.rs +232 -0
  50. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/bulkhead.rs +223 -0
  51. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/callbacks.rs +58 -0
  52. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/circuit.rs +1156 -0
  53. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/classifier.rs +177 -0
  54. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/errors.rs +47 -0
  55. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/lib.rs +62 -0
  56. data/ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/storage.rs +377 -0
  57. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/common.rs +355 -0
  58. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/dynamic.rs +276 -0
  59. data/ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/macros.rs +49 -0
  60. 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
  61. data/lib/breaker_machines/circuit/async_state_management.rb +1 -1
  62. data/lib/breaker_machines/circuit/base.rb +2 -1
  63. data/lib/breaker_machines/circuit/coordinated_state_management.rb +3 -3
  64. data/lib/breaker_machines/circuit/native.rb +127 -0
  65. data/lib/breaker_machines/circuit/state_callbacks.rb +17 -5
  66. data/lib/breaker_machines/circuit/state_management.rb +1 -1
  67. data/lib/breaker_machines/native_extension.rb +36 -0
  68. data/lib/breaker_machines/native_speedup.rb +6 -0
  69. data/lib/breaker_machines/storage/bucket_memory.rb +4 -1
  70. data/lib/breaker_machines/storage/memory.rb +4 -1
  71. data/lib/breaker_machines/storage/native.rb +90 -0
  72. data/lib/breaker_machines/version.rb +1 -1
  73. data/lib/breaker_machines.rb +98 -11
  74. data/lib/breaker_machines_native/breaker_machines_native.bundle +0 -0
  75. data/sig/breaker_machines.rbs +20 -8
  76. metadata +99 -6
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.6.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
@@ -93,6 +107,20 @@ dependencies:
93
107
  - - "~>"
94
108
  - !ruby/object:Gem::Version
95
109
  version: '13.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rb_sys
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.9'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.9'
96
124
  description: |
97
125
  BreakerMachines is a production-ready circuit breaker implementation for Ruby that prevents
98
126
  cascade failures in distributed systems. Built on the battle-tested state_machines gem, it
@@ -102,11 +130,71 @@ description: |
102
130
  email:
103
131
  - terminale@gmail.com
104
132
  executables: []
105
- extensions: []
133
+ extensions:
134
+ - ext/breaker_machines_native/extconf.rb
106
135
  extra_rdoc_files: []
107
136
  files:
108
137
  - LICENSE.txt
109
138
  - README.md
139
+ - ext/breaker_machines_native/Cargo.toml
140
+ - ext/breaker_machines_native/core/Cargo.toml
141
+ - ext/breaker_machines_native/core/examples/basic.rs
142
+ - ext/breaker_machines_native/core/src/builder.rs
143
+ - ext/breaker_machines_native/core/src/bulkhead.rs
144
+ - ext/breaker_machines_native/core/src/callbacks.rs
145
+ - ext/breaker_machines_native/core/src/circuit.rs
146
+ - ext/breaker_machines_native/core/src/classifier.rs
147
+ - ext/breaker_machines_native/core/src/errors.rs
148
+ - ext/breaker_machines_native/core/src/lib.rs
149
+ - ext/breaker_machines_native/core/src/storage.rs
150
+ - ext/breaker_machines_native/extconf.rb
151
+ - ext/breaker_machines_native/ffi/Cargo.toml
152
+ - ext/breaker_machines_native/ffi/src/lib.rs
153
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/common.rs
154
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/dynamic.rs
155
+ - ext/breaker_machines_native/target/debug/build/clang-sys-d961dfabd5f43fba/out/macros.rs
156
+ - ext/breaker_machines_native/target/debug/build/rb-sys-2bb7281aac8faec8/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
157
+ - ext/breaker_machines_native/target/debug/build/rb-sys-54cb99ea6aeab8bc/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
158
+ - ext/breaker_machines_native/target/debug/build/rb-sys-9e64a270c6421e93/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
159
+ - ext/breaker_machines_native/target/debug/build/rb-sys-e627030114d3fc19/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
160
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/Cargo.toml
161
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/examples/basic.rs
162
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/builder.rs
163
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/callbacks.rs
164
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/circuit.rs
165
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/errors.rs
166
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/lib.rs
167
+ - ext/breaker_machines_native/target/package/breaker-machines-0.1.0/src/storage.rs
168
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/Cargo.toml
169
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/examples/basic.rs
170
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/builder.rs
171
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/callbacks.rs
172
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/circuit.rs
173
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/errors.rs
174
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/lib.rs
175
+ - ext/breaker_machines_native/target/package/breaker-machines-0.2.0/src/storage.rs
176
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/Cargo.toml
177
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/examples/basic.rs
178
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/builder.rs
179
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/callbacks.rs
180
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/circuit.rs
181
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/errors.rs
182
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/lib.rs
183
+ - ext/breaker_machines_native/target/package/breaker-machines-0.5.0/src/storage.rs
184
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/Cargo.toml
185
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/examples/basic.rs
186
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/builder.rs
187
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/bulkhead.rs
188
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/callbacks.rs
189
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/circuit.rs
190
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/classifier.rs
191
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/errors.rs
192
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/lib.rs
193
+ - ext/breaker_machines_native/target/package/breaker-machines-0.6.0/src/storage.rs
194
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/common.rs
195
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/dynamic.rs
196
+ - ext/breaker_machines_native/target/release/build/clang-sys-ef8ad8b846ac8b75/out/macros.rs
197
+ - ext/breaker_machines_native/target/release/build/rb-sys-064bf9961dd17810/out/bindings-0.9.117-mri-arm64-darwin24-3.4.7.rs
110
198
  - lib/breaker_machines.rb
111
199
  - lib/breaker_machines/async_circuit.rb
112
200
  - lib/breaker_machines/async_support.rb
@@ -120,6 +208,7 @@ files:
120
208
  - lib/breaker_machines/circuit/execution.rb
121
209
  - lib/breaker_machines/circuit/hedged_execution.rb
122
210
  - lib/breaker_machines/circuit/introspection.rb
211
+ - lib/breaker_machines/circuit/native.rb
123
212
  - lib/breaker_machines/circuit/state_callbacks.rb
124
213
  - lib/breaker_machines/circuit/state_management.rb
125
214
  - lib/breaker_machines/circuit_group.rb
@@ -132,6 +221,8 @@ files:
132
221
  - lib/breaker_machines/dsl/parallel_fallback_wrapper.rb
133
222
  - lib/breaker_machines/errors.rb
134
223
  - lib/breaker_machines/hedged_async_support.rb
224
+ - lib/breaker_machines/native_extension.rb
225
+ - lib/breaker_machines/native_speedup.rb
135
226
  - lib/breaker_machines/registry.rb
136
227
  - lib/breaker_machines/storage.rb
137
228
  - lib/breaker_machines/storage/backend_state.rb
@@ -140,9 +231,11 @@ files:
140
231
  - lib/breaker_machines/storage/cache.rb
141
232
  - lib/breaker_machines/storage/fallback_chain.rb
142
233
  - lib/breaker_machines/storage/memory.rb
234
+ - lib/breaker_machines/storage/native.rb
143
235
  - lib/breaker_machines/storage/null.rb
144
236
  - lib/breaker_machines/types.rb
145
237
  - lib/breaker_machines/version.rb
238
+ - lib/breaker_machines_native/breaker_machines_native.bundle
146
239
  - sig/README.md
147
240
  - sig/all.rbs
148
241
  - sig/breaker_machines.rbs