Skip to content

C++ SDK #2516

@emilk

Description

@emilk

This is the tracking issue for our initial high-level C++ SDK

Goals

  • High-level API
  • Easy to use
  • Easy to install
  • For developers on their own machines

Non-goals

  • C
  • Embedded machines
  • Header-only

We will save this for later.

Approach

Low-level C SDK

We wrap our Rust SDK with a minimal set of functions for:

  • init
  • connect, save
  • log a DataRow

The Rust side is responsible for:

  • Batching
  • TCP communication
  • Streaming logs to disk

Low-level C++ SDK

Basically a C++-friendly wrapper around the C SDK

Code-generated classes

We use re_types (#2241) to generate classes for datatypes, components, and archetypes.

These are converted to Arrow-messages using the official Arrow C++ SDK.

Integrations

Finally, we have opt-in integrations with various libraries such as:

  • OpenCV
  • Eigen

Distribution

The C SDK will consist of a single rerun.h header, and then a dynamic and/or static library of the rerun_c crate.

The C++ SDK will have a CMakelists.txt for ease of use in cmake build systems. We can maybe set up a system where cmake downloads and install the Rerun C++ SDK for users, including dependencies (Arrow).

TODO

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions