A Go language binding for ZeroMQ version 4, providing network communication patterns for distributed systems.
zmq4 is a Go interface to ZeroMQ version 4, providing idiomatic Go bindings for the native ZeroMQ C library. It enables Go applications to leverage ZeroMQ's high-performance asynchronous messaging capabilities for building distributed systems using patterns like publish-subscribe, request-reply, and pipeline.
Go developers building distributed systems or networked applications that require high-performance asynchronous messaging, such as microservices, real-time data pipelines, or communication between heterogeneous system components.
Developers choose zmq4 for its minimal, idiomatic Go wrapper that prioritizes compatibility and performance while maintaining familiar ZeroMQ API patterns, along with comprehensive examples from the official ØMQ Guide for practical reference.
A Go interface to ZeroMQ version 4
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides comprehensive bindings for ZeroMQ 4.0.1+, including security features like CURVE, ensuring compatibility with standard ZeroMQ deployments and patterns like pub-sub.
Offers a minimal, idiomatic Go interface that maintains familiar ZeroMQ API patterns, making it easier for Go developers to integrate distributed messaging without learning a new abstraction.
Includes all examples from the official ØMQ Guide, providing practical reference for implementing various messaging patterns like request-reply and pipeline in Go.
Works on Unix-like systems and Windows with proper CGO configuration, as detailed in the README with specific environment variable setups for Windows deployment.
Requires ZeroMQ and CGO, making installation and cross-compilation impossible, with Windows setup needing manual environment variable configuration and DLL deployment.
Support for ZeroMQ 4.2 DRAFT APIs is only available through an alternate import path and is subject to change, indicating instability and limited feature coverage for cutting-edge use cases.
On Unix-like systems with Go 1.14+, there are known interrupted signal calls that require fixes per package documentation, adding runtime complexity and potential debugging overhead.