Skip to content

craft: move client/model/driver out to craft_client + ublkpp#168

Merged
szmyd merged 1 commit into
eBay:dev/v6.xfrom
szmyd:spike/craft_rpc
Jul 12, 2026
Merged

craft: move client/model/driver out to craft_client + ublkpp#168
szmyd merged 1 commit into
eBay:dev/v6.xfrom
szmyd:spike/craft_rpc

Conversation

@szmyd

@szmyd szmyd commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Reconcile HomeBlocks with the CRAFT repo split. The wire codec, the reference CRAFT client (dlsn_tracker / read_route_map / when_quorum), the in-memory reference model + transport, the REST admin, and the CRAFT ublk driver were extracted to the standalone craft_client package (namespace craft) and to ublkpp (craft_disk); HomeBlocks deletes the in-tree copies and depends on the package.

  • Delete src/test/craft entirely (client/, model/, admin/, tests): the client + reference model live in craft_client, the ublk driver in ublkpp's craft_disk, the reference server in craft_client's craft_reference_tcp_srv.
  • Move docs/craft/wire.md and docs/craft/transport.md to craft_client/docs; the repo keeps the API / RPC / kernel reference and the CRAFT-Design wiki pointers.
  • Consume craft_client's vocab directly: drop the homeblks/craft_types.hpp re-export shim and use craft:: types (LSNPair renamed to craft::lsn_pair; client_hdr / io_extent / LoginResult / craft_error), and keep lba_t / lba_count_t as HomeBlocks-owned index units in hb_internal.hpp -- CRAFT is byte-addressed, so lba is not part of its vocab.
  • conanfile: depend on craft_client/0.1.0@oss/dev.

What stays: the homestore-backed CraftReplDev (src/lib/craft) and the declared volume_handle CRAFT API (home_blocks.hpp + craft_api.cpp), which routes to a craft::craft_replica backend -- none wired yet, so it returns not_supported.

Reconcile HomeBlocks with the CRAFT repo split. The wire codec, the reference
CRAFT client (dlsn_tracker / read_route_map / when_quorum), the in-memory
reference model + transport, the REST admin, and the CRAFT ublk driver were
extracted to the standalone `craft_client` package (namespace `craft`) and to
`ublkpp` (`craft_disk`); HomeBlocks deletes the in-tree copies and depends on
the package.

- Delete src/test/craft entirely (client/, model/, admin/, tests): the client +
  reference model live in craft_client, the ublk driver in ublkpp's craft_disk,
  the reference server in craft_client's craft_reference_tcp_srv.
- Move docs/craft/wire.md and docs/craft/transport.md to craft_client/docs; the
  repo keeps the API / RPC / kernel reference and the CRAFT-Design wiki pointers.
- Consume craft_client's vocab directly: drop the homeblks/craft_types.hpp
  re-export shim and use craft:: types (LSNPair renamed to craft::lsn_pair;
  client_hdr / io_extent / LoginResult / craft_error), and keep lba_t /
  lba_count_t as HomeBlocks-owned index units in hb_internal.hpp -- CRAFT is
  byte-addressed, so lba is not part of its vocab.
- conanfile: depend on craft_client/0.1.0@oss/dev.

What stays: the homestore-backed CraftReplDev (src/lib/craft) and the declared
volume_handle CRAFT API (home_blocks.hpp + craft_api.cpp), which routes to a
craft::craft_replica backend -- none wired yet, so it returns not_supported.
@szmyd szmyd merged commit 293cdb5 into eBay:dev/v6.x Jul 12, 2026
24 of 25 checks passed
@szmyd szmyd deleted the spike/craft_rpc branch July 12, 2026 21:16
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.

1 participant