Sockets with super-powers
ZeroMQ is a powerful communications library, making robust networking simple (retry logic, socket patterns, multiple bind/connect per socket, etc.)
Go is a powerful programming language, and having go libraries written is pure Go makes it super easy to cross compile for other platforms and operating systems.
Go also provides a powerful asynchronous networking library which is built seamlessly into the language (all in the net
package.)
This would make a ZMQ implementation in pure Go a powerful library.
- It's fun
- Highly modularized. Implementing new socket types, transports, mechanisms, etc. is super simple. In fact, they need not be implemented in this repository as the code follows a dependency injection structure.
- Support for CurveZMQ which is not found in any other Go implementation (to my searching.)
- Tiny. This implementation does not aim to follow the same code structure as the core C++ ZMQ implementation but rather attempts to achieve a similar feature set.