tigerbeetle 0.0.40 → 0.17.8

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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +0 -25
  3. data/README.md +670 -80
  4. data/docs/migration.md +201 -0
  5. data/sig/tigerbeetle.rbs +271 -0
  6. data/src/ext/tigerbeetle/extconf.rb +47 -0
  7. data/src/ext/tigerbeetle/lib/aarch64-linux-gnu.2.27/libtb_client.so +0 -0
  8. data/src/ext/tigerbeetle/lib/aarch64-linux-musl/libtb_client.so +0 -0
  9. data/src/ext/tigerbeetle/lib/aarch64-macos/libtb_client.dylib +0 -0
  10. data/src/ext/tigerbeetle/lib/x86_64-linux-gnu.2.27/libtb_client.so +0 -0
  11. data/src/ext/tigerbeetle/lib/x86_64-linux-musl/libtb_client.so +0 -0
  12. data/src/ext/tigerbeetle/lib/x86_64-macos/libtb_client.dylib +0 -0
  13. data/src/ext/tigerbeetle/lib/x86_64-windows/tb_client.dll +0 -0
  14. data/src/ext/tigerbeetle/rb_tb_gen.h +458 -0
  15. data/{ext/tb_client/tigerbeetle/src/clients/rust/assets → src/ext/tigerbeetle}/tb_client.h +18 -16
  16. data/src/ext/tigerbeetle/tigerbeetle.c +310 -0
  17. data/src/tigerbeetle/bindings.rb +347 -0
  18. data/src/tigerbeetle/client.rb +129 -0
  19. data/src/tigerbeetle/completion_dispatcher.rb +108 -0
  20. data/src/tigerbeetle/id.rb +40 -0
  21. data/src/tigerbeetle/tb.rb +3 -0
  22. data/src/tigerbeetle/version.rb +3 -0
  23. data/src/tigerbeetle.rb +39 -0
  24. metadata +33 -350
  25. data/CHANGELOG.md +0 -162
  26. data/ext/tb_client/extconf.rb +0 -41
  27. data/ext/tb_client/tigerbeetle/LICENSE +0 -177
  28. data/ext/tb_client/tigerbeetle/build.zig +0 -2296
  29. data/ext/tb_client/tigerbeetle/src/aof.zig +0 -1000
  30. data/ext/tb_client/tigerbeetle/src/build/fetch.zig +0 -112
  31. data/ext/tb_client/tigerbeetle/src/build_multiversion.zig +0 -808
  32. data/ext/tb_client/tigerbeetle/src/cdc/amqp/protocol.zig +0 -1283
  33. data/ext/tb_client/tigerbeetle/src/cdc/amqp/spec.zig +0 -1704
  34. data/ext/tb_client/tigerbeetle/src/cdc/amqp/types.zig +0 -341
  35. data/ext/tb_client/tigerbeetle/src/cdc/amqp.zig +0 -1450
  36. data/ext/tb_client/tigerbeetle/src/cdc/runner.zig +0 -1659
  37. data/ext/tb_client/tigerbeetle/src/clients/c/samples/main.c +0 -406
  38. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/context.zig +0 -1092
  39. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/echo_client.zig +0 -286
  40. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/packet.zig +0 -158
  41. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal.zig +0 -229
  42. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal_fuzz.zig +0 -110
  43. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.h +0 -386
  44. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.zig +0 -34
  45. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_exports.zig +0 -281
  46. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header.zig +0 -312
  47. data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header_test.zig +0 -138
  48. data/ext/tb_client/tigerbeetle/src/clients/c/test.zig +0 -466
  49. data/ext/tb_client/tigerbeetle/src/clients/docs_samples.zig +0 -157
  50. data/ext/tb_client/tigerbeetle/src/clients/docs_types.zig +0 -90
  51. data/ext/tb_client/tigerbeetle/src/clients/dotnet/ci.zig +0 -203
  52. data/ext/tb_client/tigerbeetle/src/clients/dotnet/docs.zig +0 -79
  53. data/ext/tb_client/tigerbeetle/src/clients/dotnet/dotnet_bindings.zig +0 -542
  54. data/ext/tb_client/tigerbeetle/src/clients/go/ci.zig +0 -109
  55. data/ext/tb_client/tigerbeetle/src/clients/go/docs.zig +0 -86
  56. data/ext/tb_client/tigerbeetle/src/clients/go/go_bindings.zig +0 -370
  57. data/ext/tb_client/tigerbeetle/src/clients/go/pkg/native/tb_client.h +0 -386
  58. data/ext/tb_client/tigerbeetle/src/clients/java/ci.zig +0 -167
  59. data/ext/tb_client/tigerbeetle/src/clients/java/docs.zig +0 -126
  60. data/ext/tb_client/tigerbeetle/src/clients/java/java_bindings.zig +0 -996
  61. data/ext/tb_client/tigerbeetle/src/clients/java/src/client.zig +0 -748
  62. data/ext/tb_client/tigerbeetle/src/clients/java/src/jni.zig +0 -3238
  63. data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_tests.zig +0 -1718
  64. data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_thread_cleaner.zig +0 -190
  65. data/ext/tb_client/tigerbeetle/src/clients/node/ci.zig +0 -104
  66. data/ext/tb_client/tigerbeetle/src/clients/node/docs.zig +0 -75
  67. data/ext/tb_client/tigerbeetle/src/clients/node/node.zig +0 -522
  68. data/ext/tb_client/tigerbeetle/src/clients/node/node_bindings.zig +0 -267
  69. data/ext/tb_client/tigerbeetle/src/clients/node/src/c.zig +0 -3
  70. data/ext/tb_client/tigerbeetle/src/clients/node/src/translate.zig +0 -379
  71. data/ext/tb_client/tigerbeetle/src/clients/python/ci.zig +0 -131
  72. data/ext/tb_client/tigerbeetle/src/clients/python/docs.zig +0 -63
  73. data/ext/tb_client/tigerbeetle/src/clients/python/python_bindings.zig +0 -588
  74. data/ext/tb_client/tigerbeetle/src/clients/rust/ci.zig +0 -73
  75. data/ext/tb_client/tigerbeetle/src/clients/rust/docs.zig +0 -106
  76. data/ext/tb_client/tigerbeetle/src/clients/rust/rust_bindings.zig +0 -305
  77. data/ext/tb_client/tigerbeetle/src/config.zig +0 -296
  78. data/ext/tb_client/tigerbeetle/src/constants.zig +0 -790
  79. data/ext/tb_client/tigerbeetle/src/copyhound.zig +0 -202
  80. data/ext/tb_client/tigerbeetle/src/counting_allocator.zig +0 -72
  81. data/ext/tb_client/tigerbeetle/src/direction.zig +0 -120
  82. data/ext/tb_client/tigerbeetle/src/docs_website/build.zig +0 -158
  83. data/ext/tb_client/tigerbeetle/src/docs_website/src/content.zig +0 -156
  84. data/ext/tb_client/tigerbeetle/src/docs_website/src/docs.zig +0 -252
  85. data/ext/tb_client/tigerbeetle/src/docs_website/src/file_checker.zig +0 -313
  86. data/ext/tb_client/tigerbeetle/src/docs_website/src/html.zig +0 -87
  87. data/ext/tb_client/tigerbeetle/src/docs_website/src/page_writer.zig +0 -63
  88. data/ext/tb_client/tigerbeetle/src/docs_website/src/redirects.zig +0 -47
  89. data/ext/tb_client/tigerbeetle/src/docs_website/src/search_index_writer.zig +0 -28
  90. data/ext/tb_client/tigerbeetle/src/docs_website/src/service_worker_writer.zig +0 -61
  91. data/ext/tb_client/tigerbeetle/src/docs_website/src/single_page_writer.zig +0 -169
  92. data/ext/tb_client/tigerbeetle/src/docs_website/src/website.zig +0 -46
  93. data/ext/tb_client/tigerbeetle/src/ewah.zig +0 -445
  94. data/ext/tb_client/tigerbeetle/src/ewah_benchmark.zig +0 -128
  95. data/ext/tb_client/tigerbeetle/src/ewah_fuzz.zig +0 -171
  96. data/ext/tb_client/tigerbeetle/src/fuzz_tests.zig +0 -179
  97. data/ext/tb_client/tigerbeetle/src/integration_tests.zig +0 -662
  98. data/ext/tb_client/tigerbeetle/src/io/common.zig +0 -155
  99. data/ext/tb_client/tigerbeetle/src/io/darwin.zig +0 -1093
  100. data/ext/tb_client/tigerbeetle/src/io/linux.zig +0 -1880
  101. data/ext/tb_client/tigerbeetle/src/io/test.zig +0 -1005
  102. data/ext/tb_client/tigerbeetle/src/io/windows.zig +0 -1598
  103. data/ext/tb_client/tigerbeetle/src/io.zig +0 -34
  104. data/ext/tb_client/tigerbeetle/src/iops.zig +0 -134
  105. data/ext/tb_client/tigerbeetle/src/list.zig +0 -236
  106. data/ext/tb_client/tigerbeetle/src/lsm/binary_search.zig +0 -848
  107. data/ext/tb_client/tigerbeetle/src/lsm/binary_search_benchmark.zig +0 -179
  108. data/ext/tb_client/tigerbeetle/src/lsm/cache_map.zig +0 -424
  109. data/ext/tb_client/tigerbeetle/src/lsm/cache_map_fuzz.zig +0 -420
  110. data/ext/tb_client/tigerbeetle/src/lsm/compaction.zig +0 -2114
  111. data/ext/tb_client/tigerbeetle/src/lsm/composite_key.zig +0 -185
  112. data/ext/tb_client/tigerbeetle/src/lsm/forest.zig +0 -1146
  113. data/ext/tb_client/tigerbeetle/src/lsm/forest_fuzz.zig +0 -1102
  114. data/ext/tb_client/tigerbeetle/src/lsm/forest_table_iterator.zig +0 -200
  115. data/ext/tb_client/tigerbeetle/src/lsm/groove.zig +0 -1495
  116. data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge.zig +0 -739
  117. data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge_benchmark.zig +0 -166
  118. data/ext/tb_client/tigerbeetle/src/lsm/manifest.zig +0 -754
  119. data/ext/tb_client/tigerbeetle/src/lsm/manifest_level.zig +0 -1294
  120. data/ext/tb_client/tigerbeetle/src/lsm/manifest_level_fuzz.zig +0 -510
  121. data/ext/tb_client/tigerbeetle/src/lsm/manifest_log.zig +0 -1241
  122. data/ext/tb_client/tigerbeetle/src/lsm/manifest_log_fuzz.zig +0 -628
  123. data/ext/tb_client/tigerbeetle/src/lsm/node_pool.zig +0 -247
  124. data/ext/tb_client/tigerbeetle/src/lsm/scan_buffer.zig +0 -116
  125. data/ext/tb_client/tigerbeetle/src/lsm/scan_builder.zig +0 -543
  126. data/ext/tb_client/tigerbeetle/src/lsm/scan_fuzz.zig +0 -938
  127. data/ext/tb_client/tigerbeetle/src/lsm/scan_lookup.zig +0 -293
  128. data/ext/tb_client/tigerbeetle/src/lsm/scan_merge.zig +0 -359
  129. data/ext/tb_client/tigerbeetle/src/lsm/scan_range.zig +0 -99
  130. data/ext/tb_client/tigerbeetle/src/lsm/scan_state.zig +0 -17
  131. data/ext/tb_client/tigerbeetle/src/lsm/scan_tree.zig +0 -962
  132. data/ext/tb_client/tigerbeetle/src/lsm/schema.zig +0 -617
  133. data/ext/tb_client/tigerbeetle/src/lsm/scratch_memory.zig +0 -84
  134. data/ext/tb_client/tigerbeetle/src/lsm/segmented_array.zig +0 -1500
  135. data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_benchmark.zig +0 -149
  136. data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_fuzz.zig +0 -7
  137. data/ext/tb_client/tigerbeetle/src/lsm/set_associative_cache.zig +0 -865
  138. data/ext/tb_client/tigerbeetle/src/lsm/table.zig +0 -607
  139. data/ext/tb_client/tigerbeetle/src/lsm/table_memory.zig +0 -843
  140. data/ext/tb_client/tigerbeetle/src/lsm/table_value_iterator.zig +0 -90
  141. data/ext/tb_client/tigerbeetle/src/lsm/timestamp_range.zig +0 -40
  142. data/ext/tb_client/tigerbeetle/src/lsm/tree.zig +0 -629
  143. data/ext/tb_client/tigerbeetle/src/lsm/tree_fuzz.zig +0 -933
  144. data/ext/tb_client/tigerbeetle/src/lsm/zig_zag_merge.zig +0 -534
  145. data/ext/tb_client/tigerbeetle/src/message_buffer.zig +0 -469
  146. data/ext/tb_client/tigerbeetle/src/message_bus.zig +0 -1219
  147. data/ext/tb_client/tigerbeetle/src/message_bus_fuzz.zig +0 -936
  148. data/ext/tb_client/tigerbeetle/src/message_pool.zig +0 -343
  149. data/ext/tb_client/tigerbeetle/src/multiversion.zig +0 -2195
  150. data/ext/tb_client/tigerbeetle/src/queue.zig +0 -390
  151. data/ext/tb_client/tigerbeetle/src/repl/completion.zig +0 -201
  152. data/ext/tb_client/tigerbeetle/src/repl/parser.zig +0 -1356
  153. data/ext/tb_client/tigerbeetle/src/repl/terminal.zig +0 -496
  154. data/ext/tb_client/tigerbeetle/src/repl.zig +0 -1034
  155. data/ext/tb_client/tigerbeetle/src/scripts/amqp.zig +0 -973
  156. data/ext/tb_client/tigerbeetle/src/scripts/cfo.zig +0 -1866
  157. data/ext/tb_client/tigerbeetle/src/scripts/changelog.zig +0 -304
  158. data/ext/tb_client/tigerbeetle/src/scripts/ci.zig +0 -227
  159. data/ext/tb_client/tigerbeetle/src/scripts/client_readmes.zig +0 -658
  160. data/ext/tb_client/tigerbeetle/src/scripts/devhub.zig +0 -466
  161. data/ext/tb_client/tigerbeetle/src/scripts/release.zig +0 -1058
  162. data/ext/tb_client/tigerbeetle/src/scripts.zig +0 -105
  163. data/ext/tb_client/tigerbeetle/src/shell.zig +0 -1195
  164. data/ext/tb_client/tigerbeetle/src/stack.zig +0 -260
  165. data/ext/tb_client/tigerbeetle/src/state_machine/auditor.zig +0 -911
  166. data/ext/tb_client/tigerbeetle/src/state_machine/workload.zig +0 -2079
  167. data/ext/tb_client/tigerbeetle/src/state_machine.zig +0 -4872
  168. data/ext/tb_client/tigerbeetle/src/state_machine_fuzz.zig +0 -288
  169. data/ext/tb_client/tigerbeetle/src/state_machine_tests.zig +0 -3128
  170. data/ext/tb_client/tigerbeetle/src/static_allocator.zig +0 -82
  171. data/ext/tb_client/tigerbeetle/src/stdx/bit_set.zig +0 -157
  172. data/ext/tb_client/tigerbeetle/src/stdx/bounded_array.zig +0 -292
  173. data/ext/tb_client/tigerbeetle/src/stdx/debug.zig +0 -65
  174. data/ext/tb_client/tigerbeetle/src/stdx/flags.zig +0 -1414
  175. data/ext/tb_client/tigerbeetle/src/stdx/huge_page_allocator.zig +0 -115
  176. data/ext/tb_client/tigerbeetle/src/stdx/mlock.zig +0 -92
  177. data/ext/tb_client/tigerbeetle/src/stdx/prng.zig +0 -677
  178. data/ext/tb_client/tigerbeetle/src/stdx/radix.zig +0 -336
  179. data/ext/tb_client/tigerbeetle/src/stdx/ring_buffer.zig +0 -511
  180. data/ext/tb_client/tigerbeetle/src/stdx/sort_test.zig +0 -112
  181. data/ext/tb_client/tigerbeetle/src/stdx/stdx.zig +0 -1163
  182. data/ext/tb_client/tigerbeetle/src/stdx/testing/low_level_hash_vectors.zig +0 -142
  183. data/ext/tb_client/tigerbeetle/src/stdx/testing/snaptest.zig +0 -361
  184. data/ext/tb_client/tigerbeetle/src/stdx/time_units.zig +0 -275
  185. data/ext/tb_client/tigerbeetle/src/stdx/unshare.zig +0 -295
  186. data/ext/tb_client/tigerbeetle/src/stdx/vendored/aegis.zig +0 -436
  187. data/ext/tb_client/tigerbeetle/src/stdx/windows.zig +0 -48
  188. data/ext/tb_client/tigerbeetle/src/stdx/zipfian.zig +0 -402
  189. data/ext/tb_client/tigerbeetle/src/storage.zig +0 -489
  190. data/ext/tb_client/tigerbeetle/src/storage_fuzz.zig +0 -180
  191. data/ext/tb_client/tigerbeetle/src/testing/bench.zig +0 -146
  192. data/ext/tb_client/tigerbeetle/src/testing/cluster/grid_checker.zig +0 -53
  193. data/ext/tb_client/tigerbeetle/src/testing/cluster/journal_checker.zig +0 -61
  194. data/ext/tb_client/tigerbeetle/src/testing/cluster/manifest_checker.zig +0 -76
  195. data/ext/tb_client/tigerbeetle/src/testing/cluster/message_bus.zig +0 -110
  196. data/ext/tb_client/tigerbeetle/src/testing/cluster/network.zig +0 -412
  197. data/ext/tb_client/tigerbeetle/src/testing/cluster/state_checker.zig +0 -331
  198. data/ext/tb_client/tigerbeetle/src/testing/cluster/storage_checker.zig +0 -458
  199. data/ext/tb_client/tigerbeetle/src/testing/cluster.zig +0 -1198
  200. data/ext/tb_client/tigerbeetle/src/testing/exhaustigen.zig +0 -128
  201. data/ext/tb_client/tigerbeetle/src/testing/fixtures.zig +0 -181
  202. data/ext/tb_client/tigerbeetle/src/testing/fuzz.zig +0 -144
  203. data/ext/tb_client/tigerbeetle/src/testing/id.zig +0 -97
  204. data/ext/tb_client/tigerbeetle/src/testing/io.zig +0 -317
  205. data/ext/tb_client/tigerbeetle/src/testing/marks.zig +0 -126
  206. data/ext/tb_client/tigerbeetle/src/testing/packet_simulator.zig +0 -533
  207. data/ext/tb_client/tigerbeetle/src/testing/reply_sequence.zig +0 -154
  208. data/ext/tb_client/tigerbeetle/src/testing/state_machine.zig +0 -389
  209. data/ext/tb_client/tigerbeetle/src/testing/storage.zig +0 -1247
  210. data/ext/tb_client/tigerbeetle/src/testing/table.zig +0 -249
  211. data/ext/tb_client/tigerbeetle/src/testing/time.zig +0 -98
  212. data/ext/tb_client/tigerbeetle/src/testing/tmp_tigerbeetle.zig +0 -212
  213. data/ext/tb_client/tigerbeetle/src/testing/vortex/constants.zig +0 -26
  214. data/ext/tb_client/tigerbeetle/src/testing/vortex/faulty_network.zig +0 -579
  215. data/ext/tb_client/tigerbeetle/src/testing/vortex/java_driver/ci.zig +0 -39
  216. data/ext/tb_client/tigerbeetle/src/testing/vortex/logged_process.zig +0 -214
  217. data/ext/tb_client/tigerbeetle/src/testing/vortex/rust_driver/ci.zig +0 -34
  218. data/ext/tb_client/tigerbeetle/src/testing/vortex/supervisor.zig +0 -785
  219. data/ext/tb_client/tigerbeetle/src/testing/vortex/workload.zig +0 -543
  220. data/ext/tb_client/tigerbeetle/src/testing/vortex/zig_driver.zig +0 -181
  221. data/ext/tb_client/tigerbeetle/src/tidy.zig +0 -1449
  222. data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_driver.zig +0 -227
  223. data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_load.zig +0 -1069
  224. data/ext/tb_client/tigerbeetle/src/tigerbeetle/cli.zig +0 -1422
  225. data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect.zig +0 -1658
  226. data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect_integrity.zig +0 -518
  227. data/ext/tb_client/tigerbeetle/src/tigerbeetle/libtb_client.zig +0 -36
  228. data/ext/tb_client/tigerbeetle/src/tigerbeetle/main.zig +0 -646
  229. data/ext/tb_client/tigerbeetle/src/tigerbeetle.zig +0 -958
  230. data/ext/tb_client/tigerbeetle/src/time.zig +0 -236
  231. data/ext/tb_client/tigerbeetle/src/trace/event.zig +0 -745
  232. data/ext/tb_client/tigerbeetle/src/trace/statsd.zig +0 -462
  233. data/ext/tb_client/tigerbeetle/src/trace.zig +0 -556
  234. data/ext/tb_client/tigerbeetle/src/unit_tests.zig +0 -321
  235. data/ext/tb_client/tigerbeetle/src/vopr.zig +0 -1785
  236. data/ext/tb_client/tigerbeetle/src/vortex.zig +0 -101
  237. data/ext/tb_client/tigerbeetle/src/vsr/checkpoint_trailer.zig +0 -473
  238. data/ext/tb_client/tigerbeetle/src/vsr/checksum.zig +0 -208
  239. data/ext/tb_client/tigerbeetle/src/vsr/checksum_benchmark.zig +0 -43
  240. data/ext/tb_client/tigerbeetle/src/vsr/client.zig +0 -768
  241. data/ext/tb_client/tigerbeetle/src/vsr/client_replies.zig +0 -532
  242. data/ext/tb_client/tigerbeetle/src/vsr/client_sessions.zig +0 -338
  243. data/ext/tb_client/tigerbeetle/src/vsr/clock.zig +0 -1019
  244. data/ext/tb_client/tigerbeetle/src/vsr/fault_detector.zig +0 -279
  245. data/ext/tb_client/tigerbeetle/src/vsr/free_set.zig +0 -1381
  246. data/ext/tb_client/tigerbeetle/src/vsr/free_set_fuzz.zig +0 -315
  247. data/ext/tb_client/tigerbeetle/src/vsr/grid.zig +0 -1460
  248. data/ext/tb_client/tigerbeetle/src/vsr/grid_blocks_missing.zig +0 -757
  249. data/ext/tb_client/tigerbeetle/src/vsr/grid_scrubber.zig +0 -797
  250. data/ext/tb_client/tigerbeetle/src/vsr/journal.zig +0 -2586
  251. data/ext/tb_client/tigerbeetle/src/vsr/marzullo.zig +0 -308
  252. data/ext/tb_client/tigerbeetle/src/vsr/message_header.zig +0 -1777
  253. data/ext/tb_client/tigerbeetle/src/vsr/multi_batch.zig +0 -715
  254. data/ext/tb_client/tigerbeetle/src/vsr/multi_batch_fuzz.zig +0 -185
  255. data/ext/tb_client/tigerbeetle/src/vsr/repair_budget.zig +0 -333
  256. data/ext/tb_client/tigerbeetle/src/vsr/replica.zig +0 -12356
  257. data/ext/tb_client/tigerbeetle/src/vsr/replica_format.zig +0 -416
  258. data/ext/tb_client/tigerbeetle/src/vsr/replica_reformat.zig +0 -165
  259. data/ext/tb_client/tigerbeetle/src/vsr/replica_test.zig +0 -2928
  260. data/ext/tb_client/tigerbeetle/src/vsr/routing.zig +0 -1075
  261. data/ext/tb_client/tigerbeetle/src/vsr/superblock.zig +0 -1603
  262. data/ext/tb_client/tigerbeetle/src/vsr/superblock_fuzz.zig +0 -484
  263. data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums.zig +0 -405
  264. data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums_fuzz.zig +0 -355
  265. data/ext/tb_client/tigerbeetle/src/vsr/sync.zig +0 -29
  266. data/ext/tb_client/tigerbeetle/src/vsr.zig +0 -1727
  267. data/lib/tb_client/shared_lib.rb +0 -66
  268. data/lib/tb_client.rb +0 -282
  269. data/lib/tigerbeetle/account.rb +0 -38
  270. data/lib/tigerbeetle/account_balance.rb +0 -23
  271. data/lib/tigerbeetle/account_filter.rb +0 -31
  272. data/lib/tigerbeetle/atomic_counter.rb +0 -14
  273. data/lib/tigerbeetle/client.rb +0 -214
  274. data/lib/tigerbeetle/converters/account.rb +0 -63
  275. data/lib/tigerbeetle/converters/account_balance.rb +0 -31
  276. data/lib/tigerbeetle/converters/account_filter.rb +0 -32
  277. data/lib/tigerbeetle/converters/base.rb +0 -35
  278. data/lib/tigerbeetle/converters/create_accounts_result.rb +0 -21
  279. data/lib/tigerbeetle/converters/create_transfers_result.rb +0 -21
  280. data/lib/tigerbeetle/converters/query_filter.rb +0 -33
  281. data/lib/tigerbeetle/converters/time.rb +0 -23
  282. data/lib/tigerbeetle/converters/transfer.rb +0 -64
  283. data/lib/tigerbeetle/converters/uint_128.rb +0 -24
  284. data/lib/tigerbeetle/converters.rb +0 -12
  285. data/lib/tigerbeetle/error.rb +0 -4
  286. data/lib/tigerbeetle/id.rb +0 -30
  287. data/lib/tigerbeetle/platforms.rb +0 -9
  288. data/lib/tigerbeetle/query_filter.rb +0 -31
  289. data/lib/tigerbeetle/request.rb +0 -7
  290. data/lib/tigerbeetle/transfer.rb +0 -40
  291. data/lib/tigerbeetle/version.rb +0 -4
  292. data/lib/tigerbeetle.rb +0 -13
  293. data/tigerbeetle.gemspec +0 -60
@@ -1,341 +0,0 @@
1
- const std = @import("std");
2
- const builtin = @import("builtin");
3
- const vsr = @import("../../vsr.zig");
4
- const protocol = @import("protocol.zig");
5
- const Encoder = protocol.Encoder;
6
- const Decoder = protocol.Decoder;
7
-
8
- pub const ConnectOptions = struct {
9
- host: std.net.Address,
10
- user_name: []const u8,
11
- password: []const u8,
12
- vhost: []const u8,
13
- locale: ?[]const u8 = null,
14
- heartbeat_seconds: ?u16 = null,
15
- properties: ConnectionProperties = ConnectionProperties.default,
16
- };
17
-
18
- pub const ConnectionProperties = struct {
19
- product: []const u8,
20
- version: []const u8,
21
- platform: []const u8,
22
- capabilities: *const ClientCapabilities,
23
-
24
- pub const default: ConnectionProperties = .{
25
- .product = "TigerBeetle",
26
- .version = std.fmt.comptimePrint(
27
- "{}",
28
- .{vsr.constants.config.process.release},
29
- ),
30
- // By convention, "platform" refers to the programming language.
31
- // e.g., Erlang, Java, Go, etc.
32
- .platform = "Zig " ++ builtin.zig_version_string,
33
- .capabilities = &ClientCapabilities.default,
34
- };
35
-
36
- pub fn table(self: *const ConnectionProperties) Encoder.Table {
37
- const vtable: Encoder.Table.VTable = comptime .{
38
- .write = &struct {
39
- fn write(context: *const anyopaque, encoder: *Encoder.TableEncoder) void {
40
- const properties: *const ConnectionProperties = @ptrCast(@alignCast(context));
41
- inline for (std.meta.fields(ConnectionProperties)) |field| {
42
- const value = @field(properties, field.name);
43
- encoder.put(field.name, switch (field.type) {
44
- []const u8 => .{ .string = value },
45
- *const ClientCapabilities => .{ .field_table = value.table() },
46
- else => comptime unreachable,
47
- });
48
- }
49
- }
50
- }.write,
51
- };
52
- return .{ .context = self, .vtable = &vtable };
53
- }
54
- };
55
-
56
- pub const ClientCapabilities = struct {
57
- publisher_confirms: bool,
58
- exchange_exchange_bindings: bool,
59
- basic_nack: bool,
60
- consumer_cancel_notify: bool,
61
- connection_blocked: bool,
62
- consumer_priorities: bool,
63
- authentication_failure_close: bool,
64
- per_consumer_qos: bool,
65
- direct_reply_to: bool,
66
-
67
- pub const default: ClientCapabilities = .{
68
- .publisher_confirms = true,
69
- .exchange_exchange_bindings = false,
70
- .basic_nack = true,
71
- .consumer_cancel_notify = false,
72
- .connection_blocked = false,
73
- .consumer_priorities = false,
74
- .authentication_failure_close = true,
75
- .per_consumer_qos = false,
76
- .direct_reply_to = false,
77
- };
78
-
79
- pub fn table(self: *const ClientCapabilities) Encoder.Table {
80
- const vtable: Encoder.Table.VTable = comptime .{
81
- .write = &struct {
82
- fn write(context: *const anyopaque, encoder: *Encoder.TableEncoder) void {
83
- const capabilities: *const ClientCapabilities = @ptrCast(@alignCast(context));
84
- encoder.put("publisher_confirms", .{
85
- .boolean = capabilities.publisher_confirms,
86
- });
87
- encoder.put("exchange_exchange_bindings", .{
88
- .boolean = capabilities.exchange_exchange_bindings,
89
- });
90
- encoder.put("basic.nack", .{
91
- .boolean = capabilities.basic_nack,
92
- });
93
- encoder.put("consumer_cancel_notify", .{
94
- .boolean = capabilities.consumer_cancel_notify,
95
- });
96
- encoder.put("connection.blocked", .{
97
- .boolean = capabilities.connection_blocked,
98
- });
99
- encoder.put("consumer_priorities", .{
100
- .boolean = capabilities.consumer_priorities,
101
- });
102
- encoder.put("authentication_failure_close", .{
103
- .boolean = capabilities.authentication_failure_close,
104
- });
105
- encoder.put("per_consumer_qos", .{
106
- .boolean = capabilities.per_consumer_qos,
107
- });
108
- encoder.put("direct_reply_to", .{
109
- .boolean = capabilities.direct_reply_to,
110
- });
111
- }
112
- }.write,
113
- };
114
- return .{ .context = self, .vtable = &vtable };
115
- }
116
- };
117
-
118
- /// "SASL" means "Simple Authentication and Security Layer"
119
- pub const SASLPlainAuth = struct {
120
- pub const mechanism = "PLAIN";
121
-
122
- user_name: []const u8,
123
- password: []const u8,
124
-
125
- /// Response returns the SASL PLAIN mechanism encoding, delimited by null characters.
126
- pub fn response(self: *const SASLPlainAuth) Encoder.Body {
127
- const vtable: Encoder.Body.VTable = comptime .{
128
- .write = &struct {
129
- fn write(context: *const anyopaque, buffer: []u8) usize {
130
- const auth: *const SASLPlainAuth = @ptrCast(@alignCast(context));
131
- var fbs = std.io.fixedBufferStream(buffer);
132
- fbs.writer().print("\x00{s}\x00{s}", .{
133
- auth.user_name,
134
- auth.password,
135
- }) catch unreachable;
136
- return fbs.pos;
137
- }
138
- }.write,
139
- };
140
- return .{ .context = self, .vtable = &vtable };
141
- }
142
- };
143
-
144
- pub const QueueOverflow = enum {
145
- drop_head,
146
- reject_publish,
147
- reject_publish_dlx,
148
- };
149
-
150
- /// A set of implementation-defined arguments for the declaration.
151
- /// The syntax and semantics of these arguments are specific to RabbitMQ.
152
- pub const QueueDeclareArguments = struct {
153
- /// How long a queue can be unused for before it is automatically deleted (milliseconds).
154
- /// (Sets the "x-expires" argument.)
155
- expires: ?u32 = null,
156
- /// How long a message published to a queue can live before it is discarded (milliseconds).
157
- /// (Sets the "x-message-ttl" argument.)
158
- message_ttl: ?u32 = null,
159
- /// Sets the queue overflow behaviour.
160
- /// This determines what happens to messages when the maximum length of a queue is reached.
161
- overflow: ?QueueOverflow = null,
162
- /// If set, makes sure only one consumer at a time consumes from the queue and fails over
163
- /// to another registered consumer in case the active one is cancelled or dies.
164
- /// (Sets the "x-single-active-consumer" argument.)
165
- single_active_consumer: ?bool = false,
166
- /// Optional name of an exchange to which messages will be republished
167
- /// if they are rejected or expire.
168
- /// (Sets the "x-dead-letter-exchange" argument.)
169
- dead_letter_exchange: ?[]const u8 = null,
170
- /// Optional replacement routing key to use when a message is dead-lettered.
171
- /// If this is not set, the message's original routing key will be used.
172
- /// (Sets the "x-dead-letter-routing-key" argument.)
173
- dead_letter_routing_key: ?[]const u8 = null,
174
- /// How many (ready) messages a queue can contain before it starts to drop them
175
- /// from its head.
176
- /// (Sets the "x-max-length" argument.)
177
- max_length: ?u32 = null,
178
- /// Total body size for ready messages a queue can contain before it starts to drop
179
- /// them from its head.
180
- /// (Sets the "x-max-length-bytes" argument.)
181
- max_length_bytes: ?u32 = null,
182
-
183
- pub fn table(self: *const QueueDeclareArguments) Encoder.Table {
184
- const vtable: Encoder.Table.VTable = comptime .{
185
- .write = &struct {
186
- fn write(context: *const anyopaque, encoder: *Encoder.TableEncoder) void {
187
- const arguments: *const QueueDeclareArguments = @ptrCast(@alignCast(context));
188
- inline for (std.meta.fields(QueueDeclareArguments)) |field| {
189
- if (@field(arguments, field.name)) |value| {
190
- const FieldType = @TypeOf(value);
191
- // Keys are follow the pattern "x-max-length":
192
- const key = comptime "x-" ++ kebab_case(field.name);
193
- switch (FieldType) {
194
- []const u8 => encoder.put(key, .{ .string = value }),
195
- QueueOverflow => encoder.put(key, .{ .string = switch (value) {
196
- inline else => |tag| comptime "" ++ kebab_case(@tagName(tag)),
197
- } }),
198
- bool => encoder.put(key, .{ .boolean = value }),
199
- u32 => encoder.put(key, .{ .uint32 = value }),
200
- else => comptime unreachable,
201
- }
202
- }
203
- }
204
- }
205
- fn kebab_case(comptime key: []const u8) []const u8 {
206
- comptime {
207
- var buffer: [key.len]u8 = @as(*const [key.len]u8, @ptrCast(key)).*;
208
- std.mem.replaceScalar(u8, &buffer, '_', '-');
209
- return &buffer;
210
- }
211
- }
212
- }.write,
213
- };
214
- return .{ .context = self, .vtable = &vtable };
215
- }
216
- };
217
-
218
- pub const BasicPublishOptions = struct {
219
- /// Specifies the name of the exchange to publish to. The exchange name can be
220
- /// empty, meaning the default exchange. If the exchange name is specified, and that
221
- /// exchange does not exist, the server will raise a channel exception.
222
- exchange: []const u8,
223
- /// Message routing key.
224
- /// Specifies the routing key for the message. The routing key is used for routing
225
- /// messages depending on the exchange configuration.
226
- routing_key: []const u8,
227
- /// Indicate mandatory routing.
228
- /// This flag tells the server how to react if the message cannot be routed to a
229
- /// queue. If this flag is set, the server will return an unroutable message with a
230
- /// Return method. If this flag is zero, the server silently drops the message.
231
- mandatory: bool,
232
- /// Request immediate delivery.
233
- /// This flag tells the server how to react if the message cannot be routed to a
234
- /// queue consumer immediately. If this flag is set, the server will return an
235
- /// undeliverable message with a Return method. If this flag is zero, the server
236
- /// will queue the message, but with no guarantee that it will ever be consumed.
237
- immediate: bool,
238
- /// Metadata associated with the message.
239
- properties: Encoder.BasicProperties,
240
- /// The message payload.
241
- body: ?Encoder.Body,
242
- };
243
-
244
- pub const QueueDeclareOptions = struct {
245
- queue: []const u8,
246
- /// Do not create queue.
247
- /// If set, the server will reply with Declare-Ok if the queue already
248
- /// exists with the same name, and raise an error if not. The client can
249
- /// use this to check whether a queue exists without modifying the
250
- /// server state. When set, all other method fields except name and no-wait
251
- /// are ignored. A declare with both passive and no-wait has no effect.
252
- /// Arguments are compared for semantic equivalence.
253
- passive: bool,
254
- /// Request a durable queue.
255
- /// If set when creating a new queue, the queue will be marked as durable. Durable
256
- /// queues remain active when a server restarts. Non-durable queues (transient
257
- /// queues) are purged if/when a server restarts. Note that durable queues do not
258
- /// necessarily hold persistent messages, although it does not make sense to send
259
- /// persistent messages to a transient queue.
260
- durable: bool,
261
- /// Request an exclusive queue.
262
- /// Exclusive queues may only be accessed by the current connection, and are
263
- /// deleted when that connection closes. Passive declaration of an exclusive
264
- /// queue by other connections are not allowed.
265
- exclusive: bool,
266
- /// Auto-delete queue when unused.
267
- /// If set, the queue is deleted when all consumers have finished using it. The last
268
- /// consumer can be cancelled either explicitly or because its channel is closed. If
269
- /// there was no consumer ever on the queue, it won't be deleted. Applications can
270
- /// explicitly delete auto-delete queues using the Delete method as normal.
271
- auto_delete: bool,
272
- /// A set of implementation-defined arguments for the declaration.
273
- /// The syntax and semantics of these arguments are specific to RabbitMQ.
274
- arguments: QueueDeclareArguments,
275
- };
276
-
277
- pub const ExchangeDeclareOptions = struct {
278
- exchange: []const u8,
279
- /// Exchange type.
280
- /// Each exchange belongs to one of a set of exchange types implemented by the
281
- /// server. The exchange types define the functionality of the exchange - i.e. how
282
- /// messages are routed through it. It is not valid or meaningful to attempt to
283
- /// change the type of an existing exchange.
284
- type: []const u8,
285
- /// Do not create exchange.
286
- /// If set, the server will reply with Declare-Ok if the exchange already
287
- /// exists with the same name, and raise an error if not. The client can
288
- /// use this to check whether an exchange exists without modifying the
289
- /// server state. When set, all other method fields except name and no-wait
290
- /// are ignored. A declare with both passive and no-wait has no effect.
291
- /// Arguments are compared for semantic equivalence.
292
- passive: bool,
293
- /// Request a durable exchange.
294
- /// If set when creating a new exchange, the exchange will be marked as durable.
295
- /// Durable exchanges remain active when a server restarts. Non-durable exchanges
296
- /// (transient exchanges) are purged if/when a server restarts.
297
- durable: bool,
298
- /// Auto-delete when unused.
299
- /// If set, the exchange is deleted when all queues have
300
- /// finished using it.
301
- auto_delete: bool,
302
- /// Create internal exchange.
303
- /// If set, the exchange may not be used directly by publishers,
304
- /// but only when bound to other exchanges. Internal exchanges
305
- /// are used to construct wiring that is not visible to
306
- /// applications.
307
- internal: bool,
308
- };
309
-
310
- pub const GetMessageOptions = struct {
311
- /// Specifies the name of the queue to get a message from.
312
- queue: []const u8,
313
- /// When `true`, indicates that the message does not require an acknowledgment
314
- /// and will be instantly acknowledged upon delivery.
315
- no_ack: bool,
316
- };
317
-
318
- pub const GetMessagePropertiesResult = struct {
319
- /// Delivery tag used to acknowledge or reject the message.
320
- delivery_tag: u64,
321
- /// The number of messages still available in the queue.
322
- message_count: u32,
323
- /// Basic properties including custom headers.
324
- properties: Decoder.BasicProperties,
325
- /// Indicates whether the message includes a body frame.
326
- has_body: bool,
327
- };
328
-
329
- pub const BasicNackOptions = struct {
330
- delivery_tag: u64,
331
- /// Requeue the message.
332
- /// If requeue is true, the server will attempt to requeue the message.
333
- requeue: bool,
334
- /// Reject multiple messages.
335
- /// If set to `true`, the delivery tag is treated as "up to and including",
336
- /// so that multiple messages can be rejected with a single method.
337
- /// If set to zero, the delivery tag refers to a single message.
338
- /// If the multiple field is `true`, and the delivery tag is `false`,
339
- /// this indicates rejection of all outstanding messages.
340
- multiple: bool,
341
- };