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.
- checksums.yaml +4 -4
- data/LICENSE +0 -25
- data/README.md +670 -80
- data/docs/migration.md +201 -0
- data/sig/tigerbeetle.rbs +271 -0
- data/src/ext/tigerbeetle/extconf.rb +47 -0
- data/src/ext/tigerbeetle/lib/aarch64-linux-gnu.2.27/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/aarch64-linux-musl/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/aarch64-macos/libtb_client.dylib +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-linux-gnu.2.27/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-linux-musl/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-macos/libtb_client.dylib +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-windows/tb_client.dll +0 -0
- data/src/ext/tigerbeetle/rb_tb_gen.h +458 -0
- data/{ext/tb_client/tigerbeetle/src/clients/rust/assets → src/ext/tigerbeetle}/tb_client.h +18 -16
- data/src/ext/tigerbeetle/tigerbeetle.c +310 -0
- data/src/tigerbeetle/bindings.rb +347 -0
- data/src/tigerbeetle/client.rb +129 -0
- data/src/tigerbeetle/completion_dispatcher.rb +108 -0
- data/src/tigerbeetle/id.rb +40 -0
- data/src/tigerbeetle/tb.rb +3 -0
- data/src/tigerbeetle/version.rb +3 -0
- data/src/tigerbeetle.rb +39 -0
- metadata +33 -350
- data/CHANGELOG.md +0 -162
- data/ext/tb_client/extconf.rb +0 -41
- data/ext/tb_client/tigerbeetle/LICENSE +0 -177
- data/ext/tb_client/tigerbeetle/build.zig +0 -2296
- data/ext/tb_client/tigerbeetle/src/aof.zig +0 -1000
- data/ext/tb_client/tigerbeetle/src/build/fetch.zig +0 -112
- data/ext/tb_client/tigerbeetle/src/build_multiversion.zig +0 -808
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/protocol.zig +0 -1283
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/spec.zig +0 -1704
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/types.zig +0 -341
- data/ext/tb_client/tigerbeetle/src/cdc/amqp.zig +0 -1450
- data/ext/tb_client/tigerbeetle/src/cdc/runner.zig +0 -1659
- data/ext/tb_client/tigerbeetle/src/clients/c/samples/main.c +0 -406
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/context.zig +0 -1092
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/echo_client.zig +0 -286
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/packet.zig +0 -158
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal.zig +0 -229
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal_fuzz.zig +0 -110
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.h +0 -386
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_exports.zig +0 -281
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header.zig +0 -312
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header_test.zig +0 -138
- data/ext/tb_client/tigerbeetle/src/clients/c/test.zig +0 -466
- data/ext/tb_client/tigerbeetle/src/clients/docs_samples.zig +0 -157
- data/ext/tb_client/tigerbeetle/src/clients/docs_types.zig +0 -90
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/ci.zig +0 -203
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/docs.zig +0 -79
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/dotnet_bindings.zig +0 -542
- data/ext/tb_client/tigerbeetle/src/clients/go/ci.zig +0 -109
- data/ext/tb_client/tigerbeetle/src/clients/go/docs.zig +0 -86
- data/ext/tb_client/tigerbeetle/src/clients/go/go_bindings.zig +0 -370
- data/ext/tb_client/tigerbeetle/src/clients/go/pkg/native/tb_client.h +0 -386
- data/ext/tb_client/tigerbeetle/src/clients/java/ci.zig +0 -167
- data/ext/tb_client/tigerbeetle/src/clients/java/docs.zig +0 -126
- data/ext/tb_client/tigerbeetle/src/clients/java/java_bindings.zig +0 -996
- data/ext/tb_client/tigerbeetle/src/clients/java/src/client.zig +0 -748
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni.zig +0 -3238
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_tests.zig +0 -1718
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_thread_cleaner.zig +0 -190
- data/ext/tb_client/tigerbeetle/src/clients/node/ci.zig +0 -104
- data/ext/tb_client/tigerbeetle/src/clients/node/docs.zig +0 -75
- data/ext/tb_client/tigerbeetle/src/clients/node/node.zig +0 -522
- data/ext/tb_client/tigerbeetle/src/clients/node/node_bindings.zig +0 -267
- data/ext/tb_client/tigerbeetle/src/clients/node/src/c.zig +0 -3
- data/ext/tb_client/tigerbeetle/src/clients/node/src/translate.zig +0 -379
- data/ext/tb_client/tigerbeetle/src/clients/python/ci.zig +0 -131
- data/ext/tb_client/tigerbeetle/src/clients/python/docs.zig +0 -63
- data/ext/tb_client/tigerbeetle/src/clients/python/python_bindings.zig +0 -588
- data/ext/tb_client/tigerbeetle/src/clients/rust/ci.zig +0 -73
- data/ext/tb_client/tigerbeetle/src/clients/rust/docs.zig +0 -106
- data/ext/tb_client/tigerbeetle/src/clients/rust/rust_bindings.zig +0 -305
- data/ext/tb_client/tigerbeetle/src/config.zig +0 -296
- data/ext/tb_client/tigerbeetle/src/constants.zig +0 -790
- data/ext/tb_client/tigerbeetle/src/copyhound.zig +0 -202
- data/ext/tb_client/tigerbeetle/src/counting_allocator.zig +0 -72
- data/ext/tb_client/tigerbeetle/src/direction.zig +0 -120
- data/ext/tb_client/tigerbeetle/src/docs_website/build.zig +0 -158
- data/ext/tb_client/tigerbeetle/src/docs_website/src/content.zig +0 -156
- data/ext/tb_client/tigerbeetle/src/docs_website/src/docs.zig +0 -252
- data/ext/tb_client/tigerbeetle/src/docs_website/src/file_checker.zig +0 -313
- data/ext/tb_client/tigerbeetle/src/docs_website/src/html.zig +0 -87
- data/ext/tb_client/tigerbeetle/src/docs_website/src/page_writer.zig +0 -63
- data/ext/tb_client/tigerbeetle/src/docs_website/src/redirects.zig +0 -47
- data/ext/tb_client/tigerbeetle/src/docs_website/src/search_index_writer.zig +0 -28
- data/ext/tb_client/tigerbeetle/src/docs_website/src/service_worker_writer.zig +0 -61
- data/ext/tb_client/tigerbeetle/src/docs_website/src/single_page_writer.zig +0 -169
- data/ext/tb_client/tigerbeetle/src/docs_website/src/website.zig +0 -46
- data/ext/tb_client/tigerbeetle/src/ewah.zig +0 -445
- data/ext/tb_client/tigerbeetle/src/ewah_benchmark.zig +0 -128
- data/ext/tb_client/tigerbeetle/src/ewah_fuzz.zig +0 -171
- data/ext/tb_client/tigerbeetle/src/fuzz_tests.zig +0 -179
- data/ext/tb_client/tigerbeetle/src/integration_tests.zig +0 -662
- data/ext/tb_client/tigerbeetle/src/io/common.zig +0 -155
- data/ext/tb_client/tigerbeetle/src/io/darwin.zig +0 -1093
- data/ext/tb_client/tigerbeetle/src/io/linux.zig +0 -1880
- data/ext/tb_client/tigerbeetle/src/io/test.zig +0 -1005
- data/ext/tb_client/tigerbeetle/src/io/windows.zig +0 -1598
- data/ext/tb_client/tigerbeetle/src/io.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/iops.zig +0 -134
- data/ext/tb_client/tigerbeetle/src/list.zig +0 -236
- data/ext/tb_client/tigerbeetle/src/lsm/binary_search.zig +0 -848
- data/ext/tb_client/tigerbeetle/src/lsm/binary_search_benchmark.zig +0 -179
- data/ext/tb_client/tigerbeetle/src/lsm/cache_map.zig +0 -424
- data/ext/tb_client/tigerbeetle/src/lsm/cache_map_fuzz.zig +0 -420
- data/ext/tb_client/tigerbeetle/src/lsm/compaction.zig +0 -2114
- data/ext/tb_client/tigerbeetle/src/lsm/composite_key.zig +0 -185
- data/ext/tb_client/tigerbeetle/src/lsm/forest.zig +0 -1146
- data/ext/tb_client/tigerbeetle/src/lsm/forest_fuzz.zig +0 -1102
- data/ext/tb_client/tigerbeetle/src/lsm/forest_table_iterator.zig +0 -200
- data/ext/tb_client/tigerbeetle/src/lsm/groove.zig +0 -1495
- data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge.zig +0 -739
- data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge_benchmark.zig +0 -166
- data/ext/tb_client/tigerbeetle/src/lsm/manifest.zig +0 -754
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_level.zig +0 -1294
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_level_fuzz.zig +0 -510
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_log.zig +0 -1241
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_log_fuzz.zig +0 -628
- data/ext/tb_client/tigerbeetle/src/lsm/node_pool.zig +0 -247
- data/ext/tb_client/tigerbeetle/src/lsm/scan_buffer.zig +0 -116
- data/ext/tb_client/tigerbeetle/src/lsm/scan_builder.zig +0 -543
- data/ext/tb_client/tigerbeetle/src/lsm/scan_fuzz.zig +0 -938
- data/ext/tb_client/tigerbeetle/src/lsm/scan_lookup.zig +0 -293
- data/ext/tb_client/tigerbeetle/src/lsm/scan_merge.zig +0 -359
- data/ext/tb_client/tigerbeetle/src/lsm/scan_range.zig +0 -99
- data/ext/tb_client/tigerbeetle/src/lsm/scan_state.zig +0 -17
- data/ext/tb_client/tigerbeetle/src/lsm/scan_tree.zig +0 -962
- data/ext/tb_client/tigerbeetle/src/lsm/schema.zig +0 -617
- data/ext/tb_client/tigerbeetle/src/lsm/scratch_memory.zig +0 -84
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array.zig +0 -1500
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_benchmark.zig +0 -149
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_fuzz.zig +0 -7
- data/ext/tb_client/tigerbeetle/src/lsm/set_associative_cache.zig +0 -865
- data/ext/tb_client/tigerbeetle/src/lsm/table.zig +0 -607
- data/ext/tb_client/tigerbeetle/src/lsm/table_memory.zig +0 -843
- data/ext/tb_client/tigerbeetle/src/lsm/table_value_iterator.zig +0 -90
- data/ext/tb_client/tigerbeetle/src/lsm/timestamp_range.zig +0 -40
- data/ext/tb_client/tigerbeetle/src/lsm/tree.zig +0 -629
- data/ext/tb_client/tigerbeetle/src/lsm/tree_fuzz.zig +0 -933
- data/ext/tb_client/tigerbeetle/src/lsm/zig_zag_merge.zig +0 -534
- data/ext/tb_client/tigerbeetle/src/message_buffer.zig +0 -469
- data/ext/tb_client/tigerbeetle/src/message_bus.zig +0 -1219
- data/ext/tb_client/tigerbeetle/src/message_bus_fuzz.zig +0 -936
- data/ext/tb_client/tigerbeetle/src/message_pool.zig +0 -343
- data/ext/tb_client/tigerbeetle/src/multiversion.zig +0 -2195
- data/ext/tb_client/tigerbeetle/src/queue.zig +0 -390
- data/ext/tb_client/tigerbeetle/src/repl/completion.zig +0 -201
- data/ext/tb_client/tigerbeetle/src/repl/parser.zig +0 -1356
- data/ext/tb_client/tigerbeetle/src/repl/terminal.zig +0 -496
- data/ext/tb_client/tigerbeetle/src/repl.zig +0 -1034
- data/ext/tb_client/tigerbeetle/src/scripts/amqp.zig +0 -973
- data/ext/tb_client/tigerbeetle/src/scripts/cfo.zig +0 -1866
- data/ext/tb_client/tigerbeetle/src/scripts/changelog.zig +0 -304
- data/ext/tb_client/tigerbeetle/src/scripts/ci.zig +0 -227
- data/ext/tb_client/tigerbeetle/src/scripts/client_readmes.zig +0 -658
- data/ext/tb_client/tigerbeetle/src/scripts/devhub.zig +0 -466
- data/ext/tb_client/tigerbeetle/src/scripts/release.zig +0 -1058
- data/ext/tb_client/tigerbeetle/src/scripts.zig +0 -105
- data/ext/tb_client/tigerbeetle/src/shell.zig +0 -1195
- data/ext/tb_client/tigerbeetle/src/stack.zig +0 -260
- data/ext/tb_client/tigerbeetle/src/state_machine/auditor.zig +0 -911
- data/ext/tb_client/tigerbeetle/src/state_machine/workload.zig +0 -2079
- data/ext/tb_client/tigerbeetle/src/state_machine.zig +0 -4872
- data/ext/tb_client/tigerbeetle/src/state_machine_fuzz.zig +0 -288
- data/ext/tb_client/tigerbeetle/src/state_machine_tests.zig +0 -3128
- data/ext/tb_client/tigerbeetle/src/static_allocator.zig +0 -82
- data/ext/tb_client/tigerbeetle/src/stdx/bit_set.zig +0 -157
- data/ext/tb_client/tigerbeetle/src/stdx/bounded_array.zig +0 -292
- data/ext/tb_client/tigerbeetle/src/stdx/debug.zig +0 -65
- data/ext/tb_client/tigerbeetle/src/stdx/flags.zig +0 -1414
- data/ext/tb_client/tigerbeetle/src/stdx/huge_page_allocator.zig +0 -115
- data/ext/tb_client/tigerbeetle/src/stdx/mlock.zig +0 -92
- data/ext/tb_client/tigerbeetle/src/stdx/prng.zig +0 -677
- data/ext/tb_client/tigerbeetle/src/stdx/radix.zig +0 -336
- data/ext/tb_client/tigerbeetle/src/stdx/ring_buffer.zig +0 -511
- data/ext/tb_client/tigerbeetle/src/stdx/sort_test.zig +0 -112
- data/ext/tb_client/tigerbeetle/src/stdx/stdx.zig +0 -1163
- data/ext/tb_client/tigerbeetle/src/stdx/testing/low_level_hash_vectors.zig +0 -142
- data/ext/tb_client/tigerbeetle/src/stdx/testing/snaptest.zig +0 -361
- data/ext/tb_client/tigerbeetle/src/stdx/time_units.zig +0 -275
- data/ext/tb_client/tigerbeetle/src/stdx/unshare.zig +0 -295
- data/ext/tb_client/tigerbeetle/src/stdx/vendored/aegis.zig +0 -436
- data/ext/tb_client/tigerbeetle/src/stdx/windows.zig +0 -48
- data/ext/tb_client/tigerbeetle/src/stdx/zipfian.zig +0 -402
- data/ext/tb_client/tigerbeetle/src/storage.zig +0 -489
- data/ext/tb_client/tigerbeetle/src/storage_fuzz.zig +0 -180
- data/ext/tb_client/tigerbeetle/src/testing/bench.zig +0 -146
- data/ext/tb_client/tigerbeetle/src/testing/cluster/grid_checker.zig +0 -53
- data/ext/tb_client/tigerbeetle/src/testing/cluster/journal_checker.zig +0 -61
- data/ext/tb_client/tigerbeetle/src/testing/cluster/manifest_checker.zig +0 -76
- data/ext/tb_client/tigerbeetle/src/testing/cluster/message_bus.zig +0 -110
- data/ext/tb_client/tigerbeetle/src/testing/cluster/network.zig +0 -412
- data/ext/tb_client/tigerbeetle/src/testing/cluster/state_checker.zig +0 -331
- data/ext/tb_client/tigerbeetle/src/testing/cluster/storage_checker.zig +0 -458
- data/ext/tb_client/tigerbeetle/src/testing/cluster.zig +0 -1198
- data/ext/tb_client/tigerbeetle/src/testing/exhaustigen.zig +0 -128
- data/ext/tb_client/tigerbeetle/src/testing/fixtures.zig +0 -181
- data/ext/tb_client/tigerbeetle/src/testing/fuzz.zig +0 -144
- data/ext/tb_client/tigerbeetle/src/testing/id.zig +0 -97
- data/ext/tb_client/tigerbeetle/src/testing/io.zig +0 -317
- data/ext/tb_client/tigerbeetle/src/testing/marks.zig +0 -126
- data/ext/tb_client/tigerbeetle/src/testing/packet_simulator.zig +0 -533
- data/ext/tb_client/tigerbeetle/src/testing/reply_sequence.zig +0 -154
- data/ext/tb_client/tigerbeetle/src/testing/state_machine.zig +0 -389
- data/ext/tb_client/tigerbeetle/src/testing/storage.zig +0 -1247
- data/ext/tb_client/tigerbeetle/src/testing/table.zig +0 -249
- data/ext/tb_client/tigerbeetle/src/testing/time.zig +0 -98
- data/ext/tb_client/tigerbeetle/src/testing/tmp_tigerbeetle.zig +0 -212
- data/ext/tb_client/tigerbeetle/src/testing/vortex/constants.zig +0 -26
- data/ext/tb_client/tigerbeetle/src/testing/vortex/faulty_network.zig +0 -579
- data/ext/tb_client/tigerbeetle/src/testing/vortex/java_driver/ci.zig +0 -39
- data/ext/tb_client/tigerbeetle/src/testing/vortex/logged_process.zig +0 -214
- data/ext/tb_client/tigerbeetle/src/testing/vortex/rust_driver/ci.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/testing/vortex/supervisor.zig +0 -785
- data/ext/tb_client/tigerbeetle/src/testing/vortex/workload.zig +0 -543
- data/ext/tb_client/tigerbeetle/src/testing/vortex/zig_driver.zig +0 -181
- data/ext/tb_client/tigerbeetle/src/tidy.zig +0 -1449
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_driver.zig +0 -227
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_load.zig +0 -1069
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/cli.zig +0 -1422
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect.zig +0 -1658
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect_integrity.zig +0 -518
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/libtb_client.zig +0 -36
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/main.zig +0 -646
- data/ext/tb_client/tigerbeetle/src/tigerbeetle.zig +0 -958
- data/ext/tb_client/tigerbeetle/src/time.zig +0 -236
- data/ext/tb_client/tigerbeetle/src/trace/event.zig +0 -745
- data/ext/tb_client/tigerbeetle/src/trace/statsd.zig +0 -462
- data/ext/tb_client/tigerbeetle/src/trace.zig +0 -556
- data/ext/tb_client/tigerbeetle/src/unit_tests.zig +0 -321
- data/ext/tb_client/tigerbeetle/src/vopr.zig +0 -1785
- data/ext/tb_client/tigerbeetle/src/vortex.zig +0 -101
- data/ext/tb_client/tigerbeetle/src/vsr/checkpoint_trailer.zig +0 -473
- data/ext/tb_client/tigerbeetle/src/vsr/checksum.zig +0 -208
- data/ext/tb_client/tigerbeetle/src/vsr/checksum_benchmark.zig +0 -43
- data/ext/tb_client/tigerbeetle/src/vsr/client.zig +0 -768
- data/ext/tb_client/tigerbeetle/src/vsr/client_replies.zig +0 -532
- data/ext/tb_client/tigerbeetle/src/vsr/client_sessions.zig +0 -338
- data/ext/tb_client/tigerbeetle/src/vsr/clock.zig +0 -1019
- data/ext/tb_client/tigerbeetle/src/vsr/fault_detector.zig +0 -279
- data/ext/tb_client/tigerbeetle/src/vsr/free_set.zig +0 -1381
- data/ext/tb_client/tigerbeetle/src/vsr/free_set_fuzz.zig +0 -315
- data/ext/tb_client/tigerbeetle/src/vsr/grid.zig +0 -1460
- data/ext/tb_client/tigerbeetle/src/vsr/grid_blocks_missing.zig +0 -757
- data/ext/tb_client/tigerbeetle/src/vsr/grid_scrubber.zig +0 -797
- data/ext/tb_client/tigerbeetle/src/vsr/journal.zig +0 -2586
- data/ext/tb_client/tigerbeetle/src/vsr/marzullo.zig +0 -308
- data/ext/tb_client/tigerbeetle/src/vsr/message_header.zig +0 -1777
- data/ext/tb_client/tigerbeetle/src/vsr/multi_batch.zig +0 -715
- data/ext/tb_client/tigerbeetle/src/vsr/multi_batch_fuzz.zig +0 -185
- data/ext/tb_client/tigerbeetle/src/vsr/repair_budget.zig +0 -333
- data/ext/tb_client/tigerbeetle/src/vsr/replica.zig +0 -12356
- data/ext/tb_client/tigerbeetle/src/vsr/replica_format.zig +0 -416
- data/ext/tb_client/tigerbeetle/src/vsr/replica_reformat.zig +0 -165
- data/ext/tb_client/tigerbeetle/src/vsr/replica_test.zig +0 -2928
- data/ext/tb_client/tigerbeetle/src/vsr/routing.zig +0 -1075
- data/ext/tb_client/tigerbeetle/src/vsr/superblock.zig +0 -1603
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_fuzz.zig +0 -484
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums.zig +0 -405
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums_fuzz.zig +0 -355
- data/ext/tb_client/tigerbeetle/src/vsr/sync.zig +0 -29
- data/ext/tb_client/tigerbeetle/src/vsr.zig +0 -1727
- data/lib/tb_client/shared_lib.rb +0 -66
- data/lib/tb_client.rb +0 -282
- data/lib/tigerbeetle/account.rb +0 -38
- data/lib/tigerbeetle/account_balance.rb +0 -23
- data/lib/tigerbeetle/account_filter.rb +0 -31
- data/lib/tigerbeetle/atomic_counter.rb +0 -14
- data/lib/tigerbeetle/client.rb +0 -214
- data/lib/tigerbeetle/converters/account.rb +0 -63
- data/lib/tigerbeetle/converters/account_balance.rb +0 -31
- data/lib/tigerbeetle/converters/account_filter.rb +0 -32
- data/lib/tigerbeetle/converters/base.rb +0 -35
- data/lib/tigerbeetle/converters/create_accounts_result.rb +0 -21
- data/lib/tigerbeetle/converters/create_transfers_result.rb +0 -21
- data/lib/tigerbeetle/converters/query_filter.rb +0 -33
- data/lib/tigerbeetle/converters/time.rb +0 -23
- data/lib/tigerbeetle/converters/transfer.rb +0 -64
- data/lib/tigerbeetle/converters/uint_128.rb +0 -24
- data/lib/tigerbeetle/converters.rb +0 -12
- data/lib/tigerbeetle/error.rb +0 -4
- data/lib/tigerbeetle/id.rb +0 -30
- data/lib/tigerbeetle/platforms.rb +0 -9
- data/lib/tigerbeetle/query_filter.rb +0 -31
- data/lib/tigerbeetle/request.rb +0 -7
- data/lib/tigerbeetle/transfer.rb +0 -40
- data/lib/tigerbeetle/version.rb +0 -4
- data/lib/tigerbeetle.rb +0 -13
- data/tigerbeetle.gemspec +0 -60
data/docs/migration.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# TigerBeetle gem migration guide
|
|
2
|
+
|
|
3
|
+
Between 0.0.x and 0.x.y the TigerBeetle gem changed from a third-party client
|
|
4
|
+
developed by [Anthony D](https://github.com/antstorm) to an official client
|
|
5
|
+
maintained by TigerBeetle. Thank you, Anthony!
|
|
6
|
+
|
|
7
|
+
While the overall API remains similar, some changes were made to provide an
|
|
8
|
+
experience that's more consistent with the official clients for other languages.
|
|
9
|
+
|
|
10
|
+
- [Client changes](#client-changes)
|
|
11
|
+
- [Connecting](#connecting)
|
|
12
|
+
- [Callback API](#callback-api)
|
|
13
|
+
- [Splat parameters](#splat-parameters)
|
|
14
|
+
- [Flag handling](#flag-handling)
|
|
15
|
+
- [Returned objects](#returned-objects)
|
|
16
|
+
- [Exception classes](#exception-classes)
|
|
17
|
+
- [Logging](#logging)
|
|
18
|
+
- [`TB` top-level alias](#tb-top-level-alias)
|
|
19
|
+
- [Licensing](#licensing)
|
|
20
|
+
|
|
21
|
+
## Client changes
|
|
22
|
+
|
|
23
|
+
### Connecting
|
|
24
|
+
|
|
25
|
+
The `TigerBeetle.connect` method has been removed and `TigerBeetle::Client.new`
|
|
26
|
+
no longer provides default arguments.
|
|
27
|
+
|
|
28
|
+
```rb
|
|
29
|
+
# Before
|
|
30
|
+
client = TigerBeetle.connect # using default cluster_id (0) and address (127.0.0.1:3000)
|
|
31
|
+
|
|
32
|
+
# After
|
|
33
|
+
client = TigerBeetle::Client.new(cluster_id: 0, replica_addresses: "127.0.0.1:3000")
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The preferred way to manage the client's lifecycle is `TigerBeetle::Client.open`,
|
|
37
|
+
which will automatically close the connection when it is no longer needed:
|
|
38
|
+
|
|
39
|
+
```rb
|
|
40
|
+
replica_addresses = ENV.fetch("TB_ADDRESS", "3000")
|
|
41
|
+
|
|
42
|
+
TigerBeetle::Client.open(cluster_id: 0, replica_addresses:) do |client|
|
|
43
|
+
# Use the client.
|
|
44
|
+
end
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
When manually managing the client's lifecycle, `client.close` replaces the old
|
|
48
|
+
`client.deinit`.
|
|
49
|
+
|
|
50
|
+
See ["Creating a Client"](../README.md#creating-a-client) for details.
|
|
51
|
+
|
|
52
|
+
### Callback API
|
|
53
|
+
|
|
54
|
+
The callback-based async API has been removed. `TigerBeetle::Client` is now
|
|
55
|
+
fiber-scheduler aware and works with the [`async`](https://github.com/socketry/async)
|
|
56
|
+
gem out of the box.
|
|
57
|
+
|
|
58
|
+
```rb
|
|
59
|
+
# Before
|
|
60
|
+
client.lookup_accounts(100) do |result|
|
|
61
|
+
result # [#<struct TigerBeetle::Account id=100, ... >]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# After
|
|
65
|
+
semaphore = Async::Semaphore.new(16)
|
|
66
|
+
|
|
67
|
+
account_batches = [...] # set up account batches
|
|
68
|
+
|
|
69
|
+
TigerBeetle::Client.open(cluster_id: 0, replica_addresses: "3000") do |client|
|
|
70
|
+
Async do
|
|
71
|
+
account_batches
|
|
72
|
+
.map { |batch| semaphore.async { client.create_accounts(batch) } }
|
|
73
|
+
.each(&:wait)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Splat parameters
|
|
79
|
+
|
|
80
|
+
All methods that previously took splat parameters now require explicit arrays:
|
|
81
|
+
|
|
82
|
+
```rb
|
|
83
|
+
# Before
|
|
84
|
+
account_1, account_2 = client.lookup_accounts(100, 101)
|
|
85
|
+
|
|
86
|
+
# After
|
|
87
|
+
account_1, account_2 = client.lookup_accounts([100, 101])
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Flag handling
|
|
91
|
+
|
|
92
|
+
All flags are now explicit numeric constants combined with `|`, not symbol arrays.
|
|
93
|
+
|
|
94
|
+
```rb
|
|
95
|
+
# Before
|
|
96
|
+
filter = TigerBeetle::AccountFilter.new(
|
|
97
|
+
account_id: 100,
|
|
98
|
+
limit: 10,
|
|
99
|
+
flags: [:DEBITS, :CREDITS]
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
transfers = client.get_account_transfers(filter)
|
|
103
|
+
|
|
104
|
+
# After
|
|
105
|
+
filter = TigerBeetle::AccountFilter.new(
|
|
106
|
+
account_id: 100,
|
|
107
|
+
limit: 10,
|
|
108
|
+
flags: TigerBeetle::AccountFilterFlags::DEBITS |
|
|
109
|
+
TigerBeetle::AccountFilterFlags::CREDITS
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
transfers = client.get_account_transfers(filter)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Timestamp attributes
|
|
116
|
+
|
|
117
|
+
All timestamp attributes have changed type from `Time` to `Integer` representing
|
|
118
|
+
nanoseconds since UNIX epoch.
|
|
119
|
+
|
|
120
|
+
```rb
|
|
121
|
+
# Before
|
|
122
|
+
account.timestamp
|
|
123
|
+
# => 2026-06-22 11:49:05 1382929/2097152 +0100
|
|
124
|
+
|
|
125
|
+
# After
|
|
126
|
+
account.timestamp
|
|
127
|
+
# => 1782125345659431936
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Affected attributes:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
TigerBeetle::Account#timestamp
|
|
134
|
+
TigerBeetle::AccountBalance#timestamp
|
|
135
|
+
TigerBeetle::AccountFilter#timestamp_min
|
|
136
|
+
TigerBeetle::AccountFilter#timestamp_max
|
|
137
|
+
TigerBeetle::QueryFilter#timestamp_min
|
|
138
|
+
TigerBeetle::QueryFilter#timestamp_max
|
|
139
|
+
TigerBeetle::Transfer#timestamp
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Returned objects
|
|
143
|
+
|
|
144
|
+
Returned objects have changed from `FFI::Struct`/`Struct`-style objects to
|
|
145
|
+
regular Ruby classes, so `[]` no longer works for accessing fields.
|
|
146
|
+
|
|
147
|
+
```rb
|
|
148
|
+
# Before
|
|
149
|
+
account[:debits_posted]
|
|
150
|
+
|
|
151
|
+
# After
|
|
152
|
+
account.debits_posted
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The return types of create operations also changed from two-element arrays to
|
|
156
|
+
result objects:
|
|
157
|
+
|
|
158
|
+
```rb
|
|
159
|
+
# Before
|
|
160
|
+
index, status = result
|
|
161
|
+
|
|
162
|
+
# After
|
|
163
|
+
result.timestamp
|
|
164
|
+
result.status
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Exception classes
|
|
168
|
+
|
|
169
|
+
There was a change to the exception classes raised by the gem.
|
|
170
|
+
|
|
171
|
+
```rb
|
|
172
|
+
# Before
|
|
173
|
+
StandardError
|
|
174
|
+
TigerBeetle::Error
|
|
175
|
+
TigerBeetle::ClientError
|
|
176
|
+
|
|
177
|
+
# After
|
|
178
|
+
StandardError
|
|
179
|
+
TigerBeetle::InitError
|
|
180
|
+
TigerBeetle::ClientClosedError
|
|
181
|
+
TigerBeetle::PacketError
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Logging
|
|
185
|
+
|
|
186
|
+
The `client.logger=` API has been removed. Any logging should happen in the
|
|
187
|
+
surrounding application code.
|
|
188
|
+
|
|
189
|
+
### `TB` top-level alias
|
|
190
|
+
|
|
191
|
+
The new gem provides a top-level `TB` alias which can be enabled as follows:
|
|
192
|
+
|
|
193
|
+
```rb
|
|
194
|
+
require "tigerbeetle/tb"
|
|
195
|
+
|
|
196
|
+
account = TB::Account.new(id: TB.id, ledger: 1, code: 1)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Licensing
|
|
200
|
+
|
|
201
|
+
No licensing changes have been made. The gem remains under the [Apache License, Version 2.0](../LICENSE).
|
data/sig/tigerbeetle.rbs
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
########################################################
|
|
2
|
+
## This file was auto-generated by ruby_bindings.zig ##
|
|
3
|
+
## Do not manually modify. ##
|
|
4
|
+
########################################################
|
|
5
|
+
|
|
6
|
+
module TigerBeetle
|
|
7
|
+
VERSION: String
|
|
8
|
+
|
|
9
|
+
def self.id: () -> Integer
|
|
10
|
+
|
|
11
|
+
class InitError < StandardError
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class ClientClosedError < StandardError
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class PacketError < StandardError
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Client
|
|
21
|
+
def self.open: (cluster_id: Integer, replica_addresses: String) { (Client) -> untyped } -> untyped
|
|
22
|
+
|
|
23
|
+
def initialize: (cluster_id: Integer, replica_addresses: String) -> void
|
|
24
|
+
def close: () -> nil
|
|
25
|
+
def closed?: () -> bool
|
|
26
|
+
|
|
27
|
+
def create_accounts: (Array[Account]) -> Array[CreateAccountResult]
|
|
28
|
+
def create_transfers: (Array[Transfer]) -> Array[CreateTransferResult]
|
|
29
|
+
def lookup_accounts: (Array[Integer]) -> Array[Account]
|
|
30
|
+
def lookup_transfers: (Array[Integer]) -> Array[Transfer]
|
|
31
|
+
def get_account_transfers: (AccountFilter) -> Array[Transfer]
|
|
32
|
+
def get_account_balances: (AccountFilter) -> Array[AccountBalance]
|
|
33
|
+
def query_accounts: (QueryFilter) -> Array[Account]
|
|
34
|
+
def query_transfers: (QueryFilter) -> Array[Transfer]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
module AccountFlags
|
|
38
|
+
NONE: Integer
|
|
39
|
+
LINKED: Integer
|
|
40
|
+
DEBITS_MUST_NOT_EXCEED_CREDITS: Integer
|
|
41
|
+
CREDITS_MUST_NOT_EXCEED_DEBITS: Integer
|
|
42
|
+
HISTORY: Integer
|
|
43
|
+
IMPORTED: Integer
|
|
44
|
+
CLOSED: Integer
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
module TransferFlags
|
|
48
|
+
NONE: Integer
|
|
49
|
+
LINKED: Integer
|
|
50
|
+
PENDING: Integer
|
|
51
|
+
POST_PENDING_TRANSFER: Integer
|
|
52
|
+
VOID_PENDING_TRANSFER: Integer
|
|
53
|
+
BALANCING_DEBIT: Integer
|
|
54
|
+
BALANCING_CREDIT: Integer
|
|
55
|
+
CLOSING_DEBIT: Integer
|
|
56
|
+
CLOSING_CREDIT: Integer
|
|
57
|
+
IMPORTED: Integer
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
module AccountFilterFlags
|
|
61
|
+
NONE: Integer
|
|
62
|
+
DEBITS: Integer
|
|
63
|
+
CREDITS: Integer
|
|
64
|
+
REVERSED: Integer
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
module QueryFilterFlags
|
|
68
|
+
NONE: Integer
|
|
69
|
+
REVERSED: Integer
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
module Operation
|
|
73
|
+
LOOKUP_ACCOUNTS: Integer
|
|
74
|
+
LOOKUP_TRANSFERS: Integer
|
|
75
|
+
GET_ACCOUNT_TRANSFERS: Integer
|
|
76
|
+
GET_ACCOUNT_BALANCES: Integer
|
|
77
|
+
QUERY_ACCOUNTS: Integer
|
|
78
|
+
QUERY_TRANSFERS: Integer
|
|
79
|
+
CREATE_ACCOUNTS: Integer
|
|
80
|
+
CREATE_TRANSFERS: Integer
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
module CreateAccountStatus
|
|
84
|
+
CREATED: Integer
|
|
85
|
+
LINKED_EVENT_FAILED: Integer
|
|
86
|
+
LINKED_EVENT_CHAIN_OPEN: Integer
|
|
87
|
+
IMPORTED_EVENT_EXPECTED: Integer
|
|
88
|
+
IMPORTED_EVENT_NOT_EXPECTED: Integer
|
|
89
|
+
TIMESTAMP_MUST_BE_ZERO: Integer
|
|
90
|
+
IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE: Integer
|
|
91
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE: Integer
|
|
92
|
+
RESERVED_FIELD: Integer
|
|
93
|
+
RESERVED_FLAG: Integer
|
|
94
|
+
ID_MUST_NOT_BE_ZERO: Integer
|
|
95
|
+
ID_MUST_NOT_BE_INT_MAX: Integer
|
|
96
|
+
EXISTS_WITH_DIFFERENT_FLAGS: Integer
|
|
97
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_128: Integer
|
|
98
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_64: Integer
|
|
99
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_32: Integer
|
|
100
|
+
EXISTS_WITH_DIFFERENT_LEDGER: Integer
|
|
101
|
+
EXISTS_WITH_DIFFERENT_CODE: Integer
|
|
102
|
+
EXISTS: Integer
|
|
103
|
+
FLAGS_ARE_MUTUALLY_EXCLUSIVE: Integer
|
|
104
|
+
DEBITS_PENDING_MUST_BE_ZERO: Integer
|
|
105
|
+
DEBITS_POSTED_MUST_BE_ZERO: Integer
|
|
106
|
+
CREDITS_PENDING_MUST_BE_ZERO: Integer
|
|
107
|
+
CREDITS_POSTED_MUST_BE_ZERO: Integer
|
|
108
|
+
LEDGER_MUST_NOT_BE_ZERO: Integer
|
|
109
|
+
CODE_MUST_NOT_BE_ZERO: Integer
|
|
110
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS: Integer
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
module CreateTransferStatus
|
|
114
|
+
CREATED: Integer
|
|
115
|
+
LINKED_EVENT_FAILED: Integer
|
|
116
|
+
LINKED_EVENT_CHAIN_OPEN: Integer
|
|
117
|
+
IMPORTED_EVENT_EXPECTED: Integer
|
|
118
|
+
IMPORTED_EVENT_NOT_EXPECTED: Integer
|
|
119
|
+
TIMESTAMP_MUST_BE_ZERO: Integer
|
|
120
|
+
IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE: Integer
|
|
121
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE: Integer
|
|
122
|
+
RESERVED_FLAG: Integer
|
|
123
|
+
ID_MUST_NOT_BE_ZERO: Integer
|
|
124
|
+
ID_MUST_NOT_BE_INT_MAX: Integer
|
|
125
|
+
EXISTS_WITH_DIFFERENT_FLAGS: Integer
|
|
126
|
+
EXISTS_WITH_DIFFERENT_PENDING_ID: Integer
|
|
127
|
+
EXISTS_WITH_DIFFERENT_TIMEOUT: Integer
|
|
128
|
+
EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID: Integer
|
|
129
|
+
EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID: Integer
|
|
130
|
+
EXISTS_WITH_DIFFERENT_AMOUNT: Integer
|
|
131
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_128: Integer
|
|
132
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_64: Integer
|
|
133
|
+
EXISTS_WITH_DIFFERENT_USER_DATA_32: Integer
|
|
134
|
+
EXISTS_WITH_DIFFERENT_LEDGER: Integer
|
|
135
|
+
EXISTS_WITH_DIFFERENT_CODE: Integer
|
|
136
|
+
EXISTS: Integer
|
|
137
|
+
ID_ALREADY_FAILED: Integer
|
|
138
|
+
FLAGS_ARE_MUTUALLY_EXCLUSIVE: Integer
|
|
139
|
+
DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO: Integer
|
|
140
|
+
DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX: Integer
|
|
141
|
+
CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO: Integer
|
|
142
|
+
CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX: Integer
|
|
143
|
+
ACCOUNTS_MUST_BE_DIFFERENT: Integer
|
|
144
|
+
PENDING_ID_MUST_BE_ZERO: Integer
|
|
145
|
+
PENDING_ID_MUST_NOT_BE_ZERO: Integer
|
|
146
|
+
PENDING_ID_MUST_NOT_BE_INT_MAX: Integer
|
|
147
|
+
PENDING_ID_MUST_BE_DIFFERENT: Integer
|
|
148
|
+
TIMEOUT_RESERVED_FOR_PENDING_TRANSFER: Integer
|
|
149
|
+
CLOSING_TRANSFER_MUST_BE_PENDING: Integer
|
|
150
|
+
LEDGER_MUST_NOT_BE_ZERO: Integer
|
|
151
|
+
CODE_MUST_NOT_BE_ZERO: Integer
|
|
152
|
+
DEBIT_ACCOUNT_NOT_FOUND: Integer
|
|
153
|
+
CREDIT_ACCOUNT_NOT_FOUND: Integer
|
|
154
|
+
ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER: Integer
|
|
155
|
+
TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS: Integer
|
|
156
|
+
PENDING_TRANSFER_NOT_FOUND: Integer
|
|
157
|
+
PENDING_TRANSFER_NOT_PENDING: Integer
|
|
158
|
+
PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID: Integer
|
|
159
|
+
PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID: Integer
|
|
160
|
+
PENDING_TRANSFER_HAS_DIFFERENT_LEDGER: Integer
|
|
161
|
+
PENDING_TRANSFER_HAS_DIFFERENT_CODE: Integer
|
|
162
|
+
EXCEEDS_PENDING_TRANSFER_AMOUNT: Integer
|
|
163
|
+
PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT: Integer
|
|
164
|
+
PENDING_TRANSFER_ALREADY_POSTED: Integer
|
|
165
|
+
PENDING_TRANSFER_ALREADY_VOIDED: Integer
|
|
166
|
+
PENDING_TRANSFER_EXPIRED: Integer
|
|
167
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS: Integer
|
|
168
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_DEBIT_ACCOUNT: Integer
|
|
169
|
+
IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_CREDIT_ACCOUNT: Integer
|
|
170
|
+
IMPORTED_EVENT_TIMEOUT_MUST_BE_ZERO: Integer
|
|
171
|
+
DEBIT_ACCOUNT_ALREADY_CLOSED: Integer
|
|
172
|
+
CREDIT_ACCOUNT_ALREADY_CLOSED: Integer
|
|
173
|
+
OVERFLOWS_DEBITS_PENDING: Integer
|
|
174
|
+
OVERFLOWS_CREDITS_PENDING: Integer
|
|
175
|
+
OVERFLOWS_DEBITS_POSTED: Integer
|
|
176
|
+
OVERFLOWS_CREDITS_POSTED: Integer
|
|
177
|
+
OVERFLOWS_DEBITS: Integer
|
|
178
|
+
OVERFLOWS_CREDITS: Integer
|
|
179
|
+
OVERFLOWS_TIMEOUT: Integer
|
|
180
|
+
EXCEEDS_CREDITS: Integer
|
|
181
|
+
EXCEEDS_DEBITS: Integer
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
class Account
|
|
185
|
+
attr_accessor id: Integer
|
|
186
|
+
attr_accessor debits_pending: Integer
|
|
187
|
+
attr_accessor debits_posted: Integer
|
|
188
|
+
attr_accessor credits_pending: Integer
|
|
189
|
+
attr_accessor credits_posted: Integer
|
|
190
|
+
attr_accessor user_data_128: Integer
|
|
191
|
+
attr_accessor user_data_64: Integer
|
|
192
|
+
attr_accessor user_data_32: Integer
|
|
193
|
+
attr_accessor ledger: Integer
|
|
194
|
+
attr_accessor code: Integer
|
|
195
|
+
attr_accessor flags: Integer
|
|
196
|
+
attr_accessor timestamp: Integer
|
|
197
|
+
|
|
198
|
+
def initialize: (?id: Integer, ?debits_pending: Integer, ?debits_posted: Integer, ?credits_pending: Integer, ?credits_posted: Integer, ?user_data_128: Integer, ?user_data_64: Integer, ?user_data_32: Integer, ?ledger: Integer, ?code: Integer, ?flags: Integer, ?timestamp: Integer) -> void
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
class Transfer
|
|
202
|
+
attr_accessor id: Integer
|
|
203
|
+
attr_accessor debit_account_id: Integer
|
|
204
|
+
attr_accessor credit_account_id: Integer
|
|
205
|
+
attr_accessor amount: Integer
|
|
206
|
+
attr_accessor pending_id: Integer
|
|
207
|
+
attr_accessor user_data_128: Integer
|
|
208
|
+
attr_accessor user_data_64: Integer
|
|
209
|
+
attr_accessor user_data_32: Integer
|
|
210
|
+
attr_accessor timeout: Integer
|
|
211
|
+
attr_accessor ledger: Integer
|
|
212
|
+
attr_accessor code: Integer
|
|
213
|
+
attr_accessor flags: Integer
|
|
214
|
+
attr_accessor timestamp: Integer
|
|
215
|
+
|
|
216
|
+
def initialize: (?id: Integer, ?debit_account_id: Integer, ?credit_account_id: Integer, ?amount: Integer, ?pending_id: Integer, ?user_data_128: Integer, ?user_data_64: Integer, ?user_data_32: Integer, ?timeout: Integer, ?ledger: Integer, ?code: Integer, ?flags: Integer, ?timestamp: Integer) -> void
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
class AccountFilter
|
|
220
|
+
attr_accessor account_id: Integer
|
|
221
|
+
attr_accessor user_data_128: Integer
|
|
222
|
+
attr_accessor user_data_64: Integer
|
|
223
|
+
attr_accessor user_data_32: Integer
|
|
224
|
+
attr_accessor code: Integer
|
|
225
|
+
attr_accessor timestamp_min: Integer
|
|
226
|
+
attr_accessor timestamp_max: Integer
|
|
227
|
+
attr_accessor limit: Integer
|
|
228
|
+
attr_accessor flags: Integer
|
|
229
|
+
|
|
230
|
+
def initialize: (?account_id: Integer, ?user_data_128: Integer, ?user_data_64: Integer, ?user_data_32: Integer, ?code: Integer, ?timestamp_min: Integer, ?timestamp_max: Integer, ?limit: Integer, ?flags: Integer) -> void
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
class QueryFilter
|
|
234
|
+
attr_accessor user_data_128: Integer
|
|
235
|
+
attr_accessor user_data_64: Integer
|
|
236
|
+
attr_accessor user_data_32: Integer
|
|
237
|
+
attr_accessor ledger: Integer
|
|
238
|
+
attr_accessor code: Integer
|
|
239
|
+
attr_accessor timestamp_min: Integer
|
|
240
|
+
attr_accessor timestamp_max: Integer
|
|
241
|
+
attr_accessor limit: Integer
|
|
242
|
+
attr_accessor flags: Integer
|
|
243
|
+
|
|
244
|
+
def initialize: (?user_data_128: Integer, ?user_data_64: Integer, ?user_data_32: Integer, ?ledger: Integer, ?code: Integer, ?timestamp_min: Integer, ?timestamp_max: Integer, ?limit: Integer, ?flags: Integer) -> void
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
class AccountBalance
|
|
248
|
+
attr_reader debits_pending: Integer
|
|
249
|
+
attr_reader debits_posted: Integer
|
|
250
|
+
attr_reader credits_pending: Integer
|
|
251
|
+
attr_reader credits_posted: Integer
|
|
252
|
+
attr_reader timestamp: Integer
|
|
253
|
+
|
|
254
|
+
def initialize: () -> void
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
class CreateAccountResult
|
|
258
|
+
attr_reader timestamp: Integer
|
|
259
|
+
attr_reader status: Integer
|
|
260
|
+
|
|
261
|
+
def initialize: () -> void
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
class CreateTransferResult
|
|
265
|
+
attr_reader timestamp: Integer
|
|
266
|
+
attr_reader status: Integer
|
|
267
|
+
|
|
268
|
+
def initialize: () -> void
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require "mkmf"
|
|
2
|
+
require "rbconfig"
|
|
3
|
+
|
|
4
|
+
arch = RbConfig::CONFIG["target_cpu"]
|
|
5
|
+
target_os = RbConfig::CONFIG["target_os"]
|
|
6
|
+
|
|
7
|
+
platform_arch =
|
|
8
|
+
case arch
|
|
9
|
+
when "x64", "x86_64"
|
|
10
|
+
"x86_64"
|
|
11
|
+
when "arm64", "aarch64"
|
|
12
|
+
"aarch64"
|
|
13
|
+
else
|
|
14
|
+
raise "Unsupported architecture #{arch.inspect}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
platform_os =
|
|
18
|
+
case target_os
|
|
19
|
+
when /linux/
|
|
20
|
+
host_os = RbConfig::CONFIG["host_os"]
|
|
21
|
+
|
|
22
|
+
if host_os.include?("musl") || target_os.include?("musl")
|
|
23
|
+
"linux-musl"
|
|
24
|
+
else
|
|
25
|
+
"linux-gnu*"
|
|
26
|
+
end
|
|
27
|
+
when /darwin/
|
|
28
|
+
"macos"
|
|
29
|
+
when /mingw|mswin/
|
|
30
|
+
raise "Unsupported Windows architecture #{arch.inspect}" unless platform_arch == "x86_64"
|
|
31
|
+
|
|
32
|
+
"windows"
|
|
33
|
+
else
|
|
34
|
+
raise "Unsupported operating system #{target_os.inspect}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
platform = "#{platform_arch}-#{platform_os}"
|
|
38
|
+
|
|
39
|
+
platform_dir = Dir.glob(File.join(__dir__, "lib", platform)).first
|
|
40
|
+
raise "No prebuilt libtb_client found for #{arch}-#{target_os}" unless platform_dir
|
|
41
|
+
|
|
42
|
+
$DLDFLAGS << " -Wl,-rpath,#{platform_dir}" if target_os.match?(/darwin/)
|
|
43
|
+
|
|
44
|
+
dir_config("tb_client", __dir__, platform_dir)
|
|
45
|
+
have_library("tb_client") or raise("libtb_client not found")
|
|
46
|
+
|
|
47
|
+
create_makefile("tigerbeetle/tigerbeetle")
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|