Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/schemas.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/schemas/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/schemas.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/schemas/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/schemas.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/schemas/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling
Repository Summary
| Description | |
| Checkout URI | https://github.com/foxglove/foxglove-sdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| foxglove_bridge | 3.6.3 |
| foxglove_msgs | 3.6.3 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
The core SDK is written in Rust, with bindings for Python, and C++. We publish prebuilt libraries and Python wheels, so you don’t need a Rust development environment.
- Stream live data to Foxglove over a local WebSocket
- Log data to MCAP files for visualization or analysis
- Leverage built-in Foxglove message types for common visualizations, or your own custom messages using a supported serialization format
- ROS packages are available for all supported distributions (see our ROS 2 tutorial)
Visit Foxglove SDK Docs to get started.
Packages
| Package | Version | Description |
|---|---|---|
| Python | ||
| [foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
| C++ | ||
| [foxglove](./cpp) | [](https://github.com/foxglove/foxglove-sdk/releases?q=sdk%2F) | Foxglove SDK for C++ |
| Rust | ||
| [foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
| ROS | ||
| [foxglove_msgs](./ros/src/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#kilted) [](https://index.ros.org/p/foxglove_msgs#lyrical) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove message types for ROS |
| [foxglove_bridge](./ros/src/foxglove_bridge) |
[](https://index.ros.org/p/foxglove_bridge#humble) [](https://index.ros.org/p/foxglove_bridge#jazzy) [](https://index.ros.org/p/foxglove_bridge#kilted) [](https://index.ros.org/p/foxglove_bridge#lyrical) [](https://index.ros.org/p/foxglove_bridge#rolling) |
Foxglove ROS bridge | File truncated at 100 lines [see the full file](https://github.com/foxglove/foxglove-sdk/tree/main/README.md)
CONTRIBUTING
Contributing
Generating schemas
Schemas are defined in internal/schemas.ts. After modifying this file, you will need to regenerate the language-specific definitions.
We commit generated files to git for several reasons:
- Ease of access for users of the protobuf/flatbuffer/etc schemas
- Ease of importing packages (e.g. pointing cargo or npm at a specific git commit)
make generate
Remember to publish new versions of all libraries!
Rust & Python
This package generates source and interface files for the Foxglove SDK, and relies on tooling from the Rust and Python ecosystems.
- Rust, installed via rustup
- Documentation generation requires a recent
nightlybuild
- Documentation generation requires a recent
- Protobuf compiler
- uv
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust, Python, and C/C++
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- Ensure that the draft release workflow completes successfully.
- Check the release notes, and hit publish on the new release.
- Ensure the post-release and tag workflows complete successfully.
TypeScript
- Create and merge a PR bumping the version number in
typescript/schemas/package.json. - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
typescript/schemas/vX.Y.Z. - GitHub Actions will take care of the rest.
Python schema packages (foxglove-schemas-protobuf, foxglove-schemas-flatbuffer)
These packages are versioned and released independently from the SDK. Generated bindings are produced at build time (not committed); use the Docker-backed targets so protoc / flatc match CI:
make build-python-schemas
make test-python-schemas
- Create and merge a PR bumping the
versionin the package’spyproject.toml(and the corresponding entry in itsuv.lock). - From the merged commit on
main, push a tag of the form:-
python/foxglove-schemas-protobuf/vX.Y.Z, or python/foxglove-schemas-flatbuffer/vX.Y.Z
-
- The
schemasjob in.github/workflows/python.ymlwill build the package and publish it to PyPI when it sees the matching tag.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to ros2-gbp/foxglove_bridge-release are required. These permissions are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can’t handle our custom tag format of ros-vX.Y.Z).
- Manually update the following files with the new version info:
ros/src/foxglove_bridge/package.xmlros/src/foxglove_bridge/CHANGELOG.rstros/src/foxglove_bridge/CMakeLists.txtros/src/foxglove_msgs/package.xmlros/src/foxglove_msgs/CHANGELOG.rst
- Manually create a tag named
ros-vX.Y.Zfor the new version - Push the newly created commit and tag
- Run
ros/release-to-ros.bash --tag <tag> --distro <ros-distro>, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo. Pass--dry-runto walk through the workflow without pushing LFS objects or letting bloom publish. See the comment block at the top ofros/release-to-ros.bashfor prerequisites (bloom config, GitHub token, etc.).
Run yarn ros-package-status to check the rosdistro, apt, and Jenkins status for each distro.
Packages will be available via apt after the next sync. View package build status prior to the sync at: humble, jazzy, kilted, lyrical, rolling