Get desktop application:
View/edit binary Protocol Buffers messages
Simple buffer for messages between SDKs and viewers. - SDKs produce messages by calling `WriteMessages` - Viewers consume messages by calling `ReadMessages` The buffer is bounded by a memory limit, and will drop the oldest messages when the limit is reached. Whenever `ReadMessages` is called, all buffered messages are sent in the order they were received. The stream will then also yield any new messages passed to `WriteMessages` from any client.
(message has no fields)
(message has no fields)
TODO(jan): Would it be more efficient to send a "message batch" instead of individual messages? It may allow us to amortize the overhead of the gRPC protocol.
(message has no fields)
(message has no fields)
Returns info about what the viewer is currently showing, so the agent can orient itself via `re_viewer_mcp`
(message has no fields)
The current viewer page/route (e.g. which recording or hub page is shown).
The active recording, if any.
Every open recording.
One `egui_inspection` request/response exchange, used by `re_viewer_mcp` to control the viewer ui.
`egui_inspection` request.
`egui_inspection` response.
Open a URL in the viewer (a recording/blueprint file, a `rerun://` dataset URI, a redap server/catalog URL, or an intra-recording link).
The URL to open in the viewer. This can be a recording/blueprint file URL, a `rerun://` dataset URI, a redap server/catalog URL, or an intra-recording link.
(message has no fields)
Optional view ID to screenshot. If omitted, screenshots the entire viewer.
Path at which the screenshot will be saved. This path is relative to the current working directory of the viewer process.
(message has no fields)
Move the time cursor (timeline position) of a recording in the viewer.
Recording to seek. If omitted, the active recording is used.
Timeline to seek on. If omitted, the active timeline is used.
Time value to seek to: a sequence index for sequence timelines, or nanoseconds for temporal timelines (see `GetViewerState` for each timeline's type and range).
If true, start playing the recording from the new position. If false, pause the recording.
The recording the cursor was moved in (resolved from the request, or the active recording).
The timeline the cursor was moved on (resolved from the request, or the active/first timeline).
Timeline type, e.g. `"timestamp"`, `"duration"`, or `"sequence"`.
The time the cursor was moved to.
A position on a timeline.
Used in:
Timeline type. May be absent if the recording is still loading.
Current time on the timeline. Absent if the cursor is not set.
One open recording in the viewer.
Used in:
Store id of the recording.
The recording's timelines with their time ranges.
The recording's current time cursor.
A timeline of a recording, with its time range.
Used in:
Timeline type, e.g. `"timestamp"`, `"duration"`, or `"sequence"`.
The inclusive range of time values present on this timeline. Absent if the timeline has no data yet.