Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling
Repository Summary
Checkout URI | https://github.com/foxglove/schemas.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
foxglove_msgs | 3.1.0 |
README
Foxglove SDK
The Foxglove SDK allows you to log and visualize multimodal data with Foxglove.
[!IMPORTANT]
This new Foxglove SDK is under active development.
It is ready for beta testing, but it is not yet fully documented and the API is subject to change. Please provide feedback via Discord or GitHub Discussions.
For stable libraries, see the existing ws-protocol or ros-foxglove-bridge repos.
The new SDK is written in Rust, with bindings and packages available for Python (C, C++, and ROS coming soon).
- Visualize live data using the Foxglove WebSocket protocol
- Log data to MCAP files for later visualization or analysis
- Leverage built-in Foxglove schemas for common visualizations, or your own custom messages using a supported serialization format
Visit Foxglove Docs to get started.
Packages
Package | Version | Description |
---|---|---|
Python | ||
[foxglove-sdk](./python/foxglove-sdk/) | [](https://pypi.org/project/foxglove-sdk/) | Foxglove SDK for Python |
Rust | ||
[foxglove](./rust/foxglove) | [](https://crates.io/crates/foxglove) | Foxglove SDK for Rust |
ROS | ||
[foxglove_msgs](./ros/foxglove_msgs) |
[](https://index.ros.org/p/foxglove_msgs#noetic) [](https://index.ros.org/p/foxglove_msgs#humble) [](https://index.ros.org/p/foxglove_msgs#jazzy) [](https://index.ros.org/p/foxglove_msgs#rolling) |
Foxglove schemas for ROS |
TypeScript | ||
[@foxglove/schemas](./typescript/schemas) | [](https://www.npmjs.com/package/@foxglove/schemas) | Foxglove schemas for TypeScript |
Other | ||
[schemas](./schemas) | Raw schema definitions for ROS, Protobuf, Flatbuffer, JSON, and OMG IDL |
License
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
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)
corepack enable # ensure you have corepack enabled
yarn install # install dependencies
yarn generate # regenerate files
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
- Protobuf compiler
- Python dependencies installed via Poetry
pipx install poetry
poetry install
For more details, refer to the Python SDK contributing guide.
Release instructions
Releases are published via GitHub Actions.
Rust & Python
All SDK languages are versioned and released together.
- Manually trigger the “Draft Release” workflow in GitHub Actions, specifying the new version number.
- 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
package.json
file(s). - Manually create a new Release in the GitHub UI. Ensure the tag uses the form
[language]/[package-name]/vX.Y.Z
. - GitHub Actions will take care of the rest.
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter 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
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, 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.
Packages will be available via apt after the next sync. View package build status prior to the sync at: noetic, foxy, galactic, humble, iron, jazzy, rolling