@aztec/bb.js 3.0.0-nightly.20251016 → 3.0.0-nightly.20251023
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.
- package/README.md +12 -78
- package/dest/browser/barretenberg/backend.d.ts +1 -1
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +21 -13
- package/dest/browser/barretenberg/index.d.ts +44 -43
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +130 -79
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +54 -13
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/bb_backends/browser/index.d.ts +11 -0
- package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/index.js +39 -0
- package/dest/browser/bb_backends/index.d.ts +45 -0
- package/dest/browser/bb_backends/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/index.js +15 -0
- package/dest/browser/bb_backends/interface.d.ts +33 -0
- package/dest/browser/bb_backends/interface.d.ts.map +1 -0
- package/dest/browser/bb_backends/interface.js +2 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
- package/dest/browser/bb_backends/wasm.d.ts +56 -0
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
- package/dest/browser/bb_backends/wasm.js +90 -0
- package/dest/browser/cbind/generate.js +2 -7
- package/dest/browser/cbind/generated/api_types.d.ts +1167 -0
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +1609 -47
- package/dest/browser/cbind/generated/async.d.ts +38 -4
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +327 -21
- package/dest/browser/cbind/generated/sync.d.ts +39 -5
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +294 -21
- package/dest/browser/cbind/schema_compiler.d.ts +2 -4
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +74 -178
- package/dest/browser/index.d.ts +2 -2
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +3 -3
- package/dest/browser/serialize/index.d.ts +0 -1
- package/dest/browser/serialize/index.d.ts.map +1 -1
- package/dest/browser/serialize/index.js +1 -2
- package/dest/browser/serialize/serialize.d.ts +0 -35
- package/dest/browser/serialize/serialize.d.ts.map +1 -1
- package/dest/browser/serialize/serialize.js +1 -68
- package/dest/browser/types/fields.d.ts.map +1 -1
- package/dest/browser/types/fields.js +3 -3
- package/dest/browser/types/index.d.ts +0 -3
- package/dest/browser/types/index.d.ts.map +1 -1
- package/dest/browser/types/index.js +1 -4
- package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
- package/dest/node/barretenberg/backend.d.ts +1 -1
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +21 -13
- package/dest/node/barretenberg/blake2s.test.js +21 -18
- package/dest/node/barretenberg/index.d.ts +44 -43
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +130 -79
- package/dest/node/barretenberg/pedersen.test.js +24 -17
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.bench.test.js +216 -0
- package/dest/node/barretenberg/poseidon.test.js +15 -15
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +54 -13
- package/dest/node/barretenberg_wasm/index.test.js +11 -10
- package/dest/node/bb_backends/browser/index.d.ts +11 -0
- package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/index.js +39 -0
- package/dest/node/bb_backends/index.d.ts +45 -0
- package/dest/node/bb_backends/index.d.ts.map +1 -0
- package/dest/node/bb_backends/index.js +15 -0
- package/dest/node/bb_backends/interface.d.ts +33 -0
- package/dest/node/bb_backends/interface.d.ts.map +1 -0
- package/dest/node/bb_backends/interface.js +2 -0
- package/dest/node/bb_backends/node/index.d.ts +11 -0
- package/dest/node/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node/bb_backends/node/index.js +80 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_pipe.js +113 -0
- package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +150 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_socket.js +269 -0
- package/dest/node/bb_backends/node/platform.d.ts +27 -0
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/node/platform.js +124 -0
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
- package/dest/node/bb_backends/wasm.d.ts +56 -0
- package/dest/node/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node/bb_backends/wasm.js +90 -0
- package/dest/node/cbind/generate.js +2 -7
- package/dest/node/cbind/generated/api_types.d.ts +1167 -0
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +1609 -47
- package/dest/node/cbind/generated/async.d.ts +38 -4
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +327 -21
- package/dest/node/cbind/generated/sync.d.ts +39 -5
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +294 -21
- package/dest/node/cbind/schema_compiler.d.ts +2 -4
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +74 -178
- package/dest/node/index.d.ts +2 -2
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +3 -3
- package/dest/node/serialize/index.d.ts +0 -1
- package/dest/node/serialize/index.d.ts.map +1 -1
- package/dest/node/serialize/index.js +1 -2
- package/dest/node/serialize/serialize.d.ts +0 -35
- package/dest/node/serialize/serialize.d.ts.map +1 -1
- package/dest/node/serialize/serialize.js +1 -68
- package/dest/node/types/fields.d.ts.map +1 -1
- package/dest/node/types/fields.js +3 -3
- package/dest/node/types/index.d.ts +0 -3
- package/dest/node/types/index.d.ts.map +1 -1
- package/dest/node/types/index.js +1 -4
- package/dest/node-cjs/barretenberg/backend.d.ts +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +20 -12
- package/dest/node-cjs/barretenberg/blake2s.test.js +19 -16
- package/dest/node-cjs/barretenberg/index.d.ts +44 -43
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +136 -84
- package/dest/node-cjs/barretenberg/pedersen.test.js +24 -17
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +218 -0
- package/dest/node-cjs/barretenberg/poseidon.test.js +15 -15
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +54 -13
- package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
- package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/index.js +43 -0
- package/dest/node-cjs/bb_backends/index.d.ts +45 -0
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/index.js +18 -0
- package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
- package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/interface.js +3 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/index.js +84 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/platform.js +131 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts +56 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/wasm.js +95 -0
- package/dest/node-cjs/cbind/generate.js +1 -6
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1167 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +1747 -47
- package/dest/node-cjs/cbind/generated/async.d.ts +38 -4
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +326 -20
- package/dest/node-cjs/cbind/generated/sync.d.ts +39 -5
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +293 -20
- package/dest/node-cjs/cbind/schema_compiler.d.ts +2 -4
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +74 -179
- package/dest/node-cjs/index.d.ts +2 -2
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +3 -3
- package/dest/node-cjs/serialize/index.d.ts +0 -1
- package/dest/node-cjs/serialize/index.d.ts.map +1 -1
- package/dest/node-cjs/serialize/index.js +1 -2
- package/dest/node-cjs/serialize/serialize.d.ts +0 -35
- package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
- package/dest/node-cjs/serialize/serialize.js +1 -79
- package/dest/node-cjs/types/fields.d.ts.map +1 -1
- package/dest/node-cjs/types/fields.js +2 -2
- package/dest/node-cjs/types/index.d.ts +0 -3
- package/dest/node-cjs/types/index.d.ts.map +1 -1
- package/dest/node-cjs/types/index.js +1 -4
- package/package.json +3 -4
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
- package/src/barretenberg/backend.ts +37 -32
- package/src/barretenberg/blake2s.test.ts +20 -21
- package/src/barretenberg/index.ts +136 -117
- package/src/barretenberg/pedersen.test.ts +23 -16
- package/src/barretenberg/poseidon.bench.test.ts +267 -0
- package/src/barretenberg/poseidon.test.ts +14 -14
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +3 -3
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +66 -15
- package/src/barretenberg_wasm/index.test.ts +12 -11
- package/src/bb_backends/browser/index.ts +50 -0
- package/src/bb_backends/index.ts +49 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +94 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +171 -0
- package/src/bb_backends/node/native_socket.ts +312 -0
- package/src/bb_backends/node/platform.ts +151 -0
- package/src/bb_backends/sync_to_async_adapter.ts +21 -0
- package/src/bb_backends/wasm.ts +110 -0
- package/src/cbind/README.md +1 -1
- package/src/cbind/generate.ts +0 -6
- package/src/cbind/schema_compiler.ts +131 -241
- package/src/index.ts +2 -1
- package/src/serialize/index.ts +0 -1
- package/src/serialize/serialize.ts +0 -82
- package/src/types/fields.ts +2 -2
- package/src/types/index.ts +0 -3
- package/dest/browser/barretenberg_api/index.d.ts +0 -109
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.js +0 -699
- package/dest/browser/cbind/generated/native.d.ts +0 -31
- package/dest/browser/cbind/generated/native.d.ts.map +0 -1
- package/dest/browser/cbind/generated/native.js +0 -234
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg/common.test.d.ts +0 -2
- package/dest/node/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node/barretenberg/common.test.js +0 -20
- package/dest/node/barretenberg_api/index.d.ts +0 -109
- package/dest/node/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node/barretenberg_api/index.js +0 -699
- package/dest/node/bindgen/function_declaration.d.ts +0 -11
- package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node/bindgen/function_declaration.js +0 -2
- package/dest/node/bindgen/index.d.ts +0 -2
- package/dest/node/bindgen/index.d.ts.map +0 -1
- package/dest/node/bindgen/index.js +0 -15
- package/dest/node/bindgen/mappings.d.ts +0 -4
- package/dest/node/bindgen/mappings.d.ts.map +0 -1
- package/dest/node/bindgen/mappings.js +0 -64
- package/dest/node/bindgen/rust.d.ts +0 -2
- package/dest/node/bindgen/rust.d.ts.map +0 -1
- package/dest/node/bindgen/rust.js +0 -43
- package/dest/node/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node/bindgen/to_camel_case.js +0 -11
- package/dest/node/bindgen/typescript.d.ts +0 -2
- package/dest/node/bindgen/typescript.d.ts.map +0 -1
- package/dest/node/bindgen/typescript.js +0 -100
- package/dest/node/cbind/generated/native.d.ts +0 -31
- package/dest/node/cbind/generated/native.d.ts.map +0 -1
- package/dest/node/cbind/generated/native.js +0 -234
- package/dest/node/main.d.ts +0 -13
- package/dest/node/main.d.ts.map +0 -1
- package/dest/node/main.js +0 -459
- package/dest/node/serialize/output_type.d.ts +0 -11
- package/dest/node/serialize/output_type.d.ts.map +0 -1
- package/dest/node/serialize/output_type.js +0 -44
- package/dest/node/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node/types/fixed_size_buffer.js +0 -51
- package/dest/node/types/ptr.d.ts +0 -13
- package/dest/node/types/ptr.d.ts.map +0 -1
- package/dest/node/types/ptr.js +0 -19
- package/dest/node/types/raw_buffer.d.ts +0 -3
- package/dest/node/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/types/raw_buffer.js +0 -5
- package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/common.test.js +0 -22
- package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg_api/index.js +0 -704
- package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/function_declaration.js +0 -3
- package/dest/node-cjs/bindgen/index.d.ts +0 -2
- package/dest/node-cjs/bindgen/index.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/index.js +0 -17
- package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
- package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/mappings.js +0 -69
- package/dest/node-cjs/bindgen/rust.d.ts +0 -2
- package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/rust.js +0 -47
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
- package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
- package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/typescript.js +0 -104
- package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
- package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
- package/dest/node-cjs/cbind/generated/native.js +0 -238
- package/dest/node-cjs/main.d.ts +0 -13
- package/dest/node-cjs/main.d.ts.map +0 -1
- package/dest/node-cjs/main.js +0 -470
- package/dest/node-cjs/serialize/output_type.d.ts +0 -11
- package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
- package/dest/node-cjs/serialize/output_type.js +0 -51
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
- package/dest/node-cjs/types/ptr.d.ts +0 -13
- package/dest/node-cjs/types/ptr.d.ts.map +0 -1
- package/dest/node-cjs/types/ptr.js +0 -23
- package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
- package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/raw_buffer.js +0 -9
- package/src/barretenberg/common.test.ts +0 -23
- package/src/barretenberg_api/index.ts +0 -1216
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -67
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -116
- package/src/main.ts +0 -534
- package/src/serialize/output_type.ts +0 -53
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js';
|
|
2
|
+
import { getRemoteBarretenbergWasm } from '../barretenberg_wasm/helpers/index.js';
|
|
3
|
+
import { fetchModuleAndThreads } from '../barretenberg_wasm/index.js';
|
|
2
4
|
describe('barretenberg wasm', () => {
|
|
3
|
-
let api;
|
|
4
5
|
let wasm;
|
|
6
|
+
let worker;
|
|
5
7
|
beforeAll(async () => {
|
|
6
|
-
|
|
7
|
-
wasm =
|
|
8
|
+
worker = await createMainWorker();
|
|
9
|
+
wasm = getRemoteBarretenbergWasm(worker);
|
|
10
|
+
const { module, threads } = await fetchModuleAndThreads(2);
|
|
11
|
+
await wasm.init(module, threads);
|
|
8
12
|
}, 20000);
|
|
9
13
|
afterAll(async () => {
|
|
10
|
-
await
|
|
14
|
+
await wasm.destroy();
|
|
15
|
+
await worker.terminate();
|
|
11
16
|
});
|
|
12
17
|
it('should new malloc, transfer and slice mem', async () => {
|
|
13
18
|
const length = 1024;
|
|
@@ -21,10 +26,6 @@ describe('barretenberg wasm', () => {
|
|
|
21
26
|
it('test abort', async () => {
|
|
22
27
|
await expect(() => wasm.call('test_abort')).rejects.toThrow();
|
|
23
28
|
});
|
|
24
|
-
it('test c/c++ stdout/stderr', async () => {
|
|
25
|
-
// We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
|
|
26
|
-
await wasm.call('test_stdout_stderr');
|
|
27
|
-
});
|
|
28
29
|
it('should new malloc, transfer and slice mem', async () => {
|
|
29
30
|
const length = 1024;
|
|
30
31
|
const ptr = await wasm.call('bbmalloc', length);
|
|
@@ -35,4 +36,4 @@ describe('barretenberg wasm', () => {
|
|
|
35
36
|
expect(result).toStrictEqual(buf);
|
|
36
37
|
});
|
|
37
38
|
});
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9pbmRleC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRXJHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3RFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsSUFBSSxJQUFnQyxDQUFDO0lBQ3JDLElBQUksTUFBYyxDQUFDO0lBRW5CLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixNQUFNLEdBQUcsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksR0FBRyx5QkFBeUIsQ0FBNkIsTUFBTSxDQUFDLENBQUM7UUFDckUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRVYsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Barretenberg, BarretenbergSync } from '../../barretenberg/index.js';
|
|
2
|
+
import { BackendOptions, BackendType } from '../index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create backend of specific type (no fallback)
|
|
5
|
+
*/
|
|
6
|
+
export declare function createAsyncBackend(type: BackendType, options: BackendOptions, logger: (msg: string) => void): Promise<Barretenberg>;
|
|
7
|
+
/**
|
|
8
|
+
* Create backend of specific type (no fallback)
|
|
9
|
+
*/
|
|
10
|
+
export declare function createSyncBackend(type: BackendType, options: BackendOptions, logger: (msg: string) => void): Promise<BarretenbergSync>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/browser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BarretenbergWasmSyncBackend, BarretenbergWasmAsyncBackend } from '../wasm.js';
|
|
2
|
+
import { Barretenberg, BarretenbergSync } from '../../barretenberg/index.js';
|
|
3
|
+
import { BackendType } from '../index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create backend of specific type (no fallback)
|
|
6
|
+
*/
|
|
7
|
+
export async function createAsyncBackend(type, options, logger) {
|
|
8
|
+
switch (type) {
|
|
9
|
+
case BackendType.Wasm:
|
|
10
|
+
case BackendType.WasmWorker: {
|
|
11
|
+
const useWorker = type === BackendType.WasmWorker;
|
|
12
|
+
logger(`Using WASM backend (worker: ${useWorker})`);
|
|
13
|
+
const wasm = await BarretenbergWasmAsyncBackend.new({
|
|
14
|
+
threads: options.threads,
|
|
15
|
+
wasmPath: options.wasmPath,
|
|
16
|
+
logger,
|
|
17
|
+
memory: options.memory,
|
|
18
|
+
useWorker,
|
|
19
|
+
});
|
|
20
|
+
return new Barretenberg(wasm, options);
|
|
21
|
+
}
|
|
22
|
+
default:
|
|
23
|
+
throw new Error(`Unknown backend type: ${type}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create backend of specific type (no fallback)
|
|
28
|
+
*/
|
|
29
|
+
export async function createSyncBackend(type, options, logger) {
|
|
30
|
+
switch (type) {
|
|
31
|
+
case BackendType.Wasm:
|
|
32
|
+
logger('Using WASM backend');
|
|
33
|
+
const wasm = await BarretenbergWasmSyncBackend.new(options.wasmPath, logger);
|
|
34
|
+
return new BarretenbergSync(wasm);
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Backend ${type} not supported for BarretenbergSync`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmJfYmFja2VuZHMvYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsSUFBaUIsRUFDakIsT0FBdUIsRUFDdkIsTUFBNkI7SUFFN0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQztRQUN0QixLQUFLLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ2xELE1BQU0sQ0FBQywrQkFBK0IsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBRyxNQUFNLDRCQUE0QixDQUFDLEdBQUcsQ0FBQztnQkFDbEQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUN4QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLE1BQU07Z0JBQ04sTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixTQUFTO2FBQ1YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVEO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsSUFBaUIsRUFDakIsT0FBdUIsRUFDdkIsTUFBNkI7SUFFN0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssV0FBVyxDQUFDLElBQUk7WUFDbkIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3RSxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxxQ0FBcUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend types for Barretenberg
|
|
3
|
+
*/
|
|
4
|
+
export declare enum BackendType {
|
|
5
|
+
/** WASM direct execution (no worker) */
|
|
6
|
+
Wasm = "wasm",
|
|
7
|
+
/** WASM with worker threads */
|
|
8
|
+
WasmWorker = "wasm-worker",
|
|
9
|
+
/** Native via Unix domain socket (async only) */
|
|
10
|
+
NativeUnixSocket = "native-unix-socket",
|
|
11
|
+
/** Native via shared memory (sync only currently) */
|
|
12
|
+
NativeSharedMemory = "native-shared-mem"
|
|
13
|
+
}
|
|
14
|
+
export type BackendOptions = {
|
|
15
|
+
/** @description Number of threads to run the backend worker on */
|
|
16
|
+
threads?: number;
|
|
17
|
+
/** @description Initial and Maximum memory to be alloted to the backend worker */
|
|
18
|
+
memory?: {
|
|
19
|
+
initial?: number;
|
|
20
|
+
maximum?: number;
|
|
21
|
+
};
|
|
22
|
+
/** @description Path to download CRS files */
|
|
23
|
+
crsPath?: string;
|
|
24
|
+
/** @description Path to download WASM files */
|
|
25
|
+
wasmPath?: string;
|
|
26
|
+
/** @description Custom path to bb binary for native backend (overrides automatic detection) */
|
|
27
|
+
bbPath?: string;
|
|
28
|
+
/** @description Logging function */
|
|
29
|
+
logger?: (msg: string) => void;
|
|
30
|
+
/**
|
|
31
|
+
* @description Maximum concurrent clients for shared memory IPC server (default: 1)
|
|
32
|
+
* Only applies to NativeSharedMemory backend
|
|
33
|
+
*/
|
|
34
|
+
maxClients?: number;
|
|
35
|
+
/**
|
|
36
|
+
* @description Specify exact backend to use
|
|
37
|
+
* - If unset: tries backends in default order with fallback
|
|
38
|
+
* - If set: must succeed with specified backend or throw error (no fallback)
|
|
39
|
+
*
|
|
40
|
+
* Barretenberg (async) supports: all types
|
|
41
|
+
* BarretenbergSync supports: Wasm, NativeSharedMem only
|
|
42
|
+
*/
|
|
43
|
+
backend?: BackendType;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bb_backends/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,WAAW;IACrB,wCAAwC;IACxC,IAAI,SAAS;IACb,+BAA+B;IAC/B,UAAU,gBAAgB;IAC1B,iDAAiD;IACjD,gBAAgB,uBAAuB;IACvC,qDAAqD;IACrD,kBAAkB,sBAAsB;CACzC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kFAAkF;IAClF,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEhD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend types for Barretenberg
|
|
3
|
+
*/
|
|
4
|
+
export var BackendType;
|
|
5
|
+
(function (BackendType) {
|
|
6
|
+
/** WASM direct execution (no worker) */
|
|
7
|
+
BackendType["Wasm"] = "wasm";
|
|
8
|
+
/** WASM with worker threads */
|
|
9
|
+
BackendType["WasmWorker"] = "wasm-worker";
|
|
10
|
+
/** Native via Unix domain socket (async only) */
|
|
11
|
+
BackendType["NativeUnixSocket"] = "native-unix-socket";
|
|
12
|
+
/** Native via shared memory (sync only currently) */
|
|
13
|
+
BackendType["NativeSharedMemory"] = "native-shared-mem";
|
|
14
|
+
})(BackendType || (BackendType = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmJfYmFja2VuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ3JCLHdDQUF3QztJQUN4Qyw0QkFBYSxDQUFBO0lBQ2IsK0JBQStCO0lBQy9CLHlDQUEwQixDQUFBO0lBQzFCLGlEQUFpRDtJQUNqRCxzREFBdUMsQ0FBQTtJQUN2QyxxREFBcUQ7SUFDckQsdURBQXdDLENBQUE7QUFDMUMsQ0FBQyxFQVRXLFdBQVcsS0FBWCxXQUFXLFFBU3RCIn0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic interface for msgpack backend implementations.
|
|
3
|
+
* Both WASM and native binary backends implement this interface.
|
|
4
|
+
*/
|
|
5
|
+
export interface IMsgpackBackend {
|
|
6
|
+
/**
|
|
7
|
+
* Execute a msgpack command and return the msgpack response.
|
|
8
|
+
* @param inputBuffer The msgpack-encoded input buffer
|
|
9
|
+
* @returns The msgpack-encoded response buffer (sync or async)
|
|
10
|
+
*/
|
|
11
|
+
call(inputBuffer: Uint8Array): Uint8Array | Promise<Uint8Array>;
|
|
12
|
+
/**
|
|
13
|
+
* Clean up resources.
|
|
14
|
+
*/
|
|
15
|
+
destroy(): void | Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Synchronous variant of IMsgpackBackend.
|
|
19
|
+
* Used by BarretenbergSync and SyncApi.
|
|
20
|
+
*/
|
|
21
|
+
export interface IMsgpackBackendSync extends IMsgpackBackend {
|
|
22
|
+
call(inputBuffer: Uint8Array): Uint8Array;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Asynchronous variant of IMsgpackBackend.
|
|
27
|
+
* Used by Barretenberg and AsyncApi.
|
|
28
|
+
*/
|
|
29
|
+
export interface IMsgpackBackendAsync extends IMsgpackBackend {
|
|
30
|
+
call(inputBuffer: Uint8Array): Promise<Uint8Array>;
|
|
31
|
+
destroy(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/bb_backends/interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhE;;OAEG;IACH,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Barretenberg, BarretenbergSync } from '../../barretenberg/index.js';
|
|
2
|
+
import { BackendOptions, BackendType } from '../index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create backend of specific type (no fallback)
|
|
5
|
+
*/
|
|
6
|
+
export declare function createAsyncBackend(type: BackendType, options: BackendOptions, logger: (msg: string) => void): Promise<Barretenberg>;
|
|
7
|
+
/**
|
|
8
|
+
* Create backend of specific type (no fallback)
|
|
9
|
+
*/
|
|
10
|
+
export declare function createSyncBackend(type: BackendType, options: BackendOptions, logger: (msg: string) => void): Promise<BarretenbergSync>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/node/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,YAAY,CAAC,CA6CvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BarretenbergNativeSocketAsyncBackend } from './native_socket.js';
|
|
2
|
+
import { BarretenbergWasmSyncBackend, BarretenbergWasmAsyncBackend } from '../wasm.js';
|
|
3
|
+
import { BarretenbergNativeShmSyncBackend } from './native_shm.js';
|
|
4
|
+
import { SyncToAsyncAdapter } from '../sync_to_async_adapter.js';
|
|
5
|
+
import { findBbBinary, findNapiBinary } from './platform.js';
|
|
6
|
+
import { Barretenberg, BarretenbergSync } from '../../barretenberg/index.js';
|
|
7
|
+
import { BackendType } from '../index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create backend of specific type (no fallback)
|
|
10
|
+
*/
|
|
11
|
+
export async function createAsyncBackend(type, options, logger) {
|
|
12
|
+
switch (type) {
|
|
13
|
+
case BackendType.NativeUnixSocket: {
|
|
14
|
+
const bbPath = findBbBinary(options.bbPath);
|
|
15
|
+
if (!bbPath) {
|
|
16
|
+
throw new Error('Native backend requires bb binary.');
|
|
17
|
+
}
|
|
18
|
+
logger(`Using native Unix socket backend: ${bbPath}`);
|
|
19
|
+
const socket = new BarretenbergNativeSocketAsyncBackend(bbPath, options.threads);
|
|
20
|
+
return new Barretenberg(socket, options);
|
|
21
|
+
}
|
|
22
|
+
case BackendType.NativeSharedMemory: {
|
|
23
|
+
const bbPath = findBbBinary(options.bbPath);
|
|
24
|
+
if (!bbPath) {
|
|
25
|
+
throw new Error('Native backend requires bb binary.');
|
|
26
|
+
}
|
|
27
|
+
const napiPath = findNapiBinary();
|
|
28
|
+
if (!napiPath) {
|
|
29
|
+
throw new Error('Native sync backend requires napi client stub.');
|
|
30
|
+
}
|
|
31
|
+
logger(`Using native shared memory backend (via sync adapter): ${bbPath}`);
|
|
32
|
+
// Use sync backend with adapter to provide async interface
|
|
33
|
+
const syncBackend = await BarretenbergNativeShmSyncBackend.new(bbPath, options.threads, options.maxClients);
|
|
34
|
+
const asyncBackend = new SyncToAsyncAdapter(syncBackend);
|
|
35
|
+
return new Barretenberg(asyncBackend, options);
|
|
36
|
+
}
|
|
37
|
+
case BackendType.Wasm:
|
|
38
|
+
case BackendType.WasmWorker: {
|
|
39
|
+
const useWorker = type === BackendType.WasmWorker;
|
|
40
|
+
logger(`Using WASM backend (worker: ${useWorker})`);
|
|
41
|
+
const wasm = await BarretenbergWasmAsyncBackend.new({
|
|
42
|
+
threads: options.threads,
|
|
43
|
+
wasmPath: options.wasmPath,
|
|
44
|
+
logger: options.logger,
|
|
45
|
+
memory: options.memory,
|
|
46
|
+
useWorker,
|
|
47
|
+
});
|
|
48
|
+
return new Barretenberg(wasm, options);
|
|
49
|
+
}
|
|
50
|
+
default:
|
|
51
|
+
throw new Error(`Unknown backend type: ${type}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create backend of specific type (no fallback)
|
|
56
|
+
*/
|
|
57
|
+
export async function createSyncBackend(type, options, logger) {
|
|
58
|
+
switch (type) {
|
|
59
|
+
case BackendType.NativeSharedMemory: {
|
|
60
|
+
const bbPath = findBbBinary(options.bbPath);
|
|
61
|
+
if (!bbPath) {
|
|
62
|
+
throw new Error('Native backend requires bb binary.');
|
|
63
|
+
}
|
|
64
|
+
const napiPath = findNapiBinary();
|
|
65
|
+
if (!napiPath) {
|
|
66
|
+
throw new Error('Native sync backend requires napi client stub.');
|
|
67
|
+
}
|
|
68
|
+
logger(`Using native shared memory backend: ${bbPath}`);
|
|
69
|
+
const shm = await BarretenbergNativeShmSyncBackend.new(bbPath, options.threads, options.maxClients);
|
|
70
|
+
return new BarretenbergSync(shm);
|
|
71
|
+
}
|
|
72
|
+
case BackendType.Wasm:
|
|
73
|
+
logger('Using WASM backend');
|
|
74
|
+
const wasm = await BarretenbergWasmSyncBackend.new(options.wasmPath, logger);
|
|
75
|
+
return new BarretenbergSync(wasm);
|
|
76
|
+
default:
|
|
77
|
+
throw new Error(`Backend ${type} not supported for BarretenbergSync`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmJfYmFja2VuZHMvbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsSUFBaUIsRUFDakIsT0FBdUIsRUFDdkIsTUFBNkI7SUFFN0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNELE1BQU0sQ0FBQyxxQ0FBcUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLG9DQUFvQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakYsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVB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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IMsgpackBackendAsync } from '../interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* Asynchronous native backend that communicates with bb binary via stdin/stdout.
|
|
4
|
+
* Uses event-based I/O with a state machine to handle partial reads.
|
|
5
|
+
*
|
|
6
|
+
* Protocol:
|
|
7
|
+
* - Request: 4-byte little-endian length + msgpack buffer
|
|
8
|
+
* - Response: 4-byte little-endian length + msgpack buffer
|
|
9
|
+
*/
|
|
10
|
+
export declare class BarretenbergNativePipeAsyncBackend implements IMsgpackBackendAsync {
|
|
11
|
+
private process;
|
|
12
|
+
private pendingResolve;
|
|
13
|
+
private pendingReject;
|
|
14
|
+
private readingLength;
|
|
15
|
+
private lengthBuffer;
|
|
16
|
+
private lengthBytesRead;
|
|
17
|
+
private responseLength;
|
|
18
|
+
private responseBuffer;
|
|
19
|
+
private responseBytesRead;
|
|
20
|
+
constructor(bbBinaryPath: string);
|
|
21
|
+
private handleData;
|
|
22
|
+
call(inputBuffer: Uint8Array): Promise<Uint8Array>;
|
|
23
|
+
destroy(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=native_pipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native_pipe.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/node/native_pipe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;;;;;;GAOG;AACH,qBAAa,kCAAmC,YAAW,oBAAoB;IAC7E,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,aAAa,CAAyC;IAG9D,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,YAAY,EAAE,MAAM;IAkChC,OAAO,CAAC,UAAU;IA4CZ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Asynchronous native backend that communicates with bb binary via stdin/stdout.
|
|
4
|
+
* Uses event-based I/O with a state machine to handle partial reads.
|
|
5
|
+
*
|
|
6
|
+
* Protocol:
|
|
7
|
+
* - Request: 4-byte little-endian length + msgpack buffer
|
|
8
|
+
* - Response: 4-byte little-endian length + msgpack buffer
|
|
9
|
+
*/
|
|
10
|
+
export class BarretenbergNativePipeAsyncBackend {
|
|
11
|
+
constructor(bbBinaryPath) {
|
|
12
|
+
this.pendingResolve = null;
|
|
13
|
+
this.pendingReject = null;
|
|
14
|
+
// State machine for reading responses
|
|
15
|
+
this.readingLength = true;
|
|
16
|
+
this.lengthBuffer = Buffer.alloc(4);
|
|
17
|
+
this.lengthBytesRead = 0;
|
|
18
|
+
this.responseLength = 0;
|
|
19
|
+
this.responseBuffer = null;
|
|
20
|
+
this.responseBytesRead = 0;
|
|
21
|
+
this.process = spawn(bbBinaryPath, ['msgpack', 'run'], {
|
|
22
|
+
stdio: ['pipe', 'pipe', 'inherit'],
|
|
23
|
+
});
|
|
24
|
+
this.process.stdout.on('data', (chunk) => {
|
|
25
|
+
this.handleData(chunk);
|
|
26
|
+
});
|
|
27
|
+
this.process.on('error', err => {
|
|
28
|
+
if (this.pendingReject) {
|
|
29
|
+
this.pendingReject(new Error(`Native backend process error: ${err.message}`));
|
|
30
|
+
this.pendingReject = null;
|
|
31
|
+
this.pendingResolve = null;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
this.process.on('exit', (code, signal) => {
|
|
35
|
+
if (this.pendingReject) {
|
|
36
|
+
if (code !== null && code !== 0) {
|
|
37
|
+
this.pendingReject(new Error(`Native backend process exited with code ${code}`));
|
|
38
|
+
}
|
|
39
|
+
else if (signal) {
|
|
40
|
+
if (signal != 'SIGTERM') {
|
|
41
|
+
this.pendingReject(new Error(`Native backend process killed with signal ${signal}`));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.pendingReject(new Error('Native backend process exited unexpectedly'));
|
|
46
|
+
}
|
|
47
|
+
this.pendingReject = null;
|
|
48
|
+
this.pendingResolve = null;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
handleData(chunk) {
|
|
53
|
+
let offset = 0;
|
|
54
|
+
while (offset < chunk.length) {
|
|
55
|
+
if (this.readingLength) {
|
|
56
|
+
// Reading 4-byte length prefix
|
|
57
|
+
const bytesToCopy = Math.min(4 - this.lengthBytesRead, chunk.length - offset);
|
|
58
|
+
chunk.copy(this.lengthBuffer, this.lengthBytesRead, offset, offset + bytesToCopy);
|
|
59
|
+
this.lengthBytesRead += bytesToCopy;
|
|
60
|
+
offset += bytesToCopy;
|
|
61
|
+
if (this.lengthBytesRead === 4) {
|
|
62
|
+
// Length is complete, switch to reading data
|
|
63
|
+
this.responseLength = this.lengthBuffer.readUInt32LE(0);
|
|
64
|
+
this.responseBuffer = Buffer.alloc(this.responseLength);
|
|
65
|
+
this.responseBytesRead = 0;
|
|
66
|
+
this.readingLength = false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Reading response data
|
|
71
|
+
const bytesToCopy = Math.min(this.responseLength - this.responseBytesRead, chunk.length - offset);
|
|
72
|
+
chunk.copy(this.responseBuffer, this.responseBytesRead, offset, offset + bytesToCopy);
|
|
73
|
+
this.responseBytesRead += bytesToCopy;
|
|
74
|
+
offset += bytesToCopy;
|
|
75
|
+
if (this.responseBytesRead === this.responseLength) {
|
|
76
|
+
// Response is complete
|
|
77
|
+
if (this.pendingResolve) {
|
|
78
|
+
this.pendingResolve(new Uint8Array(this.responseBuffer));
|
|
79
|
+
this.pendingResolve = null;
|
|
80
|
+
this.pendingReject = null;
|
|
81
|
+
}
|
|
82
|
+
// Reset state for next message
|
|
83
|
+
this.readingLength = true;
|
|
84
|
+
this.lengthBytesRead = 0;
|
|
85
|
+
this.responseLength = 0;
|
|
86
|
+
this.responseBuffer = null;
|
|
87
|
+
this.responseBytesRead = 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async call(inputBuffer) {
|
|
93
|
+
if (this.pendingResolve) {
|
|
94
|
+
throw new Error('Cannot call while another call is pending (no pipelining supported)');
|
|
95
|
+
}
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
this.pendingResolve = resolve;
|
|
98
|
+
this.pendingReject = reject;
|
|
99
|
+
// Write request: 4-byte little-endian length + msgpack data
|
|
100
|
+
const lengthBuf = Buffer.alloc(4);
|
|
101
|
+
lengthBuf.writeUInt32LE(inputBuffer.length, 0);
|
|
102
|
+
this.process.stdin.write(lengthBuf);
|
|
103
|
+
this.process.stdin.write(inputBuffer);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
async destroy() {
|
|
107
|
+
this.process.kill();
|
|
108
|
+
return new Promise(resolve => {
|
|
109
|
+
this.process.once('exit', () => resolve());
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3BpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmJfYmFja2VuZHMvbm9kZS9uYXRpdmVfcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUlwRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGtDQUFrQztJQWE3QyxZQUFZLFlBQW9CO1FBWHhCLG1CQUFjLEdBQXdDLElBQUksQ0FBQztRQUMzRCxrQkFBYSxHQUFvQyxJQUFJLENBQUM7UUFFOUQsc0NBQXNDO1FBQzlCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGlCQUFZLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUM1QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFDckMsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBR3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNyRCxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJ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
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IMsgpackBackendSync } from '../interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* Synchronous shared memory backend that communicates with bb binary via shared memory.
|
|
4
|
+
* Uses NAPI module to interface with shared memory IPC.
|
|
5
|
+
*
|
|
6
|
+
* Architecture: bb acts as the SERVER, TypeScript is the CLIENT
|
|
7
|
+
* - bb creates the shared memory region
|
|
8
|
+
* - TypeScript connects via NAPI wrapper
|
|
9
|
+
*
|
|
10
|
+
* Protocol:
|
|
11
|
+
* - Handled internally by IpcClient (no manual length prefixes needed)
|
|
12
|
+
*/
|
|
13
|
+
export declare class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
|
|
14
|
+
private process;
|
|
15
|
+
private client;
|
|
16
|
+
private constructor();
|
|
17
|
+
/**
|
|
18
|
+
* Create and initialize a shared memory backend.
|
|
19
|
+
* @param bbBinaryPath Path to bb binary
|
|
20
|
+
* @param threads Optional number of threads
|
|
21
|
+
* @param maxClients Optional maximum concurrent clients (default: 1)
|
|
22
|
+
*/
|
|
23
|
+
static new(bbBinaryPath: string, threads?: number, maxClients?: number): Promise<BarretenbergNativeShmSyncBackend>;
|
|
24
|
+
call(inputBuffer: Uint8Array): Uint8Array;
|
|
25
|
+
private cleanup;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=native_shm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native_shm.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/node/native_shm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAkBtD;;;;;;;;;;GAUG;AACH,qBAAa,gCAAiC,YAAW,mBAAmB;IAC1E,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO;IAKP;;;;;OAKG;WACU,GAAG,CACd,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gCAAgC,CAAC;IA+F5C,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU;IASzC,OAAO,CAAC,OAAO;IAUf,OAAO,IAAI,IAAI;CAMhB"}
|