https://github.com/foxglove/ws-protocol
Foxglove WebSocket protocol specification and libraries
https://github.com/foxglove/ws-protocol
foxglove robotics websocket
Last synced: 4 days ago
JSON representation
Foxglove WebSocket protocol specification and libraries
- Host: GitHub
- URL: https://github.com/foxglove/ws-protocol
- Owner: foxglove
- License: mit
- Created: 2021-11-13T19:16:25.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T05:44:44.000Z (4 months ago)
- Last Synced: 2024-10-29T23:19:40.595Z (4 months ago)
- Topics: foxglove, robotics, websocket
- Language: C++
- Homepage:
- Size: 2.58 MB
- Stars: 97
- Watchers: 5
- Forks: 58
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Foxglove WebSocket Protocol
This repository provides a [protocol specification](docs/spec.md) and reference implementations enabling [Foxglove](https://foxglove.dev/) to ingest arbitrary “live” streamed data.
A Foxglove WebSocket server can provide multiple data streams, called _channels_. When a client subscribes to a channel, it begins receiving _messages_ on that channel. This protocol does not prescribe the messages' data format. Instead, the server specifies each channel's _encoding_, and the client uses this information to determine whether it can decode that channel's messages. Read the [Foxglove documentation](https://docs.foxglove.dev/docs/connecting-to-data/frameworks/custom/#live-connection) for more information on which encodings Foxglove supports.
Implementations are available in the following languages:
| Language | Includes | Package name | Version |
| --------------------- | ------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Python | [server + examples](python) | `foxglove-websocket` | [](https://pypi.org/project/foxglove-websocket/) |
| JavaScript/TypeScript | [server + client](typescript/ws-protocol) | `@foxglove/ws-protocol` | [](https://www.npmjs.com/package/@foxglove/ws-protocol) |
| JavaScript/TypeScript | [examples](typescript/ws-protocol-examples) | `@foxglove/ws-protocol-examples` | [](https://www.npmjs.com/package/@foxglove/ws-protocol-examples) |
| C++ | [server + examples](cpp) | `foxglove-websocket` | [](https://conan.io/center/foxglove-websocket) |### Additional resources
- https://foxglove.github.io/ws-protocol - Connect to a ws-protocol compliant server and measure data throughput
- [eCAL Foxglove Bridge](https://github.com/eclipse-ecal/ecal-foxglove-bridge) – WebSocket bridge that allows users to connect eCAL systems to Foxglove for easy visualization and debugging