ores.compute.api

Table of Contents

1. Diagram

ores.compute.api component diagram

Figure 1: ores.compute.api

2. Summary

ores.compute.api is a header-only library defining the shared contract for the compute domain. It provides domain types for apps, app versions, compute hosts, batches, workunits, and results, with JSON I/O via generated codecs, and the NATS protocol schemas used by both the orchestrator (ores.compute.core) and worker nodes (ores.compute.wrapper).

3. Inputs

  • Domain entity type definitions across domain/ headers.

4. Outputs

  • C++ headers for compute domain types with JSON I/O.
  • NATS protocol headers for batch dispatch, registration, and result reporting.

5. Entry points

  • include/ores.compute.api/domain/, include/ores.compute.api/messaging/.

6. Dependencies

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

9. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.storage.api.lib
        ores.platform.lib
    PRIVATE
        ores.utility.lib
        faker-cxx::faker-cxx
        libfort::fort)

target_link_libraries(${lib_target_name} PRIVATE ores.codec.pch)
target_link_libraries(${tests_target_name}
    PRIVATE
        ores.compute.api.lib
        ores.telemetry.core.lib
        ores.utility.lib
        ores.testing.lib
        faker-cxx::faker-cxx
        Catch2::Catch2
        ores.openssl_cleanup
        Threads::Threads)

Emacs 29.3 (Org mode 9.6.15)