finds.dev← search

// the find

foxglove/foxglove-sdk

★ 248 · Rust · MIT · updated Jun 2026

Multimodal visualization and data platform

Official Foxglove SDK for logging and streaming robotics/sensor data, with a Rust core and bindings for Python, C++, and ROS 2. It handles two main use cases: writing MCAP files for offline analysis and streaming live data over WebSocket to the Foxglove viewer. Primarily useful for robotics engineers building data pipelines around ROS 2, custom hardware, or ML-based robot systems.

- Rust core with C FFI layer means the Python and C++ bindings get real performance without reimplementing the protocol logic in each language—the cbindgen setup is clean and the generated header is committed, so you don't need a Rust toolchain to use the C++ or Python packages.

- Broad serialization format support (Protobuf, Flatbuffers, JSON Schema, ROS msg, OMG IDL) with schema definitions committed as raw files under /schemas, making it possible to use the schemas in tooling outside the SDK itself.

- The example coverage is genuinely good—there are working examples for MCAP writing, WebSocket streaming, parameter servers, custom Protobuf schemas, and even a full robot arm visualization with URDF assets, which is more than most SDKs ship.

- ROS 2 packaging covers Humble through Rolling with proper colcon/ament integration, and the bridge package is in the ROS index, so it installs with apt rather than requiring a source build.

- The SDK is a client to the proprietary Foxglove cloud/viewer product—the WebSocket live streaming only makes sense if you're also using the Foxglove app, and some features (remote access, LiveKit integration) appear to require Foxglove's hosted service, which isn't spelled out clearly in the README.

- C++ distribution story is awkward: there are prebuilt libraries but no vcpkg or Conan package, and the CMake integration requires manually fetching or pointing at the prebuilt .a/.so files via the custom foxglove-sdk-dist-config.cmake, which will cause pain in any existing CMake project.

- No offline or self-hosted WebSocket server option is obvious from the repo—if Foxglove discontinues a service tier or you need air-gapped deployment, the live streaming path may be a dead end.

- Test coverage for the Python bindings appears thin—the python/ directory has examples but integration tests mostly live in the Rust/C++ layers, so bugs in the PyO3 binding layer could go undetected.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →