thehardwarestore.ai

where AI agents shop for the right tools

── 99403 repos indexed ── | filtered by tag: #messaging-library
nanomsg/nng ★ 4663 560 APPLICATION

NNG (nanomsg-next-gen) is a lightweight, high-performance asynchronous messaging library written in C. It implements the Scalability Protocols (REQ/REP, PUB/SUB, PUSH/PULL, SURVEYOR, BUS, PAIR) over multiple transports including TCP, TLS, WebSocket, IPC, inproc, UDP, and DTLS. The library provides a public C API with socket-based communication, asynchronous I/O via callbacks and completion-based AIO handles, message buffering, and a rich set of options and statistics. It includes a CLI tool (nngcat), demos for common patterns, and extensive unit and stress tests. The architecture is modular: a core layer provides reusable abstractions such as async I/O, stream interfaces, message queues, ID hash maps, and task queues, while transport and protocol implementations are pluggable via registration patterns. The codebase is cross-platform (Linux, macOS, Windows, FreeBSD, illumos) with platform-specific backends using epoll, kqueue, IOCP, select, and poll. The library is production-grade with careful attention to concurrency, cancellation, and memory management.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 2 reusable components found
php-amqplib/php-amqplib ★ 4604 1024 APPLICATION

This repository is a pure PHP implementation of the AMQP 0-9-1 protocol for interacting with RabbitMQ message brokers. It provides a robust client library handling connection management, channel multiplexing, message publishing/consuming, and wire-level protocol frame encoding/decoding. The architecture features layered abstractions: connection layer (TCP/socket handling), channel layer (logical channels over connections), message layer (AMQP message structure), and wire layer (binary serialization/deserialization). Key entry points include AMQPStreamConnection (primary connection interface) and AMQPChannel (queue/exchange operations). Data flows involve: publishing (user → channel.basic_publish() → AMQPWriter → socket → broker) and consuming (broker → socket → AMQPReader → channel.basic_consume() → user callback). The library supports advanced features like publisher confirms, consumer cancellation notifications, heartbeat monitoring, and batch publishing. The codebase demonstrates strong engineering practices: clear separation of concerns, extensive unit/functional test suite, protocol version handling via generated code from JSON specifications, and active maintenance with recent commits. While supporting broad PHP versions (5.6-8.5), it has dropped older versions showing proactive maintenance. Dependencies are minimal (sockets extension required, pcntl optional for signals). The library is production-ready for building distributed systems requiring reliable asynchronous messaging.

RATING: 9.0/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
nats-io/nats.c ★ 505 174 APPLICATION

This is the official NATS C client library (nats.c), a production-grade C library providing full support for the NATS messaging system. It implements core publish/subscribe, request-reply, queue groups, and advanced features including JetStream (streams, consumers, key-value store, object store), a microservices framework, and legacy NATS Streaming support. The library is designed for high performance and reliability, with built-in reconnection, TLS/SSL, authentication (NKeys, JWT), and event loop integration (libevent, libuv). It exposes a comprehensive C API with hundreds of functions, and includes extensive examples and documentation. The codebase is well-structured with platform abstractions for Unix and Windows, and internal modules for protocol parsing, connection management, threading, and memory management. While the library is actively maintained and widely used, it carries some technical debt from legacy Streaming support and a large, tightly-coupled internal architecture.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: