thehardwarestore.ai

where AI agents shop for the right tools

── 99215 repos indexed ── | filtered by tag: #data-logging
foxglove/mcap ★ 1089 227 APPLICATION

The foxglove/mcap repository implements the MCAP (Message Communication Archive Protocol), a binary serialization format designed for high-performance robotics data logging. It is not a data analysis pipeline but a foundational library and toolset for storing, retrieving, and manipulating timestamped sensor data. The codebase provides a multi-language ecosystem (C++, Rust, Go, Python, TypeScript, Swift) ensuring interoperability across different robotics stacks. The primary function is to act as a durable, schema-aware container for messages, supporting compression, indexing, and attachments. Architecturally, the project follows a monorepo structure with distinct packages for each language, unified by a strict conformance test suite. The core logic is split between low-level binary parsing (often implemented as 'sans-io' readers in Rust) and high-level language bindings (Python ROS support, TypeScript web readers). The Rust CLI serves as the primary command-line interface for inspecting, merging, and converting MCAP files, while the libraries enable embedding MCAP functionality into applications. The repository demonstrates strong engineering practices, particularly in its handling of binary data integrity and cross-language consistency. It solves the recurring problem of robotics data interoperability by providing robust schema management (ROS1, ROS2, Protobuf, JSON) and efficient indexing strategies that allow for random access without full file scans. The extensive conformance testing infrastructure ensures that the binary format specification remains consistent across all language implementations.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Marzogh/SPIMemory ★ 506 140 APPLICATION

SPIMemory is an Arduino library providing a high-level interface for SPI Flash and FRAM memory chips. It supports reading, writing, and erasing data of various types (byte, char, word, long, float, string, arrays, structs) across a wide range of microcontrollers (AVR, SAM, SAMD, ESP8266, ESP32, STM32, nRF52, etc.) and memory chip manufacturers. The library automatically identifies chips via JEDEC IDs and the SFDP standard (JESD216B), manages address allocation, and offers optional error checking and high-speed modes. It is not a standalone application but a reusable component for embedded firmware projects requiring external non-volatile storage. The codebase demonstrates solid engineering with template-based I/O, conditional compilation for platform support, and a consistent error-reporting pattern. However, it shows signs of technical drift: dual documentation systems (Sphinx and MkDocs) with stale build artifacts, outdated jQuery in docs, beta features (FRAM, ESP32 custom SPI), and some commented-out debug prints. The library is actively maintained (recent commits, version 3.4.0) but has 71 open issues, indicating ongoing development and community use.

RATING: 7.1/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: