tigerbeetle-node 0.8.1 → 0.9.143

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 (83) hide show
  1. package/README.md +584 -184
  2. package/dist/benchmark.js +59 -51
  3. package/dist/benchmark.js.map +1 -1
  4. package/dist/bin/aarch64-linux-gnu/client.node +0 -0
  5. package/dist/bin/aarch64-linux-musl/client.node +0 -0
  6. package/dist/bin/aarch64-macos/client.node +0 -0
  7. package/dist/bin/x86_64-linux-gnu/client.node +0 -0
  8. package/dist/bin/x86_64-linux-musl/client.node +0 -0
  9. package/dist/bin/x86_64-macos/client.node +0 -0
  10. package/dist/bin/x86_64-windows/client.node +0 -0
  11. package/dist/bindings.d.ts +141 -0
  12. package/dist/bindings.js +112 -0
  13. package/dist/bindings.js.map +1 -0
  14. package/dist/index.d.ts +2 -125
  15. package/dist/index.js +51 -101
  16. package/dist/index.js.map +1 -1
  17. package/dist/test.js +69 -55
  18. package/dist/test.js.map +1 -1
  19. package/package-lock.json +26 -0
  20. package/package.json +17 -28
  21. package/src/benchmark.ts +58 -49
  22. package/src/bindings.ts +631 -0
  23. package/src/index.ts +71 -163
  24. package/src/node.zig +169 -148
  25. package/src/test.ts +71 -57
  26. package/src/translate.zig +19 -36
  27. package/.yarn/releases/yarn-berry.cjs +0 -55
  28. package/.yarnrc.yml +0 -1
  29. package/scripts/download_node_headers.sh +0 -25
  30. package/scripts/postinstall.sh +0 -6
  31. package/src/tigerbeetle/scripts/benchmark.bat +0 -46
  32. package/src/tigerbeetle/scripts/benchmark.sh +0 -55
  33. package/src/tigerbeetle/scripts/install.sh +0 -6
  34. package/src/tigerbeetle/scripts/install_zig.bat +0 -109
  35. package/src/tigerbeetle/scripts/install_zig.sh +0 -84
  36. package/src/tigerbeetle/scripts/lint.zig +0 -199
  37. package/src/tigerbeetle/scripts/upgrade_ubuntu_kernel.sh +0 -39
  38. package/src/tigerbeetle/scripts/vopr.bat +0 -48
  39. package/src/tigerbeetle/scripts/vopr.sh +0 -33
  40. package/src/tigerbeetle/scripts/vr_state_enumerate +0 -46
  41. package/src/tigerbeetle/src/benchmark.zig +0 -290
  42. package/src/tigerbeetle/src/cli.zig +0 -244
  43. package/src/tigerbeetle/src/config.zig +0 -239
  44. package/src/tigerbeetle/src/demo.zig +0 -125
  45. package/src/tigerbeetle/src/demo_01_create_accounts.zig +0 -35
  46. package/src/tigerbeetle/src/demo_02_lookup_accounts.zig +0 -7
  47. package/src/tigerbeetle/src/demo_03_create_transfers.zig +0 -24
  48. package/src/tigerbeetle/src/demo_04_create_pending_transfers.zig +0 -61
  49. package/src/tigerbeetle/src/demo_05_post_pending_transfers.zig +0 -37
  50. package/src/tigerbeetle/src/demo_06_void_pending_transfers.zig +0 -24
  51. package/src/tigerbeetle/src/demo_07_lookup_transfers.zig +0 -7
  52. package/src/tigerbeetle/src/fifo.zig +0 -104
  53. package/src/tigerbeetle/src/io/benchmark.zig +0 -213
  54. package/src/tigerbeetle/src/io/darwin.zig +0 -793
  55. package/src/tigerbeetle/src/io/linux.zig +0 -1038
  56. package/src/tigerbeetle/src/io/test.zig +0 -643
  57. package/src/tigerbeetle/src/io/windows.zig +0 -1161
  58. package/src/tigerbeetle/src/io.zig +0 -34
  59. package/src/tigerbeetle/src/main.zig +0 -144
  60. package/src/tigerbeetle/src/message_bus.zig +0 -1000
  61. package/src/tigerbeetle/src/message_pool.zig +0 -142
  62. package/src/tigerbeetle/src/ring_buffer.zig +0 -289
  63. package/src/tigerbeetle/src/simulator.zig +0 -417
  64. package/src/tigerbeetle/src/state_machine.zig +0 -2470
  65. package/src/tigerbeetle/src/storage.zig +0 -308
  66. package/src/tigerbeetle/src/test/cluster.zig +0 -351
  67. package/src/tigerbeetle/src/test/message_bus.zig +0 -93
  68. package/src/tigerbeetle/src/test/network.zig +0 -179
  69. package/src/tigerbeetle/src/test/packet_simulator.zig +0 -387
  70. package/src/tigerbeetle/src/test/state_checker.zig +0 -145
  71. package/src/tigerbeetle/src/test/state_machine.zig +0 -76
  72. package/src/tigerbeetle/src/test/storage.zig +0 -438
  73. package/src/tigerbeetle/src/test/time.zig +0 -84
  74. package/src/tigerbeetle/src/tigerbeetle.zig +0 -222
  75. package/src/tigerbeetle/src/time.zig +0 -113
  76. package/src/tigerbeetle/src/unit_tests.zig +0 -14
  77. package/src/tigerbeetle/src/vsr/client.zig +0 -505
  78. package/src/tigerbeetle/src/vsr/clock.zig +0 -812
  79. package/src/tigerbeetle/src/vsr/journal.zig +0 -2293
  80. package/src/tigerbeetle/src/vsr/marzullo.zig +0 -309
  81. package/src/tigerbeetle/src/vsr/replica.zig +0 -5015
  82. package/src/tigerbeetle/src/vsr.zig +0 -1017
  83. package/yarn.lock +0 -42
package/src/benchmark.ts CHANGED
@@ -23,32 +23,35 @@ const client = createClient({
23
23
  })
24
24
 
25
25
  const TRANSFER_SIZE = 128
26
- const Zeroed48Bytes = Buffer.alloc(48, 0)
27
26
  const accountA: Account = {
28
27
  id: 137n,
29
- user_data: 0n,
30
- reserved: Zeroed48Bytes,
31
- ledger: 1,
32
- code: 1,
33
- flags: 0,
34
28
  debits_pending: 0n,
35
29
  debits_posted: 0n,
36
30
  credits_pending: 0n,
37
- credits_posted: 0n,
31
+ credits_posted: 0n,
32
+ user_data_128: 0n,
33
+ user_data_64: 0n,
34
+ user_data_32: 0,
35
+ reserved: 0,
36
+ ledger: 1,
37
+ code: 1,
38
+ flags: 0,
38
39
  timestamp: 0n,
39
40
  }
40
41
 
41
42
  const accountB: Account = {
42
43
  id: 138n,
43
- user_data: 0n,
44
- reserved: Zeroed48Bytes,
45
- ledger: 1,
46
- code: 1,
47
- flags: 0,
48
44
  debits_pending: 0n,
49
45
  debits_posted: 0n,
50
46
  credits_pending: 0n,
51
- credits_posted: 0n,
47
+ credits_posted: 0n,
48
+ user_data_128: 0n,
49
+ user_data_64: 0n,
50
+ user_data_32: 0,
51
+ reserved: 0,
52
+ ledger: 1,
53
+ code: 1,
54
+ flags: 0,
52
55
  timestamp: 0n,
53
56
  }
54
57
 
@@ -63,7 +66,7 @@ const rawCreateTransfers = async (batch: Buffer): Promise<CreateTransfersError[]
63
66
  }
64
67
 
65
68
  try {
66
- client.rawRequest(Operation.CREATE_TRANSFER, batch, callback)
69
+ client.rawRequest(Operation.create_transfers, batch, callback)
67
70
  } catch (error) {
68
71
  reject(error)
69
72
  }
@@ -74,17 +77,18 @@ const rawCreateTransfers = async (batch: Buffer): Promise<CreateTransfersError[]
74
77
  * This encoding function is only for this benchmark script.
75
78
  *
76
79
  * ID_OFFSET = 0 (0 -> 16)
77
- * DEBIT_ACCOUNT_ID_OFFSET = 0 + 16 = 16 (16 -> 32)
78
- * CREDIT_ACCOUNT_ID_OFFSET = 16 + 16 = 32 (32 -> 48)
79
- * USER_DATA_OFFSET = 32 + 16 = 48 (48 -> 64)
80
- * RESERVED_OFFSET = 48 + 16 = 64 (64 -> 80)
81
- * PENDING_ID_OFFSET = 64 + 16 = 80 (80 -> 96)
82
- * TIMEOUT_OFFSET = 96 + 8 = 104 (96 -> 104)
83
- * LEDGER_OFFSET = 104 + 4 = 108 (104 -> 108)
84
- * CODE_OFFSET = 108 + 2 = 110 (108 -> 110)
85
- * FLAGS_OFFSET = 110 + 2 = 112 (110 -> 112)
86
- * AMOUNT_OFFSET = 112 + 8 = 120 (112 -> 120)
87
- * TIMESTAMP = 120 + 8 = 128 (120 -> 128)
80
+ * DEBIT_ACCOUNT_ID_OFFSET = 0 + 16 = 16 (16 -> 32)
81
+ * CREDIT_ACCOUNT_ID_OFFSET = 16 + 16 = 32 (32 -> 48)
82
+ * AMOUNT_OFFSET = 48 + 16 = 64 (48 -> 64)
83
+ * PENDING_ID_OFFSET = 64 + 16 = 80 (64 -> 80)
84
+ * USER_DATA_128_OFFSET = 80 + 16 = 96 (80 -> 96)
85
+ * USER_DATA_64_OFFSET = 96 + 8 = 104 (96 -> 104)
86
+ * USER_DATA_32_OFFSET = 104 + 4 = 108 (104 -> 108)
87
+ * TIMEOUT_OFFSET = 108 + 4 = 112 (108 -> 112)
88
+ * LEDGER_OFFSET = 112 + 4 = 116 (112 -> 116)
89
+ * CODE_OFFSET = 116 + 2 = 118 (116 -> 118)
90
+ * FLAGS_OFFSET = 118 + 2 = 120 (118 -> 120)
91
+ * TIMESTAMP = 120 + 8 = 128 (120 -> 128)
88
92
  */
89
93
  const encodeTransfer = (transfer: Transfer, offset: number, output: Buffer): void => {
90
94
  assert(BigInt((offset + TRANSFER_SIZE)) <= BigInt(output.length), `Transfer ${transfer} exceeds buffer of ${output}!`)
@@ -92,14 +96,15 @@ const encodeTransfer = (transfer: Transfer, offset: number, output: Buffer): voi
92
96
  output.writeBigUInt64LE(transfer.id, offset)
93
97
  output.writeBigUInt64LE(transfer.debit_account_id, offset + 16)
94
98
  output.writeBigUInt64LE(transfer.credit_account_id, offset + 32)
95
- output.writeBigUInt64LE(transfer.user_data, offset + 48)
96
- output.writeBigUInt64LE(transfer.reserved, offset + 64)
97
- output.writeBigUInt64LE(transfer.pending_id, offset + 80)
98
- output.writeBigUInt64LE(transfer.timeout, offset + 96)
99
- output.writeUInt32LE(transfer.ledger, offset + 104)
100
- output.writeUInt32LE(transfer.code, offset + 108)
101
- output.writeUInt32LE(transfer.flags, offset + 110)
102
- output.writeBigUInt64LE(transfer.amount, offset + 112)
99
+ output.writeBigUInt64LE(transfer.amount, offset + 48)
100
+ output.writeBigUInt64LE(transfer.pending_id, offset + 64)
101
+ output.writeBigUInt64LE(transfer.user_data_128, offset + 80)
102
+ output.writeBigUInt64LE(transfer.user_data_64, offset + 96)
103
+ output.writeInt32LE(transfer.user_data_32, offset + 104)
104
+ output.writeInt32LE(transfer.timeout, offset + 108)
105
+ output.writeUInt32LE(transfer.ledger, offset + 112)
106
+ output.writeUInt32LE(transfer.code, offset + 116)
107
+ output.writeUInt32LE(transfer.flags, offset + 118)
103
108
  output.writeBigUInt64LE(transfer.timestamp, offset + 120)
104
109
  }
105
110
 
@@ -125,14 +130,15 @@ const runBenchmarkRawRequest = async () => {
125
130
  id: BigInt(count),
126
131
  debit_account_id: accountA.id,
127
132
  credit_account_id: accountB.id,
128
- user_data: 0n,
129
- reserved: 0n,
133
+ amount: 1n,
130
134
  pending_id: 0n,
131
- timeout: IS_TWO_PHASE_TRANSFER ? BigInt(2e9) : 0n,
135
+ user_data_128: 0n,
136
+ user_data_64: 0n,
137
+ user_data_32: 0,
138
+ timeout: IS_TWO_PHASE_TRANSFER ? 2 : 0,
132
139
  ledger: 1,
133
140
  code: 1,
134
141
  flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.pending : 0,
135
- amount: 1n,
136
142
  timestamp: 0n,
137
143
  },
138
144
  i * TRANSFER_SIZE,
@@ -145,14 +151,15 @@ const runBenchmarkRawRequest = async () => {
145
151
  id: BigInt((MAX_TRANSFERS + count)),
146
152
  debit_account_id: accountA.id,
147
153
  credit_account_id: accountB.id,
148
- user_data: 0n,
149
- reserved: 0n,
154
+ amount: 1n,
150
155
  pending_id: BigInt(count),
151
- timeout: 0n,
156
+ user_data_128: 0n,
157
+ user_data_64: 0n,
158
+ user_data_32: 0,
159
+ timeout: 0,
152
160
  ledger: 1,
153
161
  code: 1,
154
162
  flags: TransferFlags.post_pending_transfer,
155
- amount: 1n,
156
163
  timestamp: 0n,
157
164
  },
158
165
  i * TRANSFER_SIZE,
@@ -222,14 +229,15 @@ const runBenchmark = async () => {
222
229
  id: BigInt(count),
223
230
  debit_account_id: accountA.id,
224
231
  credit_account_id: accountB.id,
232
+ amount: 1n,
225
233
  pending_id: 0n,
234
+ user_data_128: 0n,
235
+ user_data_64: 0n,
236
+ user_data_32: 0,
237
+ timeout: IS_TWO_PHASE_TRANSFER ? 2 : 0,
226
238
  code: 1,
227
239
  ledger: 1,
228
- reserved: 0n,
229
- user_data: 0n,
230
240
  flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.pending : 0,
231
- amount: 1n,
232
- timeout: IS_TWO_PHASE_TRANSFER ? BigInt(2e9) : 0n,
233
241
  timestamp: 0n,
234
242
  })
235
243
 
@@ -238,14 +246,15 @@ const runBenchmark = async () => {
238
246
  id: BigInt(MAX_TRANSFERS + count),
239
247
  debit_account_id: accountA.id,
240
248
  credit_account_id: accountB.id,
249
+ amount: 1n,
241
250
  pending_id: BigInt(count),
251
+ user_data_128: 0n,
252
+ user_data_64: 0n,
253
+ user_data_32: 0,
254
+ timeout: 0,
242
255
  code: 1,
243
256
  ledger: 1,
244
- reserved: 0n,
245
- user_data: 0n,
246
257
  flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.post_pending_transfer : 0,
247
- amount: 1n,
248
- timeout: 0n,
249
258
  timestamp: 0n,
250
259
  })
251
260
  }