Open source software

Open source software has played a huge role in helping us develop Foxglove Studio, and we're committed to contributing our own software back to the community.

In building Foxglove Studio, we relied heavily on others' open source contributions. That's why we're committed to keeping Studio open source and contributing our own software back to the community.

In addition to Studio, we've published several npm packages to facilitate common development tasks – like serializing and deserializing data, parsing message definitions, and exposing helper methods for data manipulation. While these packages were originally developed for Studio, they can be included in any TypeScript or JavaScript project.

Check out our npm and GitHub pages for more details on all our published packages.

Foxglove Studio

Open source desktop and web app for robotics data visualization and debugging

ROS (Robot Operating System)

@foxglove/ros1

TypeScript implementation of ROS 1 protocol with a pluggable transport layer

@foxglove/rosbag

ROS 1 bag reader and writer abstract implementation

@foxglove/rosbag2

ROS 2 bag reader and writer abstract implementation

@foxglove/rosbag2-node

ROS 2 bag reader and writer for Node.js

@foxglove/rosbag2-web

ROS 2 bag reader and writer for the browser

@foxglove/rosmsg

ROS 1 and 2 message definition parser

@foxglove/rosmsg-msgs-common

Common ROS message definitions using @foxglove/rosmsg

@foxglove/rosmsg-msgs-foxglove

Foxglove ROS message definitions using @foxglove/rosmsg

@foxglove/rosmsg-serialization

ROS 1 message serialization for reading and writing bags and network messages

@foxglove/rosmsg2-serialization

ROS 2 message serialization for reading and writing bags and network messages

@foxglove/rostime

Primitives and helper methods for ROS Time and Duration

Miscellaneous

@foxglove/cdr

Common Data Representation (CDR) serialization and deserialization

@foxglove/electron-socket

Networking sockets for Electron apps

@foxglove/just-fetch

Isomorphic ponyfill wrapping fetch and node-fetch

@foxglove/velodyne-cloud

TypeScript library for converting Velodyne LIDAR packets to point cloud

@foxglove/wasm-bz2

Bzip2 decompression compiled to WebAssembly

@foxglove/xmlrpc

TypeScript library implementing an XMLRPC client and server with pluggable server backend

In-app

@foxglove/eslint-plugin

ESLint configuration used in Foxglove Studio

@foxglove/fox

CLI tool for managing Foxglove Studio extensions

@foxglove/studio

Type definitions for writing Foxglove Studio extensions

@foxglove/studio-base

Core components for Foxglove Studio