Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Java
  3. EventBus

EventBus

Apache-2.0JavaV3.3.1

A publish/subscribe event bus for Android and Java that simplifies communication between components like Activities, Fragments, and threads.

Visit WebsiteGitHubGitHub
24.7k stars4.6k forks0 contributors

What is EventBus?

EventBus is a publish/subscribe event bus library for Android and Java applications. It simplifies communication between different components like Activities, Fragments, Threads, and Services by decoupling senders and receivers, reducing boilerplate code and lifecycle-related errors.

Target Audience

Android and Java developers building applications that require efficient, decoupled communication between various components, especially in complex UI and background task scenarios.

Value Proposition

Developers choose EventBus for its simplicity, performance, and reliability—it replaces cumbersome callback patterns with a clean event-driven architecture, has a minimal footprint, and is proven in large-scale applications.

Overview

Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

Use Cases

Best For

  • Decoupling Activities and Fragments in Android apps
  • Handling communication between background threads and the UI thread
  • Simplifying event-driven architectures in Java applications
  • Reducing boilerplate code for component interactions
  • Managing complex lifecycle dependencies in Android
  • Implementing clean, maintainable publish/subscribe patterns

Not Ideal For

  • Projects requiring strict compile-time type safety for event handling
  • Distributed systems or microservices needing cross-process event communication
  • Kotlin-centric applications that prefer coroutines and Flow for reactive streams
  • Large codebases where event traceability and debugging are critical

Pros & Cons

Pros

Decoupled Communication

Separates event senders from receivers, reducing complex dependencies and lifecycle issues in Android components like Activities and Fragments, as highlighted in the README.

Thread Mode Support

Allows specifying delivery threads via annotations, such as MAIN thread, ensuring safe UI updates from background operations, with documentation on thread modes.

High Performance

Optimized for speed with a minimal footprint (~60k jar), providing efficient event delivery with low overhead, as noted in the features.

Proven Scalability

Used in apps with over 1 billion installs, demonstrating reliability in large-scale production environments, a key selling point in the README.

Cons

Runtime Type Safety

Relies on runtime type checking for events, which can lead to ClassCastException if event types are mismatched, unlike compile-time enforced solutions, a limitation inherent in its design.

Reflection Overhead

Without the optional annotation processor, it uses reflection for subscriber discovery, potentially causing performance issues and problems with code obfuscation, as the README warns.

In-Process Limitation

Designed only for in-process communication, making it unsuitable for distributed architectures that require event streaming across processes, a gap compared to more advanced event systems.

Frequently Asked Questions

Quick Stats

Stars24,710
Forks4,638
Contributors0
Open Issues102
Last commit2 years ago
CreatedSince 2012

Tags

#threading#publish-subscribe#android#event-bus#lightweight#java#communication#decoupling#mobile-development

Built With

J
Java

Links & Resources

Website

Included in

Java47.5k
Auto-fetched 6 hours ago

Related Projects

AutoMQAutoMQ

Diskless Kafka® on S3. 10x Cost-Effective. No Cross-AZ Traffic Cost. Autoscale in seconds. Single-digit ms latency. Multi-AZ Availability.

Stars10,651
Forks769
Last commit1 day ago
AeronAeron

Efficient reliable UDP unicast, UDP multicast, and IPC message transport

Stars8,846
Forks1,089
Last commit18 hours ago
JeroMQJeroMQ

JeroMQ is a pure Java implementation of the ZeroMQ messaging library, offering high-performance asynchronous messaging for distributed or concurrent applications.

Stars2,451
Forks487
Last commit9 months ago
SmackSmack

A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Stars2,415
Forks882
Last commit15 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub