Skip to main content

5 posts tagged with "SDK"

Release notes for the Foxglove SDK.

View All Tags

SDK v0.9.0

Foxglove SDK

This release contains documentation improvements, including support for the Kannala-Brandt distortion model in CameraCalibration, and some additional C++ functionality.

Fixed

Python

  • Add the missing stub interface for Timestamp.now()
Changed

C++

  • Support channel metadata
  • Support explicitly closing a channel
  • Implement additional channel getters

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

SDK v0.8.1

Foxglove SDK

This release includes a fix for C++ handling of zero-length vectors.

Fixed

C++

  • Fix assertion crash copying zero-length vectors via the arena
Changed
  • Throttle messages about dropped WebSocket messages

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

SDK v0.8.0

Foxglove SDK

This release provides additional functionality for WebSocket services and examples for usage.

Python

Adds Message.get_schema() and various channel getters

Rust

Adds a foxglove::Encode derive macro to automatically serialize structs and enums.

Log timestamps may now be specified as u64, Timestamp, SystemTime, or DateTime.

C++

The C++ library now supports logging Foxglove-defined schemas.

It also provides more functionality for live visualization, including services, assets, websocket parameters, and parameter subscriptions.

Changed

Python

  • Add simple example of writing RawAudio messages to an MCAP
  • Add Message.get_schema() and various channel getters

Rust

  • Add shutdown handle for WebSocket server
  • Add foxglove::Encode derive macro
  • Add features for derive, lz4, schemars, zstd
  • Accept u64, Timestamp, SystemTime, and DateTime as log timestamps

C++

  • Catch callback exceptions
  • Provide an interface to set the level of SDK stderr logging
  • Add support for services, assets, websocket parameters, and parameter subscriptions
  • Add support for broadcasting time
  • Add WebSocket clear session and publish status
  • Add foxglove schemas with example

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

SDK v0.7.1

Foxglove SDK

Python

  • Context is now available for associating channels and sinks.

Rust

  • Some handler types on WebSocket FetchAsset and Service have changed.
  • The log! macro properly re-uses matching channels.

C++

  • Context is now available for associating channels and sinks.
Fixed
Changed

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

SDK v0.7.0

🥳 Initial public release of the Foxglove SDK

We're excited to introduce the Foxglove SDK, a unified toolkit that simplifies integrating your robotics stack with Foxglove. The SDK provides a single, idiomatic API for live visualization, logging, and remote monitoring.

Today, we're releasing the initial version of the Foxglove SDK for C++, Python, and Rust. Built on a shared Rust core, it ensures consistency and reduces feature drift. You can:

  • Log structured data to MCAP files for offline analysis
  • Stream live data to Foxglove via the WebSocket protocol
  • Use high-level logging APIs for common Foxglove schemas like CompressedImage and SceneUpdate
  • Define and log custom message types with minimal boilerplate
  • Switch between live streaming and file logging using the same instrumentation

Get started

Get started in a few lines using the SDK to log your data to MCAP files, stream live data directly to the Foxglove app, or both simultaneously:

import foxglove as fg
from foxglove.schemas import Pose, PoseInFrame, Quaternion, Timestamp, Vector3

fg.start_server()

with fg.open_mcap("foo.mcap"):
fg.log("/example", PoseInFrame(
timestamp=Timestamp(sec=0),
frame_id="ego",
pose=Pose(
position=Vector3(x=1.0, y=2.0, z=3.0),
orientation=Quaternion(x=0.0, y=0.0, z=0.0, w=1.0),
),
))
tip

Read the docs to get started.

Key features

The Foxglove SDK addresses challenges in integrating custom robotics frameworks and tooling:

  • Unified Logging Interface: Record to disk or stream live data using a consistent API
  • High-Level and Low-Level APIs: Choose between high-level APIs for common schemas or low-level APIs for custom serialization
  • Live Visualization Support: Stream live data to Foxglove for real-time visualization
  • Cross-Language Consistency: Shared Rust core ensures consistent behavior across Rust, Python, and C++
warning

The C++ SDK is not yet feature-complete, but all languages are available for use, and we welcome your feedback.


Docs: Introduction | Reference: Rust, Python, C++ | Source: github