// the take
EventBus is a lightweight publish/subscribe library for Android and Java that lets Activities, Fragments, Services, and background threads talk to each other without implementing listener interfaces by hand. It's aimed at Android developers maintaining established apps that already use this pattern, not new projects starting from scratch.
Thread-mode annotations (POSTING, MAIN, BACKGROUND, ASYNC) let a subscriber declare which thread it wants to run on, replacing manual Handler/AsyncTask juggling. The annotation processor generates a subscriber index at compile time, which kills the runtime reflection lookup that caused real R8/ProGuard stripping bugs in earlier versions. The jar is tiny (~60k) and the core API surface (register/unregister/post) is small enough to read in one sitting.
Last push was February 2024 and the version is still 3.3.1 - this is a finished, maintenance-mode library with no movement toward coroutines or Flow, which is where Android communication patterns have gone. EventBus.getDefault() is a static global, so overuse hides who's actually producing and consuming an event, making call graphs and unit tests harder to reason about than an explicit LiveData/Flow/DI approach. There's no backpressure on ASYNC or BACKGROUND delivery, so a producer that posts faster than subscribers can drain will quietly pile up work on the executor. Forgetting to unregister in onStop/onDestroy is a classic leak source and the library can't protect you from it.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →