awesome-repositories.com
ब्लॉग
MCP
awesome-repositories.com

AI-संचालित खोज के साथ बेहतरीन ओपन-सोर्स रिपॉजिटरी खोजें।

एक्सप्लोर करेंक्यूरेटेड खोजेंओपन-सोर्स विकल्पसेल्फ-होस्टेड सॉफ्टवेयरब्लॉगसाइटमैप
प्रोजेक्टMCP सर्वरहमारे बारे मेंहम रैंकिंग कैसे करते हैंप्रेस
कानूनीगोपनीयताशर्तें
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
nanopb avatar

nanopb/nanopb

0
View on GitHub↗
5,437 स्टार्स·1,024 फोर्क्स·C·Zlib·7 व्यूज़jpa.kapsi.fi/nanopb↗

Nanopb

Nanopb, रिसोर्स-सीमित सिस्टम्स और माइक्रोकंट्रोलर्स के लिए डिज़ाइन किए गए Protocol Buffers का एक हल्का C इम्प्लीमेंटेशन है। यह संरचित डेटा को एनकोड और डिकोड करने के लिए एक एम्बेडेड सीरियलाइजेशन लाइब्रेरी और एक कोड जेनरेटर दोनों के रूप में कार्य करता है जो परिभाषा फाइल्स को कॉम्पैक्ट C सोर्स और हेडर फाइल्स में बदल देता है।

यह प्रोजेक्ट स्टैटिक मेमोरी एलोकेशन पर अपने फोकस के लिए प्रतिष्ठित है, जो डायनामिक मेमोरी एलोकेशन और हीप फ्रैगमेंटेशन से बचने के लिए स्ट्रिंग्स और एरेज़ के लिए फिक्स्ड अधिकतम साइज़ का उपयोग करता है। यह उपलब्ध फिजिकल RAM से अधिक संदेशों या फील्ड्स को प्रोसेस करने के लिए एक कॉलबैक-आधारित स्ट्रीमिंग तंत्र का उपयोग करता है, जिससे सिस्टम मेमोरी को समाप्त किए बिना वेरिएबल-लेंथ डेटा को संभालना संभव हो जाता है।

यह लाइब्रेरी बाइनरी सीरियलाइजेशन के लिए व्यापक क्षमताएं प्रदान करती है, जिसमें एनकोडेड साइज़ गणना, सबमेसेज प्रेजेंस ट्रैकिंग और ट्रांसपोर्ट-लेवल फ्रेमिंग शामिल है। इसमें फील्ड इटरेशन, UTF-8 स्ट्रिंग वैलिडेशन और अविश्वसनीय बाइनरी इनपुट को पार्स करते समय मेमोरी सुरक्षा सुनिश्चित करने के लिए सख्त बाउंड्स प्रवर्तन के लिए रिफ्लेक्शन यूटिलिटीज भी शामिल हैं।

Features

  • Embedded Serialization Utilities - Provides a serialization library optimized for memory-constrained microcontrollers without dynamic memory allocation.
  • Static Memory Allocations - Uses fixed maximum sizes for strings and arrays to ensure static memory allocation on resource-constrained systems.
  • Protocol Buffer Implementations - Provides a full implementation of Protocol Buffers specifically optimized for microcontrollers and memory-restricted systems.
  • Data Encoding and Serialization - Implements binary serialization for converting structured data into portable formats for storage or transmission.
  • Incremental Data Streaming - Processes data structures that exceed available system memory via incremental, function-based callbacks.
  • Large Dataset Streaming - Handles data structures that exceed available system RAM through incremental streaming and callback mechanisms.
  • Streaming Parsers - Provides incremental data processing using event-driven callbacks to handle messages that exceed available RAM.
  • Schema-Driven Code Generators - Translates schema definition files into type-safe C source and header files.
  • Binary Data Encoding - Serializes data structures into a compact binary format to minimize overhead on embedded systems.
  • Callback-Based Data Streaming - Handles binary data streams larger than physical RAM by employing a callback-based streaming mechanism.
  • Serialization Callbacks - Implements a callback mechanism to process fields of unlimited size without exhausting system memory.
  • Message Encoders and Decoders - Decodes complex binary streams containing nested elements, optional fields, and packed arrays.
  • Binary Format Decoders - Parses binary data streams into structured C data objects based on protobuf specifications.
  • Low-Memory Serialization - Encodes and decodes structured data into binary formats without using dynamic memory allocation to prevent heap fragmentation.
  • C Source Generators - Converts definition files into C source and header files for native compilation on microcontrollers.
  • Native Header Generators - Generates C header files to enable typed message handling in resource-constrained embedded projects.
  • C Code Generators - Translates Protocol Buffer definition files into compact C source and header files for embedded firmware.
  • Static Allocation Strategies - Implements strategies to pre-calculate memory requirements at compile time to avoid heap usage on embedded hardware.
  • Input Bounds Enforcement - Enforces strict bounds on reads and writes to ensure memory safety when parsing untrusted binary input.
  • Callback-Based Serialization - Uses callback functions to process large or dynamic data fields during encoding and decoding without buffering.
  • Stream Abstractions - Decouples serialization logic from hardware transports using a lightweight stream-abstracted reader and writer interface.
  • Binary Size Calculation - Calculates the total byte count required to serialize a message before performing the encoding.
  • Variable Data Callbacks - Executes user-defined functions during encoding and decoding to handle fields of unlimited or variable size.
  • Length-Delimited Message Framing - Prefixes message data with length indicators to facilitate parsing of variable-length segments over serial streams.
  • Submessage Presence Flags - Maintains explicit flags for nested messages to distinguish between empty data and missing fields.
  • Networking & Communication - Facilitates structured message exchange over serial or network streams between resource-constrained devices and other systems.
  • Field Processing - Invokes callback functions during processing to handle arrays or strings of unlimited length without exhausting RAM.
  • Binary Field Layout Optimizations - Controls the memory footprint of arrays and enums by specifying integer sizes and bit-widths during generation.
  • Generation Options - Allows specification of field types, packing options, and maximum sizes to control how definitions are converted into code.
  • Field Limit Configurations - Defines maximum field sizes via configuration files to allocate memory statically for restricted environments.
  • Safe Binary Parsing - Enforces strict bounds on reads and writes to ensure memory safety when decoding potentially malicious binary input.
  • Transport Abstractions - Decouples encoding and decoding logic from specific hardware transports through lightweight interface structures.
  • Message Descriptor Reflection - Provides reflection utilities for iterating over message fields using metadata descriptors.
  • Message Field Iterators - Enables traversal of message fields using descriptors to inspect or process metadata and values generically.
  • Communication Protocols - Small-footprint Protocol Buffers implementation in ANSI C.
  • Serialization - Small-footprint Protocol Buffers implementation for C.
  • Developer Tools and Utilities - Protocol Buffers implementation for embedded systems.

स्टार हिस्ट्री

nanopb/nanopb के लिए स्टार हिस्ट्री चार्टnanopb/nanopb के लिए स्टार हिस्ट्री चार्ट

AI सर्च

और अधिक बेहतरीन रिपॉजिटरी खोजें

अपनी ज़रूरत को सरल भाषा में बताएं — AI हजारों क्यूरेटेड ओपन-सोर्स प्रोजेक्ट्स को प्रासंगिकता के आधार पर रैंक करता है।

Start searching with AI

Nanopb के ओपन-सोर्स विकल्प

समान ओपन-सोर्स प्रोजेक्ट्स, जो Nanopb के साथ साझा की गई सुविधाओं के आधार पर रैंक किए गए हैं।
  • serde-rs/serdeserde-rs का अवतार

    serde-rs/serde

    10,457GitHub पर देखें↗

    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

    Rustderiveno-stdrust
    GitHub पर देखें↗10,457
  • bblanchon/arduinojsonbblanchon का अवतार

    bblanchon/ArduinoJson

    7,176GitHub पर देखें↗

    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

    C++arduinoarduino-libraryc-plus-plus
    GitHub पर देखें↗7,176
  • protocolbuffers/protobufprotocolbuffers का अवतार

    protocolbuffers/protobuf

    71,359GitHub पर देखें↗

    Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d

    C++marshallingprotobufprotobuf-runtime
    GitHub पर देखें↗71,359
  • tokio-rs/prosttokio-rs का अवतार

    tokio-rs/prost

    4,717GitHub पर देखें↗

    Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code generator. It translates schema definitions into idiomatic Rust structs and enums, providing the logic necessary to encode and decode structured data into the Protocol Buffers binary format. The project distinguishes itself through a no-std implementation, allowing it to operate in embedded or kernel environments that lack a standard library. It also serves as a schema introspector by emitting file descriptor sets, which enables the programmatic analysis of original schema definitio

    Rustprotobufrust
    GitHub पर देखें↗4,717
Nanopb के सभी 30 विकल्प देखें→

अक्सर पूछे जाने वाले प्रश्न

nanopb/nanopb क्या करता है?

Nanopb, रिसोर्स-सीमित सिस्टम्स और माइक्रोकंट्रोलर्स के लिए डिज़ाइन किए गए Protocol Buffers का एक हल्का C इम्प्लीमेंटेशन है। यह संरचित डेटा को एनकोड और डिकोड करने के लिए एक एम्बेडेड सीरियलाइजेशन लाइब्रेरी और एक कोड जेनरेटर दोनों के रूप में कार्य करता है जो परिभाषा फाइल्स को कॉम्पैक्ट C सोर्स और हेडर फाइल्स में बदल देता है।

nanopb/nanopb की मुख्य विशेषताएं क्या हैं?

nanopb/nanopb की मुख्य विशेषताएं हैं: Embedded Serialization Utilities, Static Memory Allocations, Protocol Buffer Implementations, Data Encoding and Serialization, Incremental Data Streaming, Large Dataset Streaming, Streaming Parsers, Schema-Driven Code Generators।

nanopb/nanopb के कुछ ओपन-सोर्स विकल्प क्या हैं?

nanopb/nanopb के ओपन-सोर्स विकल्पों में शामिल हैं: serde-rs/serde — This project is a framework for the efficient serialization and deserialization of data structures. It provides a… bblanchon/arduinojson — ArduinoJson is a C++ library for parsing and manipulating JSON data and MessagePack binary streams on microcontrollers… protocolbuffers/protobuf — Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a… tokio-rs/prost — Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code… zserge/jsmn — jsmn is a lightweight JSON parser library written in C. It provides zero-copy tokenization and incremental parsing… fasterxml/jackson — Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into…