awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
greenrobot avatar

greenrobot/EventBus

0
View on GitHub↗
24,760 stars·4,656 forks·Java·apache-2.0·8 viewsgreenrobot.org/eventbus↗

EventBus

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 indexing mechanism that generates static lookup tables, replacing slow runtime reflection with direct method calls to accelerate message routing. Furthermore, it provides a thread-aware dispatcher that allows developers to configure whether event handlers execute on the main interface thread, in background pools, or synchronously within the posting thread.

Beyond basic routing, the system supports advanced messaging patterns including priority-ordered delivery and sticky events. Sticky events maintain a memory-based cache of recent data, ensuring that late-registering subscribers automatically receive the most current state upon initialization. The library also offers granular control over the event lifecycle, enabling developers to cancel event propagation or manage custom thread pools and error handling strategies to maintain application responsiveness.

Features

  • Event Bus Systems - Uses method markers to identify and map event handler functions to specific event types during the registration process.
  • Message Buses - A central communication channel that decouples event producers from consumers to facilitate asynchronous data exchange across different application components.
  • Event Messaging Systems - Sorts subscribers by assigned weight values to ensure that event delivery follows a specific sequence across the messaging system.
  • Message Bus Systems - Enabling different parts of an application to exchange information without requiring direct references or tight coupling between classes.
  • Asynchronous Event Dispatchers - The Event Bus library supports executing event handlers in a separate thread from a managed pool to handle long-running tasks without blocking the application.
  • Compile-Time Optimization Tools - Generates a static lookup table during the build process to replace slow runtime reflection with direct method calls.
  • Event Bus Management - The Event Bus library enables manual retrieval or removal of stored events to control their lifecycle and prevent delivery to new subscribers after processing.
  • Event Dispatchers - A message routing engine that manages execution context by directing event delivery to specific threads based on subscriber configuration.
  • Event Dispatching Systems - Provides mechanisms to enqueue and deliver events on the main thread for ordered execution.
  • Event-Driven Architectures - Building modular systems where components react to specific occurrences or data changes triggered by other parts of the application.
  • Type-Safe Routing Systems - Matches dispatched data objects to registered subscribers by comparing the class type of the payload against the handler signature.
  • Advanced Development Frameworks - Optimized event bus for component communication.
  • Android Libraries - Event-based communication library for Android components.
  • Event Bus - Simplifies communication between app components using an event-based model.
  • Messaging - Simple publish/subscribe event bus.
  • ProGuard Configurations - Provides event-driven communication configuration rules.
  • Concurrency Management Utilities - Routes event delivery to specific execution contexts like background pools or the main thread based on subscriber configuration.
  • Event State Persistence - The Event Bus library supports storing events in memory so that new subscribers receive the most recent state update automatically upon registration.
  • Build-Time Optimizers - Replaces runtime reflection with generated lookup tables to accelerate subscriber registration and message delivery.
  • Asynchronous Task Orchestration - Managing background operations and thread switching to keep the user interface responsive while performing heavy data processing tasks.
  • Event Bus Priority Systems - The Event Bus library supports assigning priority values to subscribers during registration to control the specific order in which handlers receive and process dispatched events.
  • Message Routing Engines - Improving application speed by using pre-compiled indexing to handle event delivery efficiently without relying on slow runtime reflection.
  • Event Stores - A memory-based persistence mechanism that caches recent events to ensure late-joining subscribers receive the latest state updates upon registration.
  • In-Memory Event Caches - Maintains a cache of the most recent events in memory to immediately deliver state updates to late-registering subscribers.
  • Asynchronous Task Orchestrators - The Event Bus library allows configuring custom thread pools, event buses, and error handling scopes to manage background task execution and failure recovery within application logic.
  • Background Thread Dispatchers - The Event Bus library enables executing event handlers in a background thread to ensure heavy processing tasks do not interfere with main application interface responsiveness.
  • State Synchronization Utilities - Ensuring that new components receive the most recent application data immediately upon registration to maintain consistent state across views.
  • Main Thread Dispatchers - The Event Bus library supports executing event handlers on the main interface thread to ensure visual updates occur safely without blocking the application.

Star history

Star history chart for greenrobot/eventbusStar history chart for greenrobot/eventbus

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does greenrobot/eventbus do?

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.

What are the main features of greenrobot/eventbus?

The main features of greenrobot/eventbus are: Event Bus Systems, Message Buses, Event Messaging Systems, Message Bus Systems, Asynchronous Event Dispatchers, Compile-Time Optimization Tools, Event Bus Management, Event Dispatchers.

What are some open-source alternatives to greenrobot/eventbus?

Open-source alternatives to greenrobot/eventbus include: reactivex/rxjava — RxJava is a reactive stream processing framework and JVM reactive extensions library. It serves as an asynchronous… relatedcode/messenger — Messenger is an asynchronous messaging system and event-driven communication layer designed to exchange events between… killbill/killbill — Kill Bill is a subscription billing platform and usage-based billing engine designed to manage recurring invoicing and… square/otto — Otto is an event-driven communication system designed as an event bus for Android applications. It provides a… derekyrc/mini-spring — mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle… doctrine/event-manager — Doctrine Event Manager is a PHP library that implements a publish-subscribe pattern for decoupled application…

Open-source alternatives to EventBus

Similar open-source projects, ranked by how many features they share with EventBus.
  • reactivex/rxjavaReactiveX avatar

    ReactiveX/RxJava

    48,237View on GitHub↗

    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

    Javaflowjavareactive-streams
    View on GitHub↗48,237
  • relatedcode/messengerrelatedcode avatar

    relatedcode/Messenger

    4,784View on GitHub↗

    Messenger is an asynchronous messaging system and event-driven communication layer designed to exchange events between decoupled components. It functions as an inter-process communication tool that removes direct dependencies between services by routing messages through a middleware layer. The system implements a pub-sub messaging model where components subscribe to specific event types and receive notifications when those events are triggered. It utilizes a central dispatcher to route asynchronous events from producers to registered subscribers. The project provides capabilities for distrib

    View on GitHub↗4,784
  • killbill/killbillkillbill avatar

    killbill/killbill

    5,343View on GitHub↗

    Kill Bill is a subscription billing platform and usage-based billing engine designed to manage recurring invoicing and automated payment collection. It functions as a multi-tenant billing infrastructure, providing isolated environments for different organizational entities through a dedicated API. The system is distinguished by a plugin-based extension framework that allows for the integration of third-party payment gateways and custom business logic. It includes a payment gateway orchestrator to handle transactions and refunds, as well as a revenue recognition system to allocate contract rev

    Javabillingkillbillpayments
    View on GitHub↗5,343
  • square/ottosquare avatar

    square/otto

    5,122View on GitHub↗

    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

    Java
    View on GitHub↗5,122
See all 30 alternatives to EventBus→