# ReductStore > ReductStore is a time series object store for robotics and industrial IoT. It stores time series data as objects: each record is a blob of any type and size with a timestamp and labels, so camera frames, LiDAR scans, logs, vibration data and telemetry live in one place and are queried by time range and labels. For industrial IoT it is an alternative to a time series database like InfluxDB paired with a separate object store. For robotics it is an alternative to recording rosbag files (db3 or mcap): each topic goes into its own entry, each message becomes a timestamped record, and any time range can be exported again. It runs at the edge on the robot or machine, keeps disk usage in check with retention quotas, and replicates selected data to the cloud. ReductBridge ingests ROS 1, ROS 2, MQTT, HTTP endpoints, shell command output and host metrics. Core is open source under Apache 2.0, with SDKs for Python, JavaScript, Go, Rust and C++. ReductStore Pro adds ReductROS, which decodes ROS messages and exports time ranges as mcap for Foxglove, ReductSelect for SQL over CSV, JSON and Parquet, and S3 as an optional storage backend. - [ReductStore](https://www.reduct.store/index.md) ## about Learn more about our mission, team, and values. - [About ReductStore](https://www.reduct.store/about.md): Learn more about our mission, team, and values. ## architecture-review Schedule a free architecture review to walk through your robotics data pipeline and see how ReductStore fits your production fleet. - [Architecture Review](https://www.reduct.store/architecture-review.md): Schedule a free architecture review to walk through your robotics data pipeline and see how ReductStore fits your production fleet. ## blog ReductStore's Blog - Expert articles, updates, and discussions on managing and leveraging time series data in edge and cloud computing, robotics, computer vision, and IoT. - [Blog](https://www.reduct.store/blog.md): ReductStore's Blog - Expert articles, updates, and discussions on managing and leveraging time series data in edge and cloud computing, robotics, computer vision, and IoT. ### advice - [Four MQTT Database Types for Sensor, Image and Log Data](https://www.reduct.store/blog/advice/database/mqtt-data-storage.md): Which MQTT database holds sensor readings, images and log files? Time series, NoSQL, blob and relational stores compared on speed, scale and cost. ### ai - [Implementing Data Streaming in PyTorch from Remote DB](https://www.reduct.store/blog/ai/datastreaming/pytorch/implement-database-data-streaming-pytorch.md): Discover how to implement data streaming in your PyTorch project from a remote database. This blog provides a practical approach to setting up a custom PyTorch's IterableDataset that reads data from a time series database. ### air-gapped-drone-data How to set up local storage on drones with delayed replication and audit trail using ReductStore. - [Air-Gapped Drone Data Operations with Delayed Sync and Auditability](https://www.reduct.store/blog/air-gapped-drone-data.md): How to set up local storage on drones with delayed replication and audit trail using ReductStore. ### amr-fleet-data-infrastructure You deployed ten robots. The system worked. Now you have a hundred, and your engineering team is complaining about things that didn't exist six months ago: storage filling up on edge devices, cloud bills growing faster than the fleet, retraining cycles that take weeks instead of days, and incident investigations lack the data they need. This is a predictable consequence of crossing a scaling threshold that almost every AMR operator hits. - [AMR fleet data infrastructure at scale: Four Problems and How to Solve Them](https://www.reduct.store/blog/amr-fleet-data-infrastructure.md): You deployed ten robots. The system worked. Now you have a hundred, and your engineering team is complaining about things that didn't exist six months ago: storage filling up on edge devices, cloud bills growing faster than the fleet, retraining cycles that take weeks instead of days, and incident investigations lack the data they need. This is a predictable consequence of crossing a scaling threshold that almost every AMR operator hits. ### boston-dynamic-example In this tutorial, you will learn how to process ROS .bag files, extract relevant features, and build a dataset for machine learning. We will use Python, the bagpy library, and scikit-learn to train models that can classify different robot movements based on velocity data. - [How to Analyze ROS Bag Files and Build a Dataset for Machine Learning](https://www.reduct.store/blog/boston-dynamic-example.md): In this tutorial, you will learn how to process ROS .bag files, extract relevant features, and build a dataset for machine learning. We will use Python, the bagpy library, and scikit-learn to train models that can classify different robot movements based on velocity data. ### building-reliable-data-replication How ReductStore uses a persistent store-and-forward queue to deliver edge data over unreliable networks. - [Building Reliable Data Replication at the Edge](https://www.reduct.store/blog/building-reliable-data-replication.md): How ReductStore uses a persistent store-and-forward queue to deliver edge data over unreliable networks. ### comparison-rviz-foxglove-rerun Foxglove is proprietary with a free tier. RViz and Rerun are open source, BSD and MIT. Compare licensing, pricing and the viewer UI of all three. - [Open Source Foxglove Alternatives: RViz and Rerun](https://www.reduct.store/blog/comparison-rviz-foxglove-rerun.md): Foxglove is proprietary with a free tier. RViz and Rerun are open source, BSD and MIT. Compare licensing, pricing and the viewer UI of all three. ### comparison - [Benchmark against MinIO and InfluxDB](https://www.reduct.store/blog/comparison/iot/reductstore-benchmark.md): The article presents the result of benchmrking ReductStore vs. MinIO and InfluxDB on an edge device. ### comparisons - [Performance comparison: ReductStore Vs. Minio](https://www.reduct.store/blog/comparisons/computer-vision/iot/performance-comparison-reductstore-vs-minio.md): Benchmarking ReductStore and Minio to compare their performance for writing and reading blob data with different sizes in time series manner. - [Alternative to MongoDB for Blob Data](https://www.reduct.store/blog/comparisons/iot/reductstore-vs-mongodb.md): A comparison of ReductStore and MongoDB for storing time series blob data. - [TimescaleDB Alternatives for Multimodal Data](https://www.reduct.store/blog/comparisons/iot/reductstore-vs-timescaledb.md): Benchmarks for TimescaleDB against ReductStore from 1 KB to 1 MB records, why large values get slow, and how time-indexed storage handles multimodal data. ### computer-vision-applications Learn how to store data in computer vision applications by using ReductStore, S3-like storage or a file system. - [3 Ways to Store Computer Vision Data](https://www.reduct.store/blog/computer-vision-applications.md): Learn how to store data in computer vision applications by using ReductStore, S3-like storage or a file system. ### computer-vision - [Open-Source Alternatives to Landing AI](https://www.reduct.store/blog/computer-vision/ai/mlops/opensource/open-source-alternatives-to-landing-ai.md): Discover top open-source alternatives to Landing AI in this insightful blog. We delve into essential MLOps tools for data labeling, model training, and more. Enhance your AI projects with platforms like COCO Annotator, Ultralytics, and MLflow. - [Unsupervised anomaly detection with Anomalib in Python](https://www.reduct.store/blog/computer-vision/edge-computing/ai/Implementing-open-source-ai-anomaly-detection.md): Explore the process of deploying open-source AI models for real-time image anomaly detection, bridging the gap between research and practical applications. ### continuous-ingest-ros2 Splitting rosbag files protects a recording. Merging them back costs disk and CPU. Recording each ROS 2 topic continuously removes the split step. - [Continuous Ingest for ROS 2: No Splits, No Merge](https://www.reduct.store/blog/continuous-ingest-ros2.md): Splitting rosbag files protects a recording. Merging them back costs disk and CPU. Recording each ROS 2 topic continuously removes the split step. ### cra-compliant-robotics-data-storage EU Cyber Resilience Act (CRA) vulnerability reporting starts 11 September 2026. Learn how ReductStore provides native audit trails, integrity protection, selective replication, and token-based access for robotics fleets — delivering CRA readiness with 10x faster ingestion and up to 90% lower cloud costs than generic time-series or object storage solutions. - [CRA-Compliant Robotics Data Storage 2026: How to Solve the Data Storage Challenges of the CRA](https://www.reduct.store/blog/cra-compliant-robotics-data-storage.md): EU Cyber Resilience Act (CRA) vulnerability reporting starts 11 September 2026. Learn how ReductStore provides native audit trails, integrity protection, selective replication, and token-based access for robotics fleets — delivering CRA readiness with 10x faster ingestion and up to 90% lower cloud costs than generic time-series or object storage solutions. ### daq-manufacture-system Learn how to build a data acquisition system for manufacturing using ReductStore and ELT workflows for advanced analytics and AI applications. - [Building a Data Acquisition System for Manufacturing](https://www.reduct.store/blog/daq-manufacture-system.md): Learn how to build a data acquisition system for manufacturing using ReductStore and ELT workflows for advanced analytics and AI applications. ### daq-shop-floor Run ReductStore on a shop floor edge device, keep manufacturing sensor data local with a FIFO quota, and replicate only what matters to the cloud. - [Store Manufacturing Data at the Edge and in the Cloud](https://www.reduct.store/blog/daq-shop-floor.md): Run ReductStore on a shop floor edge device, keep manufacturing sensor data local with a FIFO quota, and replicate only what matters to the cloud. ### data-lakehouse-manufacturing ReductStore is a time-indexed object storage that can be an important part of data lakehouses in manufacturing. It efficiently stores and manages time series data, including images, logs, and sensor outputs. Designed for both edge and cloud environments, it ensures scalable, reliable, and easy-to-manage storage for AI and IoT applications. - [Key Component of a Manufacturing Data Lakehouse](https://www.reduct.store/blog/data-lakehouse-manufacturing.md): ReductStore is a time-indexed object storage that can be an important part of data lakehouses in manufacturing. It efficiently stores and manages time series data, including images, logs, and sensor outputs. Designed for both edge and cloud environments, it ensures scalable, reliable, and easy-to-manage storage for AI and IoT applications. ### data-management-tools ReductStore, Foxglove, Rerun and Heex compared on data types, ROS integration and storage, so you can pick a robotics data platform for your fleet. - [4 Multimodal Robotics Data Platforms Compared](https://www.reduct.store/blog/data-management-tools.md): ReductStore, Foxglove, Rerun and Heex compared on data types, ROS integration and storage, so you can pick a robotics data platform for your fleet. ### database-for-robotics Introducing the missing database for robotics, an open, efficient, and developer friendly solution for managing robotics data. Capture, query, and manage sensor and image streams from robot to cloud with full control, lower cost, and integration with ROS and observability tools. - [A Database for Robotics: Store and Manage Data from Robot to Cloud](https://www.reduct.store/blog/database-for-robotics.md): Introducing the missing database for robotics, an open, efficient, and developer friendly solution for managing robotics data. Capture, query, and manage sensor and image streams from robot to cloud with full control, lower cost, and integration with ROS and observability tools. ### disaster-recovery-time-indexed-sensor-data Cold backup, hot backup with the CLI, hot standby, and read-only replicas: how to protect a ReductStore instance that records sensor data, and which mechanism fits a robot or a plant that cannot be stopped. - [Disaster Recovery for Time-Indexed Sensor Data](https://www.reduct.store/blog/disaster-recovery-time-indexed-sensor-data.md): Cold backup, hot backup with the CLI, hot standby, and read-only replicas: how to protect a ReductStore instance that records sensor data, and which mechanism fits a robot or a plant that cannot be stopped. ### distributed-storage-mobile-robotics How to set up local storage on mobile robots with automatic cloud replication tasks using ReductStore. - [Distributed Storage in Mobile Robotics](https://www.reduct.store/blog/distributed-storage-mobile-robotics.md): How to set up local storage on mobile robots with automatic cloud replication tasks using ReductStore. ### edge-computing - [Importance of Data Reduction for Edge Computing](https://www.reduct.store/blog/edge-computing/data-reduction-on-edge.md): Data reduction is a critical aspect of edge computing that helps to optimize system efficiency and minimize resource usage. ### grafana-visualization-ros-data Outline for a tutorial showing how to use ReductStore and the ReductROS extension to extract ROS 2 data to JSON and visualize it in Grafana dashboards. - [Visualize Robotics Data in Grafana with ReductStore](https://www.reduct.store/blog/grafana-visualization-ros-data.md): Outline for a tutorial showing how to use ReductStore and the ReductROS extension to extract ROS 2 data to JSON and visualize it in Grafana dashboards. ### how-to-persist-zenoh-data A tutorial for ROS 2 / Zenoh engineers: connect a Zenoh network to a persistent, queryable store for replay, debugging, and ML training without building a custom storage backend or an HTTP bridge. - [How to Persist Zenoh Data](https://www.reduct.store/blog/how-to-persist-zenoh-data.md): A tutorial for ROS 2 / Zenoh engineers: connect a Zenoh network to a persistent, queryable store for replay, debugging, and ML training without building a custom storage backend or an HTTP bridge. ### how-to-store-vibration-sensor-data This article covers everything from the basics of vibration data to best practices for managing it as well as setting up a robust and scalable environment to store, query, and replicate vibration sensor data. We'll also cover a real-world example of storing vibration sensor data using Python and ReductStore. - [How to Store Vibration Sensor Data](https://www.reduct.store/blog/how-to-store-vibration-sensor-data.md): This article covers everything from the basics of vibration data to best practices for managing it as well as setting up a robust and scalable environment to store, query, and replicate vibration sensor data. We'll also cover a real-world example of storing vibration sensor data using Python and ReductStore. - [How to Store Vibration Sensor Data | ReductStore vs InfluxDB](https://www.reduct.store/blog/how-to-store-vibration-sensor-data/reductstore-vs-influxdb.md): This article is the second part of How to Store Vibration Sensor Data, where we dive into a practical example of storing and querying vibration sensor readings using ReductStore and Python. ### hugging-face-lerobot Run Hugging Face LeRobot in a free Google Colab notebook. Load the PushT dataset, run a trained policy, train your own, and evaluate it with no robot. - [LeRobot Tutorial in Google Colab, No Robot Needed](https://www.reduct.store/blog/hugging-face-lerobot.md): Run Hugging Face LeRobot in a free Google Colab notebook. Load the PushT dataset, run a trained policy, train your own, and evaluate it with no robot. ### influxdb-robotics-sensor-data Store time-indexed camera frames and LiDAR scans alongside an existing InfluxDB metrics deployment by placing each data shape in the right store. - [InfluxDB for Robotics Sensor Data: Where It Works and Where It Breaks](https://www.reduct.store/blog/influxdb-robotics-sensor-data.md): Store time-indexed camera frames and LiDAR scans alongside an existing InfluxDB metrics deployment by placing each data shape in the right store. ### iotdb-reductstore A comparison of ReductStore and IoTDB, two specialized solutions for handling time-series data. Learn about their strengths and differences to determine which is best suited for your use case. - [ReductStore and IoTDB: Time Series Data Specialists](https://www.reduct.store/blog/iotdb-reductstore.md): A comparison of ReductStore and IoTDB, two specialized solutions for handling time-series data. Learn about their strengths and differences to determine which is best suited for your use case. ### metrical-calibrate-camera-and-lidar This tutorial explains sensor calibration, covering intrinsic and extrinsic parameters, and how tools like ReductStore and MetriCal enable automated, scalable calibration workflows for robotics and autonomous systems. - [Getting Started with MetriCal](https://www.reduct.store/blog/metrical-calibrate-camera-and-lidar.md): This tutorial explains sensor calibration, covering intrinsic and extrinsic parameters, and how tools like ReductStore and MetriCal enable automated, scalable calibration workflows for robotics and autonomous systems. ### minio-alternative-time-series-data ReductStore is a MinIO alternative that is purpose-built for unstructured time-series data. It is designed to efficiently handle and store large scale unstructured and time-stamped data. Composed of buckets, entries, blocks, and records, our system leverages configurable attributes, such as maximum block size, maximum record count per block, and quotas to govern storage restrictions. This adaptability is key to ensuring we can leverage vast amounts of blob data efficiently. - [The MinIO alternative for Time-Series Based Data](https://www.reduct.store/blog/minio-alternative-time-series-data.md): ReductStore is a MinIO alternative that is purpose-built for unstructured time-series data. It is designed to efficiently handle and store large scale unstructured and time-stamped data. Composed of buckets, entries, blocks, and records, our system leverages configurable attributes, such as maximum block size, maximum record count per block, and quotas to govern storage restrictions. This adaptability is key to ensuring we can leverage vast amounts of blob data efficiently. ### minio-reductstore-beyond-benchmarks ReductStore and MinIO are two powerful solutions designed to handle massive amounts of unstructured data, but they serve different purposes. In this article, we'll explore the differences between ReductStore and MinIO, examine where each excels, and discuss how they can be used together to build a more comprehensive data storage solution. - [ReductStore vs. MinIO: Beyond Benchmarks](https://www.reduct.store/blog/minio-reductstore-beyond-benchmarks.md): ReductStore and MinIO are two powerful solutions designed to handle massive amounts of unstructured data, but they serve different purposes. In this article, we'll explore the differences between ReductStore and MinIO, examine where each excels, and discuss how they can be used together to build a more comprehensive data storage solution. ### mongodb-reductstore Choosing between ReductStore and MongoDB? Compare their strengths: time-indexed object storage vs. document database. Optimize now. - [ReductStore vs. MongoDB: Which One is Right for Your Data?](https://www.reduct.store/blog/mongodb-reductstore.md): Choosing between ReductStore and MongoDB? Compare their strengths: time-indexed object storage vs. document database. Optimize now. ### news - [The Bottom Line After 6 Weeks With Rust](https://www.reduct.store/blog/news/6-weeks-with-rust.md): a post about my experience with migrating ReductStore from C++ to Rust - [Release of CLI Client for v0.5.0](https://www.reduct.store/blog/news/cli/reduct-cli-v0_5_0-released.md): Release notes for CLI Client for ReductStore v0.5.0 with new features to improve data export and mirroring - [Release of CLI Client for v0.7.0](https://www.reduct.store/blog/news/cli/reduct-cli-v0_7-released.md): Release notes for CLI Client for ReductStore v0.7.0 with improved rcli export command. - [ReductStore CLI Client now in Rust](https://www.reduct.store/blog/news/reduct-cli-in-rust.md): Update on the ReductStore CLI client migration from Python to Rust - [Release v1.8.0: Introducing Data Replication](https://www.reduct.store/blog/news/reductstore-8-released.md): ReductStore v1.8.0 introduces data replication between ReductStore instances. - [ReductStore v1.9.0 Released](https://www.reduct.store/blog/news/reductstore-9-released.md): This release, version 1.9.0, introduces several key improvements and features to enhance the overall performance and user experience. These updates include optimizations for disk space management, the inclusion of replication support in the Web Console, and the provision of license information in the HTTP API. - [ReductStore Core Adopts Apache 2.0 License](https://www.reduct.store/blog/news/reductstore-core-apache-2-0.md): Starting with v1.19, ReductStore is split into Core (Apache 2.0) and Pro (commercial). - [ReductStore and INSAION: Edge Recording Partnership](https://www.reduct.store/blog/news/reductstore-insaion-partnership.md): ReductStore is the storage engine behind INSAION's edge recording. It keeps data on the robot, and INSAION adds fleet observability on top. - [Release v1.10.0: downsampling and optimization](https://www.reduct.store/blog/news/reductstore-v1_10_0-released.md): ReductStore v1.10.0 introduces downsampling and optimization features that can help you improve query and replication performance. - [Release v1.11.0: Changing labels and storage engine optimization](https://www.reduct.store/blog/news/reductstore-v1_11_0-released.md): ReductStore v1.11.0 introduces new features for managing labels and optimizing storage engine performance. - [ReductStore v1.12.0 released: record deletion API and storage engine optimization](https://www.reduct.store/blog/news/reductstore-v1_12_0-released.md): ReductStore v1.12.0 introduces a new record deletion API and storage engine optimization that can help you manage your data more efficiently. - [ReductStore v1.13.0 Released With New Conditional Query API](https://www.reduct.store/blog/news/reductstore-v1_13_0-released.md): ReductStore v1.13.0 is now available with a new conditional query API that allows use logical and comparison operators to filter records by labels when quering or removing - [ReductStore v1.14.0 Released With Many Improvements](https://www.reduct.store/blog/news/reductstore-v1_14_0-released.md): ReductStore v1.14 introduces new conditional query operators, configuration settings and data browsing in Web Console. - [ReductStore v1.15.0 Released With Extension API and Improved Web Console](https://www.reduct.store/blog/news/reductstore-v1_15_0-released.md): ReductStore v1.15 introduces an extension API, improved Web Console, and new conditional query operators. - [ReductStore v1.16.0 Released With New Extensions and Context Replication](https://www.reduct.store/blog/news/reductstore-v1_16_0-released.md): We are pleased to announce the release of ReductStore v1.16.0, which includes new extensions for robotics and columnar data, as well as the ability to replicate context records in queries. - [ReductStore v1.17.0 Released with Query Links and S3 Storage Backend Support](https://www.reduct.store/blog/news/reductstore-v1_17_0-released.md): We are pleased to announce the release of ReductStore v1.17.0, which introduces query links for data access and support for S3-compatible storage backends. - [ReductStore v1.18.0 Released with Resilient Deployments and the Multi-entry API](https://www.reduct.store/blog/news/reductstore-v1_18_0-released.md): We are pleased to announce the release of ReductStore v1.18.0, which includes support for resilient deployments and a new Multi-entry API for efficient data management. - [ReductStore v1.19: Open Data Backbone for Robotics and ROS](https://www.reduct.store/blog/news/reductstore-v1_19_0-released.md): ReductStore v1.19 introduces Apache 2.0 open-source licensing, a ROS-inspired hierarchical data model with attachments for schemas and metadata, a native Zenoh API for edge communication, and ReductBridge for seamless integration with ROS1 and ROS2. - [ReductStore v1.2.1 Released](https://www.reduct.store/blog/news/reductstore-v1_2_1-released.md): ReductStore v1.2.0 is released with a new HTTP method to get permission for the current API token - [ReductStore v1.20: Lifecycle Policies, Protobuf, SQL, and Parquet](https://www.reduct.store/blog/news/reductstore-v1_20_0-released.md): ReductStore v1.20 introduces lifecycle policies for automated data deletion and compression, Protobuf support across the ecosystem, and SQL/Parquet support in the ReductSelect extension. - [ReductStore v1.21: Data Explorer and Community Contributions](https://www.reduct.store/blog/news/reductstore-v1_21_0-released.md): ReductStore v1.21 introduces the new Data Explorer, improves replication, lifecycle policies, queries, and system diagnostics, and includes contributions from a growing open-source community. - [ReductStore v1.3.0 Released](https://www.reduct.store/blog/news/reductstore-v1_3_0-released.md): Introducing version 1.3 of Reductstore, a high-performance database with improved filtering capabilities and label support for enhanced organization and querying - [ReductStore v1.4.0 in Rust has been released](https://www.reduct.store/blog/news/reductstore-v1_4_0-released.md): Announcing ReductStore v1.4.0! Written entirely in Rust, this version comes with breaking API changes, continuous query additions, and updated client SDKs. Stay tuned for more features in the next release. - [ReductStore v1.5.0 has been released](https://www.reduct.store/blog/news/reductstore-v1_5_0-released.md): ReductStore released version 1.5.0 featuring two important features to increase data downloading speed and new HEAD versions of endpoints to read and query records without HTTP body. - [Release v1.6.0: license and client SDK for Rust](https://www.reduct.store/blog/news/reductstore-v1_6_0-released.md): The article announces the release of ReductStore 1.6.0, a time-series database designed for managing large amounts of blob data. The update includes a new license, client SDK for Rust, and new features in HTTP API 1.6.0. - [Release v1.7.0: Provisioning & Batch Writing](https://www.reduct.store/blog/news/reductstore-v1_7_0-released.md): ReductStore v1.7.0 introduces two new features that make it easier to provision resources and write data in batches, which can improve your performance and efficiency when using ReductStore for edge computing and AI applications. - [Release of C++ SDK v1.2.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-cpp-v1_2_0-released.md): Release notes for ReductStore Client SDK for C++ v1.2.0 with usage examples - [Release of C++ SDK v1.3.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-cpp-v1_3_0-released.md): Release notes for ReductStore Client SDK for C++ v1.3.0 with support for labels and content type - [Release of JavaScript SDK v1.2.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-js-v1_2_0-released.md): Release notes for ReductStore Client SDK for JavaScript v1.2.0 with usage examples - [Release of JavaScript SDK v1.3.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-js-v1_3_0-released.md): Introducing v1.3.0 of the ReductStore Client SDK for JavaScript: Enhancements to Labels and Content-Type - [Release of Python SDK v1.2.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-py-v1_2_0-released.md): Release notes for ReductStore Client SDK for Python v1.2.0 with usage examples - [Release of Python SDK v1.3.0](https://www.reduct.store/blog/news/sdks/tutorials/reduct-py-v1_3_0-released.md): Introducing v1.3.0 of the ReductStore Client SDK for Python: Enhancements to Labels and Content-Type - [ReductStore is now available on the Snap Store](https://www.reduct.store/blog/news/tutorials/snap-support.md): ReductStore, the time series database for blob data, is now available from the Snap Store - [We're Moving to Rust](https://www.reduct.store/blog/news/we-move-to-rust.md): An explanation of our decision to move to Rust ### nginx-resilient-deployment Learn how to deploy ReductStore behind NGINX with an active–active model for zero-downtime ingestion and querying. - [Building a Resilient ReductStore Deployment with NGINX](https://www.reduct.store/blog/nginx-resilient-deployment.md): Learn how to deploy ReductStore behind NGINX with an active–active model for zero-downtime ingestion and querying. ### pre-trained-models-computer-vision Pre-trained models are a valuable resource for computer vision developers, allowing them to build on previous knowledge rather than starting from scratch. This article explores the benefits of using pre-trained models, key criteria for choosing the right model, and top resources for finding pre-trained models in image classification. It also provides a step-by-step guide on fine-tuning a pre-trained model with Roboflow and best practices for maintaining model performance and data quality over time. - [How to Find the Best Pre-Trained Models for Image Classification](https://www.reduct.store/blog/pre-trained-models-computer-vision.md): Pre-trained models are a valuable resource for computer vision developers, allowing them to build on previous knowledge rather than starting from scratch. This article explores the benefits of using pre-trained models, key criteria for choosing the right model, and top resources for finding pre-trained models in image classification. It also provides a step-by-step guide on fine-tuning a pre-trained model with Roboflow and best practices for maintaining model performance and data quality over time. ### query-csv-parquet-reductselect Store CSV packets as ReductStore records and process them on the server with ReductSelect: filter rows with SQL, combine records across a time window, and export results as Parquet. - [Query CSV and Parquet Records in Place with ReductSelect](https://www.reduct.store/blog/query-csv-parquet-reductselect.md): Store CSV packets as ReductStore records and process them on the server with ReductSelect: filter rows with SQL, combine records across a time window, and export results as Parquet. ### record-ros1-topics-reduct-bridge Record ROS 1 topics into ReductStore with ReductBridge: subscribe to a running master, use the header stamp as the record time, and query the data back by time and label. - [Record ROS 1 Topics in ReductStore with ReductBridge](https://www.reduct.store/blog/record-ros1-topics-reduct-bridge.md): Record ROS 1 topics into ReductStore with ReductBridge: subscribe to a running master, use the header stamp as the record time, and query the data back by time and label. ### reduct-bridge-metrics-input The ReductBridge metrics input collects CPU, memory, and disk usage from any host and stores them as time-indexed JSON records in ReductStore with no SDK, broker, or robot required. - [Collect Host Metrics with the ReductBridge Metrics Input](https://www.reduct.store/blog/reduct-bridge-metrics-input.md): The ReductBridge metrics input collects CPU, memory, and disk usage from any host and stores them as time-indexed JSON records in ReductStore with no SDK, broker, or robot required. ### reduct-bridge-shell-input Legacy shop-floor machines often expose only a command line and speak no protocol worth integrating. The ReductBridge shell input runs any command on a fixed interval, stores its output as time-indexed records, and labels them from regex capture groups or static values. - [Capture Output from Legacy Equipment with the ReductBridge Shell Input](https://www.reduct.store/blog/reduct-bridge-shell-input.md): Legacy shop-floor machines often expose only a command line and speak no protocol worth integrating. The ReductBridge shell input runs any command on a fixed interval, stores its output as time-indexed records, and labels them from regex capture groups or static values. ### roboflow-annotation High-FPS computer vision applications require efficient data annotation and storage. Learn how Roboflow and ReductStore can help reduce the workload and speed up the process. - [Reducing Annotation Work in High-FPS Vision Applications with Roboflow](https://www.reduct.store/blog/roboflow-annotation.md): High-FPS computer vision applications require efficient data annotation and storage. Learn how Roboflow and ReductStore can help reduce the workload and speed up the process. ### roboflow-reductstore Learn how to use ReductStore and Roboflow to easily build and deploy computer vision models for real-time applications on edge devices. - [Computer Vision Made Simple with ReductStore and Roboflow](https://www.reduct.store/blog/roboflow-reductstore.md): Learn how to use ReductStore and Roboflow to easily build and deploy computer vision models for real-time applications on edge devices. ### roboflow-yolov10 Learn how to train a YOLOv10 model and manage data storage for real-time performance on edge devices using Roboflow, Ultralytics, and ReductStore. - [YOLOv10 Training and Real-Time Data Storage](https://www.reduct.store/blog/roboflow-yolov10.md): Learn how to train a YOLOv10 model and manage data storage for real-time performance on edge devices using Roboflow, Ultralytics, and ReductStore. ### robotics-mongodb-vs-reductstore Learn the differences between MongoDB and ReductStore for managing data in robotics applications. Compare their architecture, data querying, communication protocols, data batching, replication, retention policies, and performance. - [MongoDB vs ReductStore: Choosing the Right Database for Robotics Applications](https://www.reduct.store/blog/robotics-mongodb-vs-reductstore.md): Learn the differences between MongoDB and ReductStore for managing data in robotics applications. Compare their architecture, data querying, communication protocols, data batching, replication, retention policies, and performance. ### store-h264-camera-stream-export-mp4 ReductStore stores H.264 chunks as time-indexed records, and the ReductVideo extension returns a playable MP4 from a normal query, split into episodes by duration, size or timestamp gap. - [Store an H.264 Camera Stream and Export It as Playable MP4](https://www.reduct.store/blog/store-h264-camera-stream-export-mp4.md): ReductStore stores H.264 chunks as time-indexed records, and the ReductVideo extension returns a playable MP4 from a normal query, split into episodes by duration, size or timestamp gap. ### store-robotic-data Explore how ReductStore is optimized for managing robotics data, offering superior performance in handling time series data. Learn about its efficient data batching, advanced replication capabilities, and robust retention policies designed for the needs of robotics applications. - [How to Store and Manage Robotics Data](https://www.reduct.store/blog/store-robotic-data.md): Explore how ReductStore is optimized for managing robotics data, offering superior performance in handling time series data. Learn about its efficient data batching, advanced replication capabilities, and robust retention policies designed for the needs of robotics applications. ### store-ros-topics Learn 3 effective ways to store ROS topics, from using Rosbag to advanced time-series storage with ReductStore. Discover scalable solutions, filtering options, and best practices for efficiently managing robotics data. - [3 Ways to Store ROS Topics](https://www.reduct.store/blog/store-ros-topics.md): Learn 3 effective ways to store ROS topics, from using Rosbag to advanced time-series storage with ReductStore. Discover scalable solutions, filtering options, and best practices for efficiently managing robotics data. ### timescaledb-reductstore ReductStore and TimescaleDB are two powerful but distinct solutions, each designed to handle time-series data in different ways. In this article, we'll explore these differences between ReductStore and TimescaleDB, as well as their other strengths, and when to use each. - [ReductStore vs. TimescaleDB: How to Choose the Right Time-Series Database](https://www.reduct.store/blog/timescaledb-reductstore.md): ReductStore and TimescaleDB are two powerful but distinct solutions, each designed to handle time-series data in different ways. In this article, we'll explore these differences between ReductStore and TimescaleDB, as well as their other strengths, and when to use each. ### tutorial-store-ros-data This tutorial shows how to set up a Raspberry Pi with ROS 2, a USB camera, and YOLOv5 for object detection, and use a recorder node to upload data to ReductStore. From setting up the camera and YOLOv5 to configuring the recorder node and replicating data to a central ReductStore instance, this guide provides step-by-step instructions for building a robust ROS 2 data storage pipeline. - [How to Store and Manage ROS Data](https://www.reduct.store/blog/tutorial-store-ros-data.md): This tutorial shows how to set up a Raspberry Pi with ROS 2, a USB camera, and YOLOv5 for object detection, and use a recorder node to upload data to ReductStore. From setting up the camera and YOLOv5 to configuring the recorder node and replicating data to a central ReductStore instance, this guide provides step-by-step instructions for building a robust ROS 2 data storage pipeline. ### tutorial - [How to Use Reductstore as a Data Sink for Kafka](https://www.reduct.store/blog/tutorial/datastreaming/kafka/data-sink-guide.md): Discover how to use ReductStore as a data sink for Kafka. This guide covers the basics of setting up ReductStore to store and manage data from Kafka streams, providing a straightforward approach for efficiently storing binary data and its metadata, including labels, in a time series database. - [Kafka Integration Tutorial for Blob Data](https://www.reduct.store/blog/tutorial/datastreaming/kafka/easy-kafka-reductstore-integration-guide.md): This tutorial offers a simple approach to combining Apache Kafka with ReductStore for handling data streams from edge devices. We'll cover the basics of setting up Kafka and ReductStore using Docker, creating Kafka topics in Python, and managing blob data and metadata. ### tutorials - [Using Image Dataset with Python SDK](https://www.reduct.store/blog/tutorials/computer-vision/sdks/cats-datasets.md): A tutorial on how to download and use an image dataset with Python ReductStore SDK - [Node.js MQTT Client That Stores Every Message](https://www.reduct.store/blog/tutorials/iot/how-to-keep-mqtt-data-node.md): A Node.js MQTT client that subscribes to every topic on a Mosquitto broker and writes each message with its timestamp, so the history is queryable later. - [How to Keep a History of MQTT Data With Python](https://www.reduct.store/blog/tutorials/iot/how-to-keep-mqtt-data-python.md): A tutorial on how to keep a history of MQTT messages with Python by using the ReductStore Client SDK. - [Rust MQTT Client That Stores Every Message](https://www.reduct.store/blog/tutorials/iot/how-to-keep-mqtt-data-rust.md): Subscribe to an MQTT broker in Rust with rumqttc and write every message to ReductStore, so the history outlives the broker. Full code and Docker setup. - [How to Store MQTT Camera Frames and Binary Sensor Data with a Time Index](https://www.reduct.store/blog/tutorials/iot/mqtt-binary-data-time-index.md): A tutorial on how to store binary MQTT payloads — camera frames, waveforms, audio clips — with a proper time index using ReductBridge and ReductStore, enabling time-range queries and replay. - [ReductStore behind NGINX](https://www.reduct.store/blog/tutorials/reductstore-behind-nginx.md): A tutorial to run few ReductStore instances by using NGINX as a reverse proxy - [How to Store Images in ROS2](https://www.reduct.store/blog/tutorials/ros/optimal-image-storage-solutions-for-ros-based-computer-vision.md): Learn how to capture and store images from ROS2 using ReductStore, a high-performance storage and streaming solution for unstructured, time-series data. - [Integrating ReductStore into C++ Applications](https://www.reduct.store/blog/tutorials/sdks/cpp-sdk-quick-start.md): A quick start guide to integrate ReductStore into your C++ application by using the ReductStore C++ SDK. - [Quick Start with the ReductStore JavaScript SDK](https://www.reduct.store/blog/tutorials/sdks/js-sdk-quick-start.md): A tutorial to get started with the ReductStore JavaScript SDK - [Quick Start with the ReductStore Python SDK](https://www.reduct.store/blog/tutorials/sdks/py-sdk-quick-start.md): A tutorial to get started with the ReductStore Python SDK - [Subscribe to new records with C++ SDK](https://www.reduct.store/blog/tutorials/sdks/subscription-cpp.md): The example code demonstrates how to use the C++ Reduct SDK to subscribe to new records from a bucket. ### vibration-analysis-python This article reviews the basic functions (RMS, creat factor, etc.) and transforms (spectrogram, PSD) used in vibration analysis, each with a Python example, provides a use case that uses elementary vibration analysis to exploit ReductStore's selective replication feature, and discusses the concept and benefits of machine learning and perspectives of its applications to signal analysis and anomaly detection. - [Vibration Data Analysis Using Python](https://www.reduct.store/blog/vibration-analysis-python.md): This article reviews the basic functions (RMS, creat factor, etc.) and transforms (spectrogram, PSD) used in vibration analysis, each with a Python example, provides a use case that uses elementary vibration analysis to exploit ReductStore's selective replication feature, and discusses the concept and benefits of machine learning and perspectives of its applications to signal analysis and anomaly detection. ## contact Reach out to the ReductStore team for support, inquiries, or feedback. We're here to help you with any questions you may have. - [Let's Connect](https://www.reduct.store/contact.md): Reach out to the ReductStore team for support, inquiries, or feedback. We're here to help you with any questions you may have. ## cra-checklist Download the CRA compliance checklist for robotics fleets and prepare your data infrastructure for upcoming EU CRA milestones. - [CRA Checklist for Robotics Fleets](https://www.reduct.store/cra-checklist.md): Download the CRA compliance checklist for robotics fleets and prepare your data infrastructure for upcoming EU CRA milestones. ## datasets Query live ROS 2 robot data, factory telemetry, and labeled image datasets on a public ReductStore server. Short Python examples with their expected output. - [Playground](https://www.reduct.store/datasets.md): Query live ROS 2 robot data, factory telemetry, and labeled image datasets on a public ReductStore server. Short Python examples with their expected output. ## download Get started with ReductStore by downloading our latest software and SDKs for Linux, Windows, and macOS. This page provides direct download links and step-by-step instructions to ensure a smooth installation process. - [Download](https://www.reduct.store/download.md): Get started with ReductStore by downloading our latest software and SDKs for Linux, Windows, and macOS. This page provides direct download links and step-by-step instructions to ensure a smooth installation process. ## enterprise Explore ReductStore Enterprise plans, commercial licensing, and co-development services for robotics and industrial IoT data pipelines. - [ReductStore Enterprise](https://www.reduct.store/enterprise.md): Explore ReductStore Enterprise plans, commercial licensing, and co-development services for robotics and industrial IoT data pipelines. ## fleet-audit Schedule a free fleet audit introduction call to discuss your robotics data pipeline and CRA compliance requirements. - [Fleet Audit Introduction Call](https://www.reduct.store/fleet-audit.md): Schedule a free fleet audit introduction call to discuss your robotics data pipeline and CRA compliance requirements. ## pricing ReductStore pricing: free open source Core, self-serve Pro at €15 or $18 per TB per month, and Enterprise. Estimate your storage cost on AWS S3, Azure Blob, or MinIO. - [Pricing](https://www.reduct.store/pricing.md): ReductStore pricing: free open source Core, self-serve Pro at €15 or $18 per TB per month, and Enterprise. Estimate your storage cost on AWS S3, Azure Blob, or MinIO. ### details Compare the ReductStore Free, Pro, and Enterprise plans. - [Pricing details](https://www.reduct.store/pricing/details.md): Compare the ReductStore Free, Pro, and Enterprise plans. ## solutions ### cloud Run on AWS, GCP, Hetzner, or on-prem. S3 backend with batching. High availability supported. - [Cloud Storage for Robotics and Industrial Workloads](https://www.reduct.store/solutions/cloud.md): Run on AWS, GCP, Hetzner, or on-prem. S3 backend with batching. High availability supported. ## whitepaper Read the ReductStore white paper: a data backbone for robotics and industrial IoT, with the architecture, benchmarks, and robotics, IIoT, and drone use cases. - [White Paper](https://www.reduct.store/whitepaper.md): Read the ReductStore white paper: a data backbone for robotics and industrial IoT, with the architecture, benchmarks, and robotics, IIoT, and drone use cases. ## docs ### cli Crates.io(latest version) - [ReductStore CLI](https://www.reduct.store/docs/cli.md): Crates.io(latest version) - [reduct-cli alias](https://www.reduct.store/docs/cli/alias.md): Manage aliases for instance URLs - [reduct-cli attachment](https://www.reduct.store/docs/cli/attachment.md): Manage entry attachments - [reduct-cli bucket](https://www.reduct.store/docs/cli/bucket.md): Manage buckets - [reduct-cli cp](https://www.reduct.store/docs/cli/cp.md): Copy data between instances or between an instance and the local filesystem - [reduct-cli lifecycle](https://www.reduct.store/docs/cli/lifecycle.md): Manage lifecycle policies - [reduct-cli replica](https://www.reduct.store/docs/cli/replica.md): Manage replication tasks - [reduct-cli rm](https://www.reduct.store/docs/cli/rm.md): Remove data from a bucket - [reduct-cli server](https://www.reduct.store/docs/cli/server.md): Get general information an instance - [reduct-cli token](https://www.reduct.store/docs/cli/token.md): Manage access tokens - [reduct-cli write](https://www.reduct.store/docs/cli/write.md): Write single record to a bucket ### conditional-query Learn how to use conditional queries to filter data in ReductStore. - [Conditional Query Reference](https://www.reduct.store/docs/conditional-query.md): Learn how to use conditional queries to filter data in ReductStore. - [Aggregation Operators](https://www.reduct.store/docs/conditional-query/aggregation-operators.md): Learn how to use aggregation operators to aggregate data in ReductStore. - [Arithmetic Operators](https://www.reduct.store/docs/conditional-query/arithmetic-operators.md): Learn how to use arithmetic operators in conditional queries to filter data in ReductStore. - [Comparison Operators](https://www.reduct.store/docs/conditional-query/comparison-operators.md): Learn how to use comparison operators in conditional queries to filter data in ReductStore. - [Date Operators](https://www.reduct.store/docs/conditional-query/date-operators.md): Extract UTC or timezone-aware date parts from timestamps in conditional queries. - [Directives](https://www.reduct.store/docs/conditional-query/directives.md): Learn how to use directives in conditional queries to change the behavior of the query in ReductStore. - [Communication Directives](https://www.reduct.store/docs/conditional-query/directives/communication.md): Learn how to use communication directives in conditional queries to control data transfer in ReductStore - [Querying Directives](https://www.reduct.store/docs/conditional-query/directives/querying.md): Learn how to use querying directives in conditional queries to modify the behavior of data retrieval in - [Logical Operators](https://www.reduct.store/docs/conditional-query/logical-operators.md): Learn how to use logical operators in conditional queries to filter data in ReductStore. - [Misc Operators](https://www.reduct.store/docs/conditional-query/misc-operators.md): Learn how to use miscellaneous operators to filter data in ReductStore. - [String Operators](https://www.reduct.store/docs/conditional-query/string-operators.md): Learn how to use string operators in conditional queries. ### configuration ReductStore configuration options and provisioning. - [⚙ Server Configuration](https://www.reduct.store/docs/configuration.md): ReductStore configuration options and provisioning. - [ReductStore Provisioning](https://www.reduct.store/docs/configuration/provisioning.md): ReductStore resource provisioning using environment variables. - [ReductStore Settings](https://www.reduct.store/docs/configuration/settings.md): ReductStore can be configured using environment variables. Learn about the available settings and how to use them. ### extensions Documentation for Official ReductStore extensions. - [ReductStore Extensions](https://www.reduct.store/docs/extensions.md): Documentation for Official ReductStore extensions. - [ReductStore Extension Development Guide](https://www.reduct.store/docs/extensions/development.md): Guide for developing extensions for ReductStore in Rust. - [Official ReductStore Extensions](https://www.reduct.store/docs/extensions/official.md): Documentation for Official ReductStore extensions. - [ReductROS](https://www.reduct.store/docs/extensions/official/ros-ext.md): Extension for ReductStore to extract and transform data in ROS formats. - [MCAP](https://www.reduct.store/docs/extensions/official/ros-ext/mcap.md): Parameters and examples for working with MCAP files in ReductROS. - [Raw Messages](https://www.reduct.store/docs/extensions/official/ros-ext/raw.md): Extract raw ROS 1, ROS 2, and Protobuf records as JSON or export them as MCAP using `$schema` entry attachments. - [Rosbag](https://www.reduct.store/docs/extensions/official/ros-ext/rosbag.md): Parameters and examples for working with rosbag files in ReductROS. - [ReductSelect Extension](https://www.reduct.store/docs/extensions/official/select-ext.md): Extension for ReductStore that allows you to manipulate data in columnar formats on the storage side. - [ReductVideo Extension](https://www.reduct.store/docs/extensions/official/video-ext.md): Extension for ReductStore that exports raw video chunks as playable files with automatic parameter detection and episode splitting. ### getting-started Getting started with ReductStore database and how to integrate it into your infrastructure. - [🚀 Getting Started](https://www.reduct.store/docs/getting-started.md): Getting started with ReductStore database and how to integrate it into your infrastructure. - [Quick Start With C++](https://www.reduct.store/docs/getting-started/with-cpp.md): Getting started with the ReductStore C++ Client SDK. - [Quick Start With Golang](https://www.reduct.store/docs/getting-started/with-go.md): Getting started with the ReductStore Go Client SDK. - [Quick Start With JavaScript](https://www.reduct.store/docs/getting-started/with-javascript.md): Getting started with the ReductStore JavaScript Client SDK - [Quick Start With Python](https://www.reduct.store/docs/getting-started/with-python.md): Getting started with the ReductStore Python Client SDK. - [Quick Start With Rust](https://www.reduct.store/docs/getting-started/with-rust.md): Getting started with the ReductStore Rust Client SDK. ### glossary Glossary of key terms and concepts for ReductStore. - [🗒️ ReductStore Glossary](https://www.reduct.store/docs/glossary.md): Glossary of key terms and concepts for ReductStore. ### guides Guides for using ReductStore with SDKs and other tools. - [📚 Guides](https://www.reduct.store/docs/guides.md): Guides for using ReductStore with SDKs and other tools. - [Access Control](https://www.reduct.store/docs/guides/access-control.md): Complete guide to authentication, access control and token management in ReductStore - [ReductStore Bucket Guide](https://www.reduct.store/docs/guides/buckets.md): Complete guide to Buckets in ReductStore - [Data Ingestion With ReductStore](https://www.reduct.store/docs/guides/data-ingestion.md): Complete guide to ingesting data into ReductStore using the SDKs or HTTP API. - [Data Management With ReductStore](https://www.reduct.store/docs/guides/data-management.md): Complete guide on typical data management operations in ReductStore. - [Data Querying From ReductStore Database](https://www.reduct.store/docs/guides/data-querying.md): Complete guide to querying data from ReductStore using the CLI, HTTP API and SDKs. - [Data Replication With ReductStore](https://www.reduct.store/docs/guides/data-replication.md): Complete guide to replicating data in ReductStore - [Disaster Recovery](https://www.reduct.store/docs/guides/disaster-recovery.md): Learn how to set up disaster recovery for ReductStore to ensure data resilience and availability. - [Lifecycle Policies](https://www.reduct.store/docs/guides/lifecycle-policies.md): Complete guide to managing lifecycle policies in ReductStore ### how-does-it-work ReductStore basic concepts like buckets, entries, blocks, records, replication, HTTP API etc. - [💡 Basic Concepts](https://www.reduct.store/docs/how-does-it-work.md): ReductStore basic concepts like buckets, entries, blocks, records, replication, HTTP API etc. ### http-api HTTP API documentation for interacting with the database. - [Basic Concepts](https://www.reduct.store/docs/http-api.md): HTTP API documentation for interacting with the database. - [Bucket API Specification Reference](https://www.reduct.store/docs/http-api/bucket-api.md): Bucket API allows users to create, modify, and delete buckets. - [Entry API Specification Reference](https://www.reduct.store/docs/http-api/entry-api.md): The Entry API allows users to write and read data from their buckets, as well as search for specific entries using query operations. - [Attachments ($meta)](https://www.reduct.store/docs/http-api/entry-api/attachments.md): How to store and manage entry attachments using the system `$meta` entry. - [Entry API to Delete Data](https://www.reduct.store/docs/http-api/entry-api/delete_data.md): HTTP Endpoints for deleting data from an entry in the database. - [Entry API to Read Data](https://www.reduct.store/docs/http-api/entry-api/read_data.md): HTTP Endpoints for reading data from an entry in the database. - [Entry API to Run Query](https://www.reduct.store/docs/http-api/entry-api/run_query.md): HTTP Endpoints for running queries on an entry in the database. - [Entry API to Update Data](https://www.reduct.store/docs/http-api/entry-api/update_data.md): HTTP Endpoints for updating data in the database. - [Entry API to Write Data](https://www.reduct.store/docs/http-api/entry-api/write_data.md): HTTP Endpoints for writing data to the database. - [I/O API specification reference](https://www.reduct.store/docs/http-api/io-api.md): HTTP API documentation for batched reads, writes, updates, and removals across multiple entries. - [Remove records (I/O API)](https://www.reduct.store/docs/http-api/io-api/delete_data.md): HTTP endpoint to remove multiple records across entries using Batch Protocol v2 header naming. - [Read query results (I/O API)](https://www.reduct.store/docs/http-api/io-api/read_data.md): HTTP endpoint to read batched query results across entries using Batch Protocol v2. - [Run a query (I/O API)](https://www.reduct.store/docs/http-api/io-api/run_query.md): HTTP endpoint to run a query across entries in a bucket and read results in batches. - [Update record labels (I/O API)](https://www.reduct.store/docs/http-api/io-api/update_data.md): HTTP endpoint to update labels for multiple records across entries using Batch Protocol v2. - [Write batched records (I/O API)](https://www.reduct.store/docs/http-api/io-api/write_data.md): HTTP endpoint to write batched records to multiple entries using Batch Protocol v2. - [Query Link API Specification Reference](https://www.reduct.store/docs/http-api/query-link-api.md): The API for creating query links to share data securely without access tokens. - [Replication API Specification Reference](https://www.reduct.store/docs/http-api/replication-api.md): The API for managing replications - [Server API Specification Reference](https://www.reduct.store/docs/http-api/server-api.md): The server API provides HTTP methods for checking the status of the server, listing the available buckets, and retrieving the permissions for the current API token. - [Token API Specification Reference](https://www.reduct.store/docs/http-api/token-authentication.md): The API for managing access tokens and permissions for the database. ### integrations ReductStore integrations with external systems. - [Integrations](https://www.reduct.store/docs/integrations.md): ReductStore integrations with external systems. - [Cloud Object Storage Backend](https://www.reduct.store/docs/integrations/cloud-storage.md): Using S3-compatible and Azure Blob storage as backends for ReductStore. - [Grafana](https://www.reduct.store/docs/integrations/grafana.md): Integrate ReductStore with Grafana for time-series visualization and monitoring. - [Zenoh API](https://www.reduct.store/docs/integrations/zenoh.md): Ingest and query ReductStore data over Zenoh publish/subscribe and queryable interfaces. ### reduct-bridge Documentation for ReductBridge, the data bridge between live robotics and IIoT systems and ReductStore. - [ReductBridge](https://www.reduct.store/docs/reduct-bridge.md): Documentation for ReductBridge, the data bridge between live robotics and IIoT systems and ReductStore. - [Dev Environment](https://www.reduct.store/docs/reduct-bridge/dev.md): Documentation for Dev Environment in ReductBridge. - [HTTP Input](https://www.reduct.store/docs/reduct-bridge/input/http.md): Documentation for HTTP Input in ReductBridge. - [Metrics Input](https://www.reduct.store/docs/reduct-bridge/input/metrics.md): Documentation for Metrics Input in ReductBridge. - [MQTT input](https://www.reduct.store/docs/reduct-bridge/input/mqtt.md): Documentation for MQTT input in ReductBridge. - [ROS1 Input](https://www.reduct.store/docs/reduct-bridge/input/ros1.md): Documentation for ROS1 Input in ReductBridge. - [ROS2 Input](https://www.reduct.store/docs/reduct-bridge/input/ros2.md): Documentation for ROS2 Input in ReductBridge. - [Shell Input](https://www.reduct.store/docs/reduct-bridge/input/shell.md): Documentation for Shell Input in ReductBridge. - [ReductStore Remote](https://www.reduct.store/docs/reduct-bridge/remote/reduct.md): Documentation for ReductStore Remote in ReductBridge. ### ros Complete guide to building data flow pipelines with ReductStore in ROS applications. - [Using ReductStore in ROS applications](https://www.reduct.store/docs/ros.md): Complete guide to building data flow pipelines with ReductStore in ROS applications. - [Buffering, replication, and monitoring](https://www.reduct.store/docs/ros/buffering-replication-monitoring.md): Configure ReductStore to buffer ROS data on a robot, replicate selected topics, compress local data, and expose operational diagnostics. - [Collecting ROS 2 data with ReductBridge](https://www.reduct.store/docs/ros/data-collection.md): Configure ReductBridge to subscribe to ROS 2 topics, preserve schemas, assign timestamps and labels, and write data to ReductStore. - [Visualizing ROS data with Foxglove](https://www.reduct.store/docs/ros/using-foxglove.md): Export raw ROS records from ReductStore as MCAP and inspect them in Foxglove. - [Querying ROS data with Grafana](https://www.reduct.store/docs/ros/using-grafana.md): Query and visualize ROS GPS data from ReductStore with Grafana. - [Querying ROS data with SDKs](https://www.reduct.store/docs/ros/using-sdks.md): Query and decode ROS data from ReductStore with the official client SDKs. ### sdk - [ReductStore Client SDK for JavaScript](https://www.reduct.store/docs/sdk/js.md): API reference for the ReductStore Client SDK for JavaScript. - [reduct-js](https://www.reduct.store/docs/sdk/js/api.md): API reference for reduct-js in the ReductStore Client SDK for JavaScript. - [APIError](https://www.reduct.store/docs/sdk/js/api/classes/APIError.md): API reference for APIError in the ReductStore Client SDK for JavaScript. - [Batch](https://www.reduct.store/docs/sdk/js/api/classes/Batch.md): API reference for Batch in the ReductStore Client SDK for JavaScript. - [Bucket](https://www.reduct.store/docs/sdk/js/api/classes/Bucket.md): API reference for Bucket in the ReductStore Client SDK for JavaScript. - [BucketInfo](https://www.reduct.store/docs/sdk/js/api/classes/BucketInfo.md): API reference for BucketInfo in the ReductStore Client SDK for JavaScript. - [BucketSettings](https://www.reduct.store/docs/sdk/js/api/classes/BucketSettings.md): API reference for BucketSettings in the ReductStore Client SDK for JavaScript. - [Client](https://www.reduct.store/docs/sdk/js/api/classes/Client.md): API reference for Client in the ReductStore Client SDK for JavaScript. - [EntryInfo](https://www.reduct.store/docs/sdk/js/api/classes/EntryInfo.md): API reference for EntryInfo in the ReductStore Client SDK for JavaScript. - [FullLifecycleInfo](https://www.reduct.store/docs/sdk/js/api/classes/FullLifecycleInfo.md): API reference for FullLifecycleInfo in the ReductStore Client SDK for JavaScript. - [FullReplicationInfo](https://www.reduct.store/docs/sdk/js/api/classes/FullReplicationInfo.md): API reference for FullReplicationInfo in the ReductStore Client SDK for JavaScript. - [LicenseInfo](https://www.reduct.store/docs/sdk/js/api/classes/LicenseInfo.md): API reference for LicenseInfo in the ReductStore Client SDK for JavaScript. - [LifecycleInfo](https://www.reduct.store/docs/sdk/js/api/classes/LifecycleInfo.md): API reference for LifecycleInfo in the ReductStore Client SDK for JavaScript. - [LifecycleSettings](https://www.reduct.store/docs/sdk/js/api/classes/LifecycleSettings.md): API reference for LifecycleSettings in the ReductStore Client SDK for JavaScript. - [QueryOptions](https://www.reduct.store/docs/sdk/js/api/classes/QueryOptions.md): API reference for QueryOptions in the ReductStore Client SDK for JavaScript. - [RecordBatch](https://www.reduct.store/docs/sdk/js/api/classes/RecordBatch.md): API reference for RecordBatch in the ReductStore Client SDK for JavaScript. - [ReplicationInfo](https://www.reduct.store/docs/sdk/js/api/classes/ReplicationInfo.md): API reference for ReplicationInfo in the ReductStore Client SDK for JavaScript. - [ReplicationSettings](https://www.reduct.store/docs/sdk/js/api/classes/ReplicationSettings.md): API reference for ReplicationSettings in the ReductStore Client SDK for JavaScript. - [ServerInfo](https://www.reduct.store/docs/sdk/js/api/classes/ServerInfo.md): API reference for ServerInfo in the ReductStore Client SDK for JavaScript. - [Token](https://www.reduct.store/docs/sdk/js/api/classes/Token.md): API reference for Token in the ReductStore Client SDK for JavaScript. - [TokenCreateRequest](https://www.reduct.store/docs/sdk/js/api/classes/TokenCreateRequest.md): API reference for TokenCreateRequest in the ReductStore Client SDK for JavaScript. - [TokenPermissions](https://www.reduct.store/docs/sdk/js/api/classes/TokenPermissions.md): API reference for TokenPermissions in the ReductStore Client SDK for JavaScript. - [QuotaType](https://www.reduct.store/docs/sdk/js/api/enumerations/QuotaType.md): API reference for QuotaType in the ReductStore Client SDK for JavaScript. - [RecordBatchType](https://www.reduct.store/docs/sdk/js/api/enumerations/RecordBatchType.md): API reference for RecordBatchType in the ReductStore Client SDK for JavaScript. - [Status](https://www.reduct.store/docs/sdk/js/api/enumerations/Status.md): API reference for Status in the ReductStore Client SDK for JavaScript. - [WriteOptions](https://www.reduct.store/docs/sdk/js/api/interfaces/WriteOptions.md): API reference for WriteOptions in the ReductStore Client SDK for JavaScript. - [LifecycleMode](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleMode.md): API reference for LifecycleMode in the ReductStore Client SDK for JavaScript. - [Variable: DISABLED](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleMode/variables/DISABLED.md): API reference for Variable: DISABLED in the ReductStore Client SDK for JavaScript. - [Variable: DRY_RUN](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleMode/variables/DRY_RUN.md): API reference for Variable: DRY RUN in the ReductStore Client SDK for JavaScript. - [Variable: ENABLED](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleMode/variables/ENABLED.md): API reference for Variable: ENABLED in the ReductStore Client SDK for JavaScript. - [LifecycleType](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleType.md): API reference for LifecycleType in the ReductStore Client SDK for JavaScript. - [Variable: COMPRESS](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleType/variables/COMPRESS.md): API reference for Variable: COMPRESS in the ReductStore Client SDK for JavaScript. - [Variable: DELETE](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/LifecycleType/variables/DELETE.md): API reference for Variable: DELETE in the ReductStore Client SDK for JavaScript. - [ReplicationCompression](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationCompression.md): API reference for ReplicationCompression in the ReductStore Client SDK for JavaScript. - [Variable: GZIP](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationCompression/variables/GZIP.md): API reference for Variable: GZIP in the ReductStore Client SDK for JavaScript. - [Variable: NONE](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationCompression/variables/NONE.md): API reference for Variable: NONE in the ReductStore Client SDK for JavaScript. - [Variable: ZSTD](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationCompression/variables/ZSTD.md): API reference for Variable: ZSTD in the ReductStore Client SDK for JavaScript. - [ReplicationMode](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationMode.md): API reference for ReplicationMode in the ReductStore Client SDK for JavaScript. - [Variable: DISABLED](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationMode/variables/DISABLED.md): API reference for Variable: DISABLED in the ReductStore Client SDK for JavaScript. - [Variable: ENABLED](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationMode/variables/ENABLED.md): API reference for Variable: ENABLED in the ReductStore Client SDK for JavaScript. - [Variable: PAUSED](https://www.reduct.store/docs/sdk/js/api/reduct-js/namespaces/ReplicationMode/variables/PAUSED.md): API reference for Variable: PAUSED in the ReductStore Client SDK for JavaScript. - [LifecycleMode](https://www.reduct.store/docs/sdk/js/api/type-aliases/LifecycleMode.md): API reference for LifecycleMode in the ReductStore Client SDK for JavaScript. - [LifecycleType](https://www.reduct.store/docs/sdk/js/api/type-aliases/LifecycleType.md): API reference for LifecycleType in the ReductStore Client SDK for JavaScript. - [ReplicationCompression](https://www.reduct.store/docs/sdk/js/api/type-aliases/ReplicationCompression.md): API reference for ReplicationCompression in the ReductStore Client SDK for JavaScript. - [ReplicationMode](https://www.reduct.store/docs/sdk/js/api/type-aliases/ReplicationMode.md): API reference for ReplicationMode in the ReductStore Client SDK for JavaScript. - [Batch Module](https://www.reduct.store/docs/sdk/js/batch.md): API reference for the Batch Module of the ReductStore Client SDK for JavaScript. - [Bucket Module](https://www.reduct.store/docs/sdk/js/bucket.md): API reference for the Bucket Module of the ReductStore Client SDK for JavaScript. - [Client Module](https://www.reduct.store/docs/sdk/js/client.md): API reference for the Client Module of the ReductStore Client SDK for JavaScript. - [Error Module](https://www.reduct.store/docs/sdk/js/error.md): API reference for the Error Module of the ReductStore Client SDK for JavaScript. - [Bucket Info Module](https://www.reduct.store/docs/sdk/js/msg/bucket-info.md): API reference for the Bucket Info Module of the ReductStore Client SDK for JavaScript. - [Bucket Settings Module](https://www.reduct.store/docs/sdk/js/msg/bucket-settings.md): API reference for the Bucket Settings Module of the ReductStore Client SDK for JavaScript. - [Entry Info Module](https://www.reduct.store/docs/sdk/js/msg/entry-info.md): API reference for the Entry Info Module of the ReductStore Client SDK for JavaScript. - [Lifecycle Info Module](https://www.reduct.store/docs/sdk/js/msg/lifecycle-info.md): API reference for the Lifecycle Info Module of the ReductStore Client SDK for JavaScript. - [Lifecycle Settings Module](https://www.reduct.store/docs/sdk/js/msg/lifecycle-settings.md): API reference for the Lifecycle Settings Module of the ReductStore Client SDK for JavaScript. - [Query Entry Module](https://www.reduct.store/docs/sdk/js/msg/query-entry.md): API reference for the Query Entry Module of the ReductStore Client SDK for JavaScript. - [Replication Info Module](https://www.reduct.store/docs/sdk/js/msg/replication-info.md): API reference for the Replication Info Module of the ReductStore Client SDK for JavaScript. - [Replication Settings Module](https://www.reduct.store/docs/sdk/js/msg/replication-settings.md): API reference for the Replication Settings Module of the ReductStore Client SDK for JavaScript. - [Server Info Module](https://www.reduct.store/docs/sdk/js/msg/server-info.md): API reference for the Server Info Module of the ReductStore Client SDK for JavaScript. - [Status Module](https://www.reduct.store/docs/sdk/js/msg/status.md): API reference for the Status Module of the ReductStore Client SDK for JavaScript. - [Token Module](https://www.reduct.store/docs/sdk/js/msg/token.md): API reference for the Token Module of the ReductStore Client SDK for JavaScript. - [Record Batch Module](https://www.reduct.store/docs/sdk/js/record-batch.md): API reference for the Record Batch Module of the ReductStore Client SDK for JavaScript. - [ReductStore Client SDK for Python](https://www.reduct.store/docs/sdk/py.md): API reference for the ReductStore Client SDK for Python. - [Bucket Module](https://www.reduct.store/docs/sdk/py/bucket.md): API reference for the Bucket Module Module of the ReductStore Client SDK for Python. - [Client Module](https://www.reduct.store/docs/sdk/py/client.md): API reference for the Client Module Module of the ReductStore Client SDK for Python. - [Error Module](https://www.reduct.store/docs/sdk/py/error.md): API reference for the Error Module Module of the ReductStore Client SDK for Python. - [Bucket Module](https://www.reduct.store/docs/sdk/py/msg/bucket.md): API reference for the Bucket Module Module of the ReductStore Client SDK for Python. - [Replication Module](https://www.reduct.store/docs/sdk/py/msg/replication.md): API reference for the Replication Module Module of the ReductStore Client SDK for Python. - [Server Module](https://www.reduct.store/docs/sdk/py/msg/server.md): API reference for the Server Module Module of the ReductStore Client SDK for Python. - [Token Module](https://www.reduct.store/docs/sdk/py/msg/token.md): API reference for the Token Module Module of the ReductStore Client SDK for Python. - [Record Module](https://www.reduct.store/docs/sdk/py/record.md): API reference for the Record Module Module of the ReductStore Client SDK for Python.