30 open-source projects similar to square/otto, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
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
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
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
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
This project is an LLM financial agent framework and multi-agent orchestration system designed to execute complex investment banking and wealth management workflows. It provides a financial data integration layer using a standardized context protocol to connect autonomous agents to real-time market data and third-party feeds. The system utilizes a multi-agent architecture that coordinates specialized worker agents through a steering event bus to handle task delegation and secure handoffs. It includes an enterprise AI deployment manifest for provisioning agent personas, prompts, and skill sets
Home Assistant is a local home automation platform and server that acts as an IoT device orchestrator. It integrates diverse smart home hardware by wrapping third-party APIs into a standardized logic layer and stores all system state and historical statistics on local hardware to eliminate cloud dependencies. The system functions as a Matter IoT controller and an MQTT home automation bridge, allowing for local interoperability between different manufacturers. It features a state-based entity model and an internal event bus that decouple physical device logic from system automation. The platf
RuneLite is an open-source game client for OldSchool RuneScape. It serves as a community-driven alternative to the official software, functioning as a modified client that allows for deep customization and feature extension. The project provides a programmable game plugin system that enables the development and injection of custom tools directly into the running game environment. This framework allows for the creation of interface enhancements and the integration of custom logic to modify client behavior. The system also includes a game cache data manager for reading and manipulating local a
Prism is a XAML application framework and MVVM architectural framework designed to build loosely coupled and testable applications across WPF, Xamarin Forms, and WinUI. It serves as a structural pattern implementation that separates business logic from the user interface to improve maintainability and testing. The framework provides a XAML event bus for exchanging data and triggering actions between independent components without direct coupling. It also functions as a dependency injection integrator, bridging external inversion-of-control containers to manage service delivery across multiple
BeeHive is a modular architecture framework for iOS applications. It provides a dependency injection container, an event bus middleware, a module lifecycle manager, and a service locator to organize an application into independent functional modules. The framework distinguishes itself by utilizing asynchronous module loading to reduce application startup time and prevent main thread blocking. It employs macro-driven automatic module registration to decouple instantiation from application logic and uses protocol-based service mapping to resolve dependencies without requiring direct imports. T
This repository is a collection of practical implementation patterns and reference samples for using RxJava 2 to manage asynchronous data streams in Android applications. It serves as a reactive programming implementation guide, providing code examples for handling complex event-driven logic and asynchronous patterns within mobile environments. The project distinguishes itself by providing specific reference implementations for common mobile challenges, such as real-time search with debouncing, on-demand list pagination for infinite scrolling, and cache-first data streaming to reduce perceive
Square-ui is a component-based UI library and admin dashboard framework designed for building data-dense management interfaces. It provides a toolkit of reusable UI primitives and data visualization elements, such as kanban boards, heatmaps, and financial charts, to assemble internal tools and operational dashboards. The framework is distinguished by an event-driven UI architecture that utilizes a centralized event bus to synchronize real-time operational data across decoupled functional domains. It employs a constraint-based responsive grid system to organize widgets and manage data density
ARouter is a framework for Android applications designed to decompose monolithic apps into smaller, independent modules. It provides a URL-based routing system that enables navigation between decoupled components and modules without requiring direct class dependencies. The framework includes a navigation interceptor to handle authentication, redirection, and custom activity animations during page transitions. It also features a service injector that manages dependencies across modules using an inversion of control pattern and interface-based injection. The toolset covers inter-module navigat
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
Bond is a Swift data binding framework designed to synchronize data models and user interface elements through one-way and two-way value flows. It functions as a reactive suite for monitoring collection changes, transforming data streams, and bridging user interface events to data models. The project provides a reactive bridge that transforms user interface interactions and protocol delegate method calls into observable signals. It includes a collection observer to monitor changes in arrays and a functional data stream processor that applies operators to modify or combine values before they r
Bolts-Android is a mobile development library for Android that provides a framework for deep-linking and a system for managing asynchronous tasks. It functions as a toolkit for parsing inbound intents, resolving URL metadata, and routing users to specific native content within an application. The library includes a task manager for coordinating parallel background operations and handling thread-safe execution. This system uses chainable tasks, cancellation tokens to stop active processes, and routing to ensure results return to the main user interface thread. The framework also covers deep-l
Anko is an Android Kotlin library designed to simplify application development through a set of domain-specific languages and extensions. It functions as a programmatic UI DSL, an SQLite wrapper, an SDK utility, and an asynchronous framework. The project provides a declarative layout system that allows developers to build user interfaces through code instead of static XML markup. It distinguishes itself by offering a fluent database layer that eliminates manual cursor management and a concurrency system that uses weak references to prevent memory leaks in activities. The library covers broad
CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web applications. It provides a lightweight toolkit with minimal configuration, organizing application logic into controllers, models, and views for clean separation of concerns. The framework includes a fluent query builder for constructing SQL statements programmatically, PSR-4 autoloading with namespace mapping, and a service-based dependency injection container for managing shared class instances. The framework distinguishes itself through its comprehensive set of built-in tools
RxAndroid is a reactive programming library and binding layer that integrates RxJava with the Android runtime environment. It provides a framework for composing asynchronous data streams and managing event-driven workflows specifically tailored for Android's threading requirements. The library functions as an Android thread scheduler, routing reactive operations to the main UI thread or specific Android loopers. This ensures that asynchronous task outcomes are dispatched to the primary interface thread for safe updates of visual components while preventing background processing from blocking
CloudEvents is an open specification for describing event data in a common format across cloud platforms and services. It defines a standard structure and set of metadata attributes for events, enabling interoperability across different systems so producers and consumers can exchange events without custom translation. The specification provides a protocol-agnostic serialization framework that maps CloudEvents attributes and payloads to multiple serialization formats including JSON, Avro, and Protobuf, and defines transport bindings for mapping events onto protocols like HTTP, AMQP, Kafka, MQTT
Choo is a minimalist frontend framework providing a tiny foundation for building web applications. It functions as an event-driven application core that decouples business logic from rendering and includes a client-side router to manage browser history and URL mapping without page reloads. The project distinguishes itself through an architecture that combines a server-side rendering engine for generating static HTML strings with a stateful UI component library. This allows for the creation of self-contained interface elements that maintain internal data and persist across global renders. The
AndroidAnnotations is a suite of tools designed to automate the generation of repetitive boilerplate and setup code for mobile application development. It functions as a code generation tool that reduces manual effort by creating the plumbing required to initialize Android components and views. The project provides specialized frameworks for dependency injection, concurrency management, and view binding. It automates the assignment of system services, resources, and UI elements to fields and maps user interface events directly to methods to eliminate the need for anonymous listener classes.
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
Fenix is an open-source mobile web browser for Android that uses Mozilla's GeckoView engine to render web pages with full platform support. It is built as an Android application that provides core browsing capabilities including tab management, bookmarks, and privacy controls, and is developed as a multi-repository project that coordinates the browser UI, reusable Android components, and the rendering engine across separate codebases. The browser's interface is organized as a component-based architecture, where the UI is assembled from a set of reusable Android components that can be develope
bpmn-js is a browser-based BPMN 2.0 web modeler and rendering engine used for creating, editing, and visualizing business process models. It functions as an XML process modeler that parses BPMN 2.0 XML data into interactive visual diagrams within a web application. The project distinguishes itself as a business process visualizer with capabilities for process flow simulation, which tracks token movement to mimic real-time execution. It also supports diagram version comparison to identify changes between model iterations and provides a layered overlay interface for binding metadata and custom
MVPArms is an Android application framework based on the Model-View-Presenter pattern. It provides a foundation for decoupling business logic from user interface components through a structured architectural implementation. The framework features automated boilerplate generation to produce base classes and dependency injection files, reducing manual project setup. It includes a centralized configuration system to manage global application settings and a dependency injection wrapper that bundles networking and image loading libraries. The project covers lifecycle management by binding logic c
AndroidUtilCode is an Android utility library and system API wrapper designed to reduce development boilerplate. It provides a collection of helper classes for common tasks including system settings management, file I/O, and hardware access. The project distinguishes itself through a comprehensive toolset for device management and UI assistance. It includes specialized capabilities for monitoring battery status, managing system volume and brightness, and implementing UI helpers to prevent duplicate click events. It also provides a dedicated system for coordinate conversion between different m
FXGL is a 2D game engine and development framework designed for Java and Kotlin. It provides a structured environment for building cross-platform desktop games, integrating a central game loop with an entity component system and a JavaFX-based scene graph for rendering. The toolkit distinguishes itself by providing a comprehensive suite of integrated libraries for game AI pathfinding, physics collision resolution, and multiplayer networking via TCP and UDP protocols. It includes specialized systems for adaptive user interface design using global stylesheets and a data-driven asset management
Util is a comprehensive development framework for .NET designed to implement layered architectures and domain driven design. It provides a toolkit of base classes and tools for building full stack applications, specifically focusing on the creation of backend admin frameworks and management interfaces. The project distinguishes itself through a boilerplate generator that produces the necessary types and classes to standardize repetitive architectural patterns. It also includes a micro-frontend orchestrator that enables the splitting of large frontend modules into independent projects for sepa
mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components. The project implements a Java AOP framework that uses dynamic proxies to intercept method calls for cross-cutting logic. It also functions as a Java component scanner to automatically discover and register managed objects via annotations and as a Java event bus to decouple components through a publish-subscribe multicast system. The
Vue-Socket.io is a real-time WebSocket client and integration library that connects Vue.js applications to Socket.io servers. It functions as middleware to synchronize a frontend application state with a remote server via bidirectional communication. The project specifically provides a bridge between Socket.io and Vuex, mapping incoming server events directly to state management actions and mutations. This allows server-side updates to trigger automated state changes within the client application. The library covers core real-time communication capabilities, including establishing server con