awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
square avatar

square/ottoArchived

0
View on GitHub↗
5,122 stars·829 forks·Java·Apache-2.0·14 viewssquare.github.io/otto↗

Otto

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 callbacks to specific threads. It utilizes type-based subscriber mapping to organize listeners according to the class of the events they receive.

Features

  • Event Bus Systems - Provides an event bus system for decoupled communication between components in Android applications.
  • Android Thread Management - Manages the routing of event callbacks to specific threads within the Android runtime to maintain UI stability.
  • Callback - Restricts event callbacks to a specific thread to prevent race conditions and ensure thread safety.
  • Event - Routes event delivery to a specific execution context to ensure listeners run on a designated thread.
  • Component Decoupling Patterns - Implements decoupling patterns to facilitate communication between application components without direct dependencies.
  • Event-Based Communication - Implements the architectural pattern of event-based communication to decouple application components.
  • Event Propagation Patterns - Follows architectural patterns for pushing state changes synchronously through an event log to downstream listeners.
  • Event Subscribers - Groups event listeners into subscribers based on the class of events they are registered to receive.
  • Event Type Subscriptions - Allows class instances to register interest in specific event types and receive matching events through method execution.
  • Synchronous Event Dispatchers - Executes event handlers within the caller's thread to ensure all listeners respond before execution continues.
  • Android Component Architectures - Provides an architectural structure for decoupling Android components using an event-driven communication bus.
  • Guava Event Bus Implementations - Implements an event bus based on Guava to decouple application components via event routing.
  • State-Aware Event Buses - Implements a state-aware event bus that provides the most recent known value to subscribers upon registration.
  • Initial Value Emission - Immediately dispatches the current state value upon the creation of a new event subscription.
  • Reflective Event Dispatchers - Uses Java reflection to identify and execute methods annotated as subscribers when events are published.
  • Subscription State Synchronization - Provides initial values to new subscribers to ensure they have the latest state immediately upon registration.
  • Initial State Injections - Provides the most recent known value to new subscribers immediately upon registration to synchronize application state.
  • Event Bus - Provides an enhanced, Guava-based event bus for Android.

Star history

Star history chart for square/ottoStar history chart for square/otto

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

Open-source alternatives to Otto

Similar open-source projects, ranked by how many features they share with Otto.
  • greenrobot/eventbusgreenrobot avatar

    greenrobot/EventBus

    24,760View on GitHub↗

    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

    Java
    View on GitHub↗24,760
  • doctrine/commondoctrine avatar

    doctrine/common

    5,807View on GitHub↗

    Doctrine Common is a set of shared libraries that provide foundational capabilities for parsing PHP docblock annotations, managing event-driven communication, and handling typed object collections. At its core, it includes a docblock annotation parser that reads structured metadata from PHP docblock comments, enabling configuration for object-relational mapping and validation rules. It also offers a typed collection abstraction with lazy-loading support, allowing efficient management of object groups through array-like operations. The library extends these capabilities with an event managemen

    PHP
    View on GitHub↗5,807
  • geniusvjr/learningnotesGeniusVJR avatar

    GeniusVJR/LearningNotes

    13,145View on GitHub↗

    LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system architecture, and mobile performance optimization. It serves as a reference for analyzing the Android boot sequence, process bootstrapping, and system service initialization. The project provides detailed guides on mobile performance, including strategies for reducing memory footprints, identifying memory leaks, and optimizing image decoding. It further covers Android inter-process communication using AIDL and the Binder kernel driver, as well as software architecture manuals

    View on GitHub↗13,145
  • mroderick/pubsubjsmroderick avatar

    mroderick/PubSubJS

    4,862View on GitHub↗

    PubSubJS is a lightweight JavaScript library that implements the publish-subscribe pattern to manage decoupled communication between different parts of an application. It functions as a dependency-free message broker and event bus, allowing components to exchange data without requiring direct dependencies. The system enables the orchestration of events through named topics, allowing developers to register subscriber callbacks and broadcast messages to all interested listeners. It specifically supports the decoupling of component communication and the notification of state changes across multi

    JavaScript
    View on GitHub↗4,862
See all 30 alternatives to Otto→

Frequently asked questions

What does square/otto do?

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.

What are the main features of square/otto?

The main features of square/otto are: Event Bus Systems, Android Thread Management, Callback, Event, Component Decoupling Patterns, Event-Based Communication, Event Propagation Patterns, Event Subscribers.

What are some open-source alternatives to square/otto?

Open-source alternatives to square/otto include: greenrobot/eventbus — EventBus is a publish-subscribe messaging library designed to facilitate decoupled communication between components in… doctrine/common — Doctrine Common is a set of shared libraries that provide foundational capabilities for parsing PHP docblock… geniusvjr/learningnotes — LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system… mroderick/pubsubjs — PubSubJS is a lightweight JavaScript library that implements the publish-subscribe pattern to manage decoupled… anthropics/financial-services — This project is an LLM financial agent framework and multi-agent orchestration system designed to execute complex… alibaba/beehive — BeeHive is a modular architecture framework for iOS applications. It provides a dependency injection container, an…