ores.compute.client

Table of Contents

1. Diagram

ores.compute.client component diagram

Figure 1: ores.compute.client

2. Summary

ores.compute.client is the shared consumer-side library for publishing compute engine packages. Its single class, package_publisher, uploads a local package archive to the canonical per-triplet storage location and verifies its integrity: it computes the local SHA256 before uploading, compares it against the server's own SHA256 of the bytes received, and throws on mismatch rather than returning a result the caller might trust.

It is the one shared core behind the ores.shell's non-interactive publish command. Building and sending the put_app_request and put_app_version_request NATS messages that register the uploaded package stays with each caller, since each already has its own request/response plumbing.

3. Inputs

  • The app name, version, and platform triplet to publish under.
  • The local path of the package archive to upload.
  • The HTTP base URL of the storage server.

4. Outputs

  • package_publish_result: the storage-relative package URI and the server-computed SHA256, ready for ores_compute_app_version_platforms_tbl.package_uri and .sha256.

5. Entry points

  • client/package_publisher.hpp — package_publisher::publish() and the package_publish_result struct.

6. Dependencies

  • ores.storage — the storage_transfer HTTP upload client.
  • ores.compute.api — the domain types the result rows feed into (via the callers' own NATS registrations).

7. See also

Emacs 29.3 (Org mode 9.6.15)