libjc is a framework for event-driven development in C. Programs that use it can perform an arbitrary number of operations simultaneously and in the background, and later wait for some or all of them to complete. The source package includes the core library along with a few objects, each of which is able to perform a set of related operations. This framework consumes significantly less memory than standard libraries, and it scales well to multiprocessor systems.
Mbassador is a very lightweight message (event) bus implementation following the publish-subscribe pattern. It is designed for ease of use and aims to be feature rich and extensible while preserving resource efficiency and performance. It offers annotation-driven configuration (and thus imposes no structural dependencies into client code), synchronous and asynchronous message delivery (configurable for each message publication and listener), weak references to registered subscribers (no memory leaks possible), message filtering based on custom filters configured via annotations, clean error handling mechanisms, very high throughput, and strong support of concurrent access.