A C-language AMQP client library for connecting applications to RabbitMQ brokers (v2.0+).
rabbitmq-c is a C-language client library that implements the AMQP protocol for connecting applications to RabbitMQ message brokers. It enables C programs to send and receive messages through RabbitMQ's queuing system, providing a reliable messaging infrastructure for distributed systems.
C developers building applications that need to integrate with RabbitMQ for message queuing, particularly in embedded systems, network services, or performance-critical environments where a low-level C interface is required.
Developers choose rabbitmq-c for its native C implementation, comprehensive AMQP protocol support, and proven stability with RabbitMQ brokers. It offers a lightweight, no-frills client library without the overhead of higher-level language bindings.
RabbitMQ C client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements the full AMQP protocol for RabbitMQ v2.0+, ensuring reliable and standards-compliant messaging as stated in the description.
Optional OpenSSL support enables encrypted connections to RabbitMQ, with ENABLE_SSL_SUPPORT toggled on if dependencies are found.
Uses CMake for building on various systems with GCC, clang, or MSVC, making it adaptable to different environments.
Comes with command-line tools and examples for interacting with AMQP servers, aided by continuous integration and fuzzing tests for robustness.
Provides explicit recommendations for single-threaded, event-driven design, helping avoid common pitfalls in multi-threaded contexts.
Explicitly discourages sharing connections between threads, requiring per-thread connections or custom locking, which complicates multi-threaded applications.
Requires CMake v3.22+ and optional tools like OpenSSL, POpt, and Doxygen for full functionality, increasing setup overhead.
Focuses on low-level protocol implementation, lacking built-in abstractions for common tasks like message serialization or automatic recovery.