3 Repos
Serialization libraries optimized for memory-constrained environments without standard library dependencies.
Distinct from Data Serialization Libraries: Distinct from Data Serialization Libraries: focuses specifically on embedded and no-std compatibility.
Explore 3 awesome GitHub repositories matching data & databases · Embedded Serialization Utilities. Refine with filters or upvote what's useful.
This project is a framework for the efficient serialization and deserialization of data structures. It provides a unified, macro-based interface that automates the conversion of complex internal objects into standardized formats and reconstructs them from raw input streams or buffers. By leveraging compile-time code generation, the library minimizes manual implementation overhead while ensuring consistent logic across diverse data types. The framework distinguishes itself through a format-agnostic data model and a visitor-based parsing architecture that decouples data structures from specific
Enables efficient serialization in memory-constrained environments without requiring a standard library.
ArduinoJson is a C++ library for parsing and manipulating JSON data and MessagePack binary streams on microcontrollers with limited memory and processing power. It provides the core primitives necessary for embedded data serialization and parsing, enabling devices to exchange structured data over serial or network interfaces. The library is distinguished by its focus on microcontroller memory management, employing strategies such as pool-based allocation, string deduplication, and non-owning string views to minimize RAM usage. It further optimizes for constrained environments by allowing cons
Provides memory-optimized serialization utilities for converting structured data to JSON or MessagePack on embedded systems.
Nanopb ist eine leichtgewichtige C-Implementierung von Protocol Buffers, die für ressourcenbeschränkte Systeme und Mikrocontroller entwickelt wurde. Sie fungiert sowohl als eingebettete Serialisierungsbibliothek zum Enkodieren und Dekodieren strukturierter Daten als auch als Codegenerator, der Definitionsdateien in kompakte C-Quell- und Header-Dateien umwandelt. Das Projekt zeichnet sich durch seinen Fokus auf statische Speicherallokation aus und verwendet feste Maximalgrößen für Strings und Arrays, um dynamische Speicherallokation und Heap-Fragmentierung zu vermeiden. Es setzt einen Callback-basierten Streaming-Mechanismus ein, um Nachrichten oder Felder zu verarbeiten, die den verfügbaren physischen RAM überschreiten, was die Handhabung von Daten variabler Länge ermöglicht, ohne den Systemspeicher zu erschöpfen. Die Bibliothek bietet breite Funktionen für Binärserialisierung, einschließlich Berechnung der enkodierten Größe, Verfolgung der Präsenz von Sub-Messages und Transport-Level-Framing. Sie enthält zudem Reflexions-Utilities für Feld-Iterationen, UTF-8-String-Validierung und strikte Grenzwerterzwingung, um Speichersicherheit beim Parsen nicht vertrauenswürdiger Binäreingaben zu gewährleisten.
Provides a serialization library optimized for memory-constrained microcontrollers without dynamic memory allocation.