Skip to content

refactor(bbapi): migrate bb binary to ipc-codegen + ipc-runtime#23612

Open
charlielye wants to merge 1 commit into
nextfrom
cl/ipc-bb-migrate
Open

refactor(bbapi): migrate bb binary to ipc-codegen + ipc-runtime#23612
charlielye wants to merge 1 commit into
nextfrom
cl/ipc-bb-migrate

Conversation

@charlielye

@charlielye charlielye commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Migrates the bb server surface (bbapi, api_msgpack, bb CLI, WASM cbind, and IPC bench paths) to /ipc-codegen + /ipc-runtime.

This PR sits after wsdb migration and before the Rust and bb.js client migrations.

Stack

  1. feat(ipc): add /ipc-codegen and /ipc-runtime foundation packages #23610 cl/ipc-foundation
  2. refactor(wsdb): migrate aztec-wsdb to ipc-codegen + ipc-runtime #23611 cl/ipc-wsdb-migrate
  3. refactor(bbapi): migrate bb binary to ipc-codegen + ipc-runtime #23612 cl/ipc-bb-migrate — this PR
  4. refactor(barretenberg-rs): migrate to ipc-codegen + ipc-runtime; drop PipeBackend #23613 cl/ipc-bb-rs-migrate
  5. refactor(bb.js): migrate to ipc-codegen + ipc-runtime; delete legacy bb::ipc #23614 cl/ipc-bb-js-migrate
  6. refactor: cut TS world state and NAPI AVM over to WSDB IPC; delete NAPI WSDB #23036 cl/ipc-3-avm-wsdb-cutover
  7. feat: add generated aztec-vm-sim package setup #23084 cl/ipc-4-avm-binary
  8. feat: cut simulator over to generated aztec-vm-sim IPC service #23697 cl/ipc-5-avm-cutover

What changes

  • Commits bb_schema.json and bb_curve_constants.json beside bbapi.
  • Generates bb C++ IPC client/server/types from the schema during CMake builds.
  • Routes api_msgpack through codegen-emitted make_bb_handler and ipc_runtime server helpers.
  • Keeps handle_* functions operating on wire commands, with explicit conversion only where bb domain types are required.
  • Removes duplicate domain DTOs and stale wire/domain conversion helpers that were not used.
  • Preserves BBApiException semantics for generated error responses.
  • Exposes bb msgpack schema from codegen schema reflection.
  • Adds generated IPC coverage to C++ CI targets.
  • Updates bb.js native binary resolution to the arch-package model: wrapper code resolves bb and nodejs_module.node from installed or sibling arch packages, not from mutable build/ fallbacks.

Notes

The legacy barretenberg/cpp/src/barretenberg/ipc/ transport remains until the bb.js NAPI substrate migrates in #23614. This PR migrates the bb server surface but does not yet delete the old transport.

Validation

  • ninja bb bbapi_tests
  • ./bin/bbapi_tests
  • ./bin/bb msgpack schema
  • barretenberg/ts native/ESM/CJS build path for arch-package binary resolution.
  • Root ./bootstrap.sh passed on this branch during stack validation after clearing local cache/quota pressure.

@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from f2951d4 to 4948494 Compare May 28, 2026 06:19
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from a4bbaea to 14f9b51 Compare May 28, 2026 06:19
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 14f9b51 to c1eac55 Compare May 28, 2026 07:10
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from cd8adea to e1d3933 Compare May 28, 2026 09:26
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from c1eac55 to 3ae8af4 Compare May 28, 2026 09:26
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from e1d3933 to 5b98d5f Compare May 28, 2026 09:40
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 3ae8af4 to 34d56b4 Compare May 28, 2026 09:40
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from 5b98d5f to 08a03c7 Compare May 28, 2026 10:42
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 34d56b4 to 66ffb2b Compare May 28, 2026 10:43
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch 2 times, most recently from 4702983 to e07b17b Compare May 28, 2026 11:06
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 66ffb2b to 2793608 Compare May 28, 2026 11:07
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 2793608 to e4043d1 Compare May 28, 2026 11:24
charlielye added a commit that referenced this pull request May 28, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from da691d1 to dfacac4 Compare May 28, 2026 17:37
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 28, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 29, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 29, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
charlielye added a commit that referenced this pull request May 29, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from 30fd5bd to 2bab045 Compare May 29, 2026 12:09
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 7afda83 to 8188c34 Compare May 29, 2026 12:09
charlielye added a commit that referenced this pull request May 29, 2026
… PipeBackend

Cuts the Rust crate over to consume the foundation packages (PR #23610).
Schema = `bb_schema.json` (committed in PR #23612). The codegen emits
`barretenberg-rs/src/generated/{bb_types,bb_client}.rs` on build;
`backend.rs`, `error.rs`, `ffi_backend.rs` are template-copied once into
the same dir.

**Removed**:
- `src/backend.rs` and `src/error.rs` (now codegen-emitted templates in
  `src/generated/`).
- `src/types.rs` (replaced by codegen `bb_types.rs`).
- `src/backends/ffi.rs` and `src/backends/pipe.rs` (the backends/
  directory). The old `PipeBackend` (forked bb subprocess + stdin/stdout
  pipe transport) is gone in favor of `ipc_runtime::IpcClient` over UDS
  or SHM. The codegen-emitted `Backend` trait abstracts the transport;
  `impl Backend for ipc_runtime::IpcClient` lives in the runtime crate.

**Modified**:
- `Cargo.toml` / `bootstrap.sh` (depend on `ipc-runtime`).
- `src/lib.rs` (re-exports updated for the codegen-emitted modules).
- `src/fr_ext.rs` (new — extra constructors / accessors on the codegen
  `Fr` newtype that downstream callers rely on; kept as a separate impl
  block so `src/generated/bb_types.rs` stays a pure regen target).

**Tests**:
- `barretenberg/rust/tests/` updated: dropped legacy `blake2s.rs`,
  `pedersen.rs`, `poseidon.rs`, `utils.rs` and `pipe_test.rs` (the
  PipeBackend tests). The `ffi/` test modules now exercise the codegen
  `BbApi<ipc_runtime::IpcClient>` surface.

Verification:
- `BB_LIB_DIR=… cargo build --release` for `barretenberg-rs/` — clean.
- `BB_LIB_DIR=… cargo build --features ffi --release --tests` for
  `tests/` — pre-existing test compile errors (120) match the stack tip;
  the schema-visitor change for `array<unsigned char, N != 32>` (now
  `[u8; N]` instead of `Vec<u8>`) rippled into the test source. Fixing
  the test crate is a follow-up.

The crate's library surface (the part downstream consumers see) is
green.
charlielye added a commit that referenced this pull request May 29, 2026
…bb::ipc

Last PR in the IPC migration stack (base: #23613 barretenberg-rs).
Cuts bb.js's TS surface + its NAPI substrate over to the foundation
packages (PR #23610). Two backends:
- WASM (`bb_backends/wasm.ts`): uses `cbindCall('bbapi', bytes)`
  via WASM exports. The C++ side (in PR #23612) pipes bytes through
  codegen `make_bb_handler`. No TS-side changes — wire-compatible.
- Native UDS / SHM (`bb_backends/node/native_socket.ts`): uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.

**TS**:
- `barretenberg/ts/scripts/generate.sh`: regen script that calls
  `node ipc-codegen/src/generate.ts` for bb (TS + Rust bindings) and
  for aztec-wsdb (TS bindings).
- `barretenberg/ts/src/cbind/`: codegen sources moved into
  `/ipc-codegen/src/` in PR #23610. The deletions land here. The
  generated/ subdir is gitignored and regenerated by the bb.js build.
- `barretenberg/ts/src/bb_backends/node/native_socket.ts`: uses
  `UdsIpcClient` from `@aztec/ipc-runtime`.
- `barretenberg/ts/package.json` / `yarn.lock`: depend on
  `@aztec/ipc-runtime`.
- `barretenberg/ts/src/bbapi/chonk_pinned_inputs.test.ts` deleted (drift
  from the original stack rebase — referenced obsolete domain command
  types).

**C++ NAPI substrate**:
- `barretenberg/cpp/src/barretenberg/nodejs_module/msgpack_client/`:
  `msgpack_client_{wrapper,async}.{cpp,hpp}` use
  `ipc_runtime/ipc_client.hpp` for transport.
- `barretenberg/cpp/src/barretenberg/nodejs_module/CMakeLists.txt`: link
  `ipc_runtime`.

**Legacy ipc subdir gone**:
- `barretenberg/cpp/src/barretenberg/ipc/` removed entirely.
  After this PR no consumer references `bb::ipc::` — every transport
  surface routes through `ipc::` from ipc-runtime.
- Top-level `barretenberg/cpp/src/CMakeLists.txt`: drop the
  `add_subdirectory(barretenberg/ipc)` and the transitional comment
  about the legacy subdir.

Verification:
- `ninja bb aztec-wsdb bbapi_tests` clean (legacy bb::ipc gone)
- `./bin/bbapi_tests` — 30/30
- `cd barretenberg/ts && yarn build && yarn test`
- bb-prover e2e against migrated bb.js

End state after the full 5-PR stack:
- bb / wsdb servers route through codegen `make_<prefix>_handler` +
  `ipc::make_server` + `ipc::install_default_signal_handlers`.
- bb.js / barretenberg-rs clients route through codegen-emitted typed
  surfaces over `ipc_runtime::IpcClient` (Rust) /
  `@aztec/ipc-runtime`'s `UdsIpcClient` (TS).
- No `msgpack_roundtrip` at handler boundaries.
- No parallel domain command types.
- No hand-rolled UDS/SHM transport.
@charlielye charlielye force-pushed the cl/ipc-wsdb-migrate branch from 2bab045 to 57b6b45 Compare May 29, 2026 12:17
@charlielye charlielye force-pushed the cl/ipc-bb-migrate branch from 8188c34 to fb1beea Compare May 29, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants