MQ4CPP is open-source software that provides an enterprise messaging system.
With MQ4CPP, you can build clusterized services that consist of multiple server instances working together to provide increased scalability and reliability. Each server instance contains a session repository of properties that can be replicated on multiple server instances to protect service state. Additionally, MQ4CPP supports session replication and service failover on heterogeneous platforms, ensuring that your application continues to process requests even if a server instance fails.
MQ4CPP implements several messaging paradigms, including direct/indirect messaging (local), unsolicited messaging (remote), request/reply (remote), reliable messaging (send/ack), automatic reconnection, conversation (remote), broadcast (local), publish/subscribe (local/remote), and store&forward (remote). The software also includes several services, such as advanced tracing for multi-threading debugging, output on stdout, Microsoft DDK WinDbg debugger, thread safe garbage collector, performant implementation of LinkedList and Vector patterns, timer (single shot, self-repeating), thread safe logger, deferred queuing to avoid thread locks or infinite looping, and a lookup service for local and remote threads referenced by handle.
MQ4CPP also supports socket transmission with statistical multiplexing, ensuring the reuse of the same connections while limiting packets to 65 Kbytes to avoid buffer overflows. Packets are associated with a sequence number and are automatically cleaned up to ensure network connections remain in good health. Session management is also included, with a session repository of properties that can be replicated between multiple server instances.
Additionally, MQ4CPP offers message encryption using Rijndael 128 and Rijndael 256, allowing for more complex messages like XML but in binary format. As an implementation of the request/reply paradigm, MQ4CPP includes a distributed lock manager to allow multiple threads to share any resources, file transfer to transfer files between threads, and memory channels to transfer big amounts of memory such as a cache between threads.
The latest version of MQ4CPP improves message switching and fixes some bugs, making it an even more reliable and efficient messaging system. Overall, if you're looking for a powerful, flexible, and reliable messaging system for your C++ application, then you should definitely check out MQ4CPP.
Version 1.15: N/A