For dispatch patterns, the strongest matches are greenrobot/eventbus (This Java library implements publish-subscribe messaging and event routing), symfony/event-dispatcher (Symfony Event Dispatcher implements the core event-driven observer pattern) and hangfireio/hangfire (Hangfire is a). primus/eventemitter3 and developit/mitt round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked event dispatcher repositories for modern applications. Compare top open-source dispatch patterns, star counts, and find the best fit.
EventBus is a publish-subscribe messaging library designed to facilitate decoupled communication between components in Java applications. It functions as a central hub where producers dispatch events that are routed to subscribers based on the class type of the payload. By using annotation-based markers, the system maps event handlers to specific data types, allowing different parts of an application to exchange information without requiring direct references between classes. The library distinguishes itself through a focus on performance and execution control. It utilizes a compile-time inde
This Java library implements publish-subscribe messaging and event routing with type-safe dispatch and asynchronous execution support, fulfilling most of the requested patterns despite lacking a built-in task scheduler.
Symfony Event Dispatcher is a library that implements the observer pattern, enabling event-driven communication between application components. It provides a central dispatch mechanism where components can broadcast named events and register listeners to react to them, decoupling event producers from consumers. The library supports any PHP callable as an event listener and organizes listeners in a priority-ordered queue for controlled execution. Listeners can stop event propagation to prevent subsequent handlers from running, and the subscriber-based registration system allows grouping multip
Symfony Event Dispatcher implements the core event-driven observer pattern with priority queues and propagation halting, though it focuses strictly on event dispatching rather than message routing or task scheduling.
Hangfire is a background job scheduler and distributed task queue for .NET applications. It serves as a job orchestration framework that offloads heavy processing to background workers using a SQL-backed processor to manage job state across multiple servers. The framework distinguishes itself through reliable task scheduling, where job metadata and arguments are persisted in an external database to ensure tasks survive application restarts. It supports advanced orchestration patterns, including the ability to chain dependent tasks so that a child job triggers automatically upon the successful
Hangfire is a .NET background job scheduler and distributed task queue that handles asynchronous task processing and scheduled execution, though it focuses primarily on job queues rather than general-purpose event dispatching or message routing.
EventEmitter3 is a high-performance JavaScript event emitter and publish-subscribe library. It implements the observer pattern to enable decoupled communication between application components through the registration and emission of custom events. The library functions as a context-aware event dispatcher, allowing specific execution contexts to be bound to listeners. This removes the need for manual function binding during event dispatching. The project covers core event management capabilities, including listener registration and a synchronous execution loop for event delivery. It utilizes
This is a high-performance event emitter library that implements the observer pattern for decoupled component communication, covering the event dispatcher requirement despite lacking built-in message routing, task scheduling, or asynchronous processing.
Mitt is a lightweight event emitter and publish-subscribe messaging library designed for managing communication between decoupled components. It provides a minimal utility for registering, dispatching, and removing event listeners within browser and Node.js environments. The library distinguishes itself through a functional interface that maintains a small memory footprint by using function references for listener management. It supports wildcard pattern matching, allowing a single handler to respond to all emitted events, and executes callbacks synchronously to ensure predictable state updat
Mitt is a lightweight event dispatching and publish-subscribe library that handles component communication via an event emitter, though it lacks the task scheduling and middleware pipeline features requested.
RxJava is a reactive stream processing framework and JVM reactive extensions library. It serves as an asynchronous dataflow orchestrator used to compose event-based programs by transforming, combining, and consuming real-time data flows on the Java Virtual Machine. The project distinguishes itself through integrated backpressure flow control, which manages the emission rate between producers and consumers to prevent memory exhaustion. It further provides mechanisms for concurrent thread management and parallel data processing to offload blocking operations and maintain application responsiven
RxJava is a powerful reactive streaming and asynchronous dataflow library that handles event-based programming and task orchestration, though it focuses on functional data streams rather than traditional message routing.
Event package for your app and domain
This PHP event package implements basic event dispatching for your application, though it lacks integrated message routing and task scheduling features.
Message-io is an event-driven networking library written in Rust that provides a unified message-based API for building applications across multiple transport protocols. It allows developers to handle communication over TCP streams, UDP datagrams, and WebSocket connections through a single interface, while managing underlying network connections, message transport, and low-level socket asynchrony. The library utilizes a single-threaded event loop architecture to process incoming connections, disconnections, network messages, and internal signals on a dedicated thread, eliminating traditional
This is an event-driven networking library that handles message routing and asynchronous processing using an actor-like model, though it lacks a general-purpose task scheduler or built-in middleware pipeline.
Otto is an event-driven communication system designed as an event bus for Android applications. It provides a mechanism to decouple application components by routing events between them without requiring direct dependencies. The system is state-aware, meaning it can provide the most recent known value to new subscribers immediately upon registration. It operates as a synchronous event dispatcher, ensuring all registered listeners respond to an object before execution continues. The library includes capabilities for event subscription management and thread execution enforcement to restrict ca
Otto is a Java event bus library for Android that decouples components through event routing, though it is synchronous and tailored specifically for mobile app architectures rather than general asynchronous task scheduling.
A Mediator and Observer pattern event library
This Crystal library implements the Mediator and Observer patterns to serve as an event dispatcher, matching the required pattern even though it lacks asynchronous processing and other advanced features.
This project provides a standardized set of interfaces for event-driven communication within PHP applications. It serves as an implementation of the PSR-14 specification, establishing a common contract that allows independent software components to interact without requiring direct knowledge of each other's internal implementations. The framework facilitates the decoupling of core business logic from secondary tasks by enabling components to trigger and respond to events. It utilizes an observer pattern to notify registered listeners of state changes, routing these events to specific callback
This project provides standardized interfaces for event-driven communication in PHP based on the PSR-14 specification, serving as the core event dispatcher library the search asks for though it focuses purely on interfaces rather than a full task scheduling suite.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| greenrobot/eventbus | 24.8K | Java | apache-2.0 | |
| symfony/event-dispatcher | 8.5K | PHP | MIT | |
| hangfireio/hangfire | 10K | C# | other | |
| primus/eventemitter3 | 3.5K | JavaScript | mit | |
| developit/mitt | 11.9K | TypeScript | MIT | |
| reactivex/rxjava | 48.2K | Java | Apache-2.0 | |
| thephpleague/event | 1.6K | PHP | MIT | |
| lemunozm/message-io | 1.2K | Rust | Apache-2.0 | |
| square/otto | 5.1K | Java | Apache-2.0 | |
| athena-framework/event-dispatcher | 15 | Crystal | MIT |