ores.compute.client
Table of Contents
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 forores_compute_app_version_platforms_tbl.package_uriand.sha256.
5. Entry points
client/package_publisher.hpp—package_publisher::publish()and thepackage_publish_resultstruct.
6. Dependencies
ores.storage— thestorage_transferHTTP upload client.ores.compute.api— the domain types the result rows feed into (via the callers' own NATS registrations).
7. Build dependencies
What the shared profile cannot know, declared here rather than hand-edited into the generated build file. Each block is spliced into its generated file after the profile's baseline.
8. See also
- ores.compute — component group overview.
- ores.compute.core — registers the uploaded packages as app versions.
- ores.compute.wrapper — the worker that runs the packages this part publishes.
target_link_libraries(${lib_target_name}
PUBLIC
ores.storage.core.lib
ores.compute.api.lib
PRIVATE
ores.utility.lib
Boost::boost
Boost::json)
