30 open-source projects similar to protobuf-c/protobuf-c, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
C library/compiler for the Cap'n Proto serialization/RPC protocol
MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.orgC
EasyLogger is a lightweight C/C++ logging library and asynchronous framework designed for embedded systems, IoT devices, and wearables. It functions as a resource-efficient logger and flash memory manager, providing tools for low-level debugging and system event recording with minimal ROM and RAM requirements. The project distinguishes itself through an asynchronous logging model that buffers messages to a separate thread, preventing logging operations from blocking real-time application execution. It includes a specialized flash memory manager that utilizes circular buffering to persist logs
Simple .INI file parser in C, good for embedded systems
Unity is a lightweight unit testing framework for C, providing the assertion library, test runner, and reporting mechanisms required to verify code correctness. It functions as core testing infrastructure for organizing and executing unit tests in C environments. The framework is designed for system-level and embedded software validation, with specific capabilities for verifying firmware and hardware drivers. It focuses on memory integrity and pointer validity, allowing for the validation of pointer states and the inspection of raw memory blocks. The toolset covers a broad range of compariso
An implementation of the MessagePack serialization format in C / msgpack.orgC
For information about how to use the cmockery unit testing framework see doc/index.html.
//: # ( ==== Logo ================================================== )
FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation. The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structu
Mosquitto is an MQTT message broker and IoT messaging server designed to route data between publishers and subscribers. It functions as a centralized network hub that enables lightweight communication between distributed sensors, controllers, and other internet-of-things devices. The project includes an MQTT bridging gateway used to link separate brokers, allowing traffic to be routed and synchronized across different network locations or security zones. It also provides a client implementation for connecting to and interacting with the broker. The system manages topic-based message routing
FFmpeg is a cross-platform multimedia framework designed for the recording, conversion, and streaming of audio and video content. It functions as a comprehensive toolkit that provides both a command-line utility for direct media manipulation and a collection of low-level libraries for integration into custom applications. At its core, the project utilizes a packet-based stream engine and a format-agnostic abstraction layer to handle diverse media standards, containers, and network protocols. The framework distinguishes itself through a modular, graph-based filter execution model that allows f
On the fly syntax checking for GNU Emacs
Parser combinators for binary formats, in C. Yes, in C. What? Don't look at me like that.
ToolKit是一套应用于嵌入式系统的通用工具包,可灵活应用到有无RTOS的程序中,采用C语言面向对象的思路实现各个功能,尽可能最大化的复用代码,目前为止工具包包含:循环队列、软件定时器、事件集。
sds is a C dynamic string library that provides a memory management wrapper for heap-allocated strings. It implements binary-safe storage by tracking string lengths explicitly, allowing the library to handle null characters within data. The library distinguishes itself through a memory architecture that uses interchangeable function pointers for allocation and freeing, enabling the integration of custom memory managers. It utilizes header-stored length tracking to provide constant-time length retrieval and maintains null-terminated buffer padding to ensure compatibility with standard C string
clib is a C language package manager and dependency manager used to install, update, and manage external C libraries and executable dependencies from remote repositories. It functions as a distribution tool for structuring source code and metadata to publish C libraries and a development toolkit for maintaining consistent build environments. The project provides a framework for C library distribution and dependency resolution, utilizing manifest files to track required library versions and ensure reproducible builds across different systems. It streamlines the C development workflow by managi
MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。
Have a look at open issues, they contain the list of algorithms/DS we plan to be implemented. You can also create a new issue for an algorithm that is not in the list. Fork the repository. Clone the repo. to your local system. Add the algorithms/codes that you want to contribute (and properly…
Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB
Mbed TLS is an open-source TLS and DTLS library with a small footprint, designed for embedded systems and IoT devices. It provides a portable cryptographic library that includes symmetric ciphers, hashing, and public-key cryptography, along with a reference implementation of the PSA Cryptography API for standardized cryptographic operations across platforms. The library also offers X.509 certificate management for parsing, validating, and managing certificate chains in secure communications. The library is built around a platform abstraction layer that decouples it from OS-specific services t
This directory contains the sources of the libcstl Library. See the file "VERSION" for what release version you have. libcstl is the use of C language, a common data structure and used algorithms library, which mimic the interface and the SGI STL to achieve.
SFUD 是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所带来的风险。