1 dépôt
Serialization implementations that avoid dynamic memory allocation to prevent heap fragmentation in constrained environments.
Distinct from Direct Memory Serializers: Focuses on avoiding heap allocation for serialization, whereas candidates focus on off-heap native buffers or specific file writers.
Explore 1 awesome GitHub repository matching operating systems & systems programming · Low-Memory Serialization. Refine with filters or upvote what's useful.
Nanopb est une implémentation C légère de Protocol Buffers conçue pour les systèmes aux ressources limitées et les microcontrôleurs. Il fonctionne à la fois comme une bibliothèque de sérialisation embarquée pour encoder et décoder des données structurées, et comme un générateur de code qui transforme les fichiers de définition en fichiers source et en-tête C compacts. Le projet se distingue par son accent sur l'allocation mémoire statique, utilisant des tailles maximales fixes pour les chaînes et les tableaux afin d'éviter l'allocation mémoire dynamique et la fragmentation du tas. Il emploie un mécanisme de streaming basé sur des callbacks pour traiter les messages ou les champs qui dépassent la RAM physique disponible, permettant la gestion de données de longueur variable sans épuiser la mémoire système. La bibliothèque fournit de larges capacités pour la sérialisation binaire, incluant le calcul de taille encodée, le suivi de présence des sous-messages et le framing au niveau transport. Elle inclut également des utilitaires de réflexion pour l'itération sur les champs, la validation de chaînes UTF-8 et l'application stricte des limites pour garantir la sécurité mémoire lors du parsing d'entrées binaires non fiables.
Encodes and decodes structured data into binary formats without using dynamic memory allocation to prevent heap fragmentation.