30 open-source projects similar to reactivex/rxandroid, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best RxAndroid alternative.
RxBinding is an Android UI binding library that transforms standard view listeners into RxJava observables. It serves as a bridge and reactive wrapper, converting user interactions and widget states into reactive data flows. The project enables the implementation of reactive programming patterns across Android system interactions. By treating UI interactions as data streams, it allows for the asynchronous handling of events to decouple the view layer from business logic. The library covers the conversion of UI events into streams, the management of widget states to trigger application update
This project is a sample library and implementation guide for using RxJava to manage asynchronous data streams and concurrent tasks in Android applications. It provides a collection of reference implementations for reactive programming, focusing on functional operators to transform and combine asynchronous data flows. The library demonstrates specific Android architectural patterns, such as implementing decoupled event buses for component communication and coordinating parallel network requests. It includes concrete examples of mobile-specific patterns including search input debouncing, list
RxLifecycle is a lifecycle management library for RxJava that binds observable streams to Android component lifecycles. It functions as a reactive stream lifecycle wrapper and a memory leak prevention tool by automatically terminating asynchronous sequences when activities or fragments are destroyed. The library integrates RxJava with Android lifecycle states to ensure that resource management is handled automatically. It prevents memory leaks by disconnecting streams and disposing of subscriptions when a component reaches a specific lifecycle state. The project covers the domain of Android
RxPermissions is a reactive permissions library for Android that manages runtime system permissions using RxJava observables. It serves as a wrapper for the Android runtime permission manager, converting asynchronous system requests and their results into a unified reactive stream. The library eliminates the need for fragmented callback methods by using a hidden fragment to intercept permission request results. This allows the request and the resulting outcome to remain within a single logic flow, avoiding boilerplate callbacks in the activity. The system supports requesting multiple permiss
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
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
This project is a cross-platform UI framework and native desktop GUI library. It provides a unified set of instructions to render native windows, forms, and layouts across different operating systems by mapping high-level instructions to the native widgets and controls of the host environment. The toolkit includes a vector graphics engine for rendering custom shapes, gradients, and high-density images using brushes and matrices. It also serves as a native dialog provider for system-level operations such as file path selection and message box alerts. The library covers a broad range of GUI co
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
Partytown is a main thread performance optimizer and web worker script orchestrator. It functions as a third party script offloader that relocates resource-intensive external JavaScript from the browser's main thread into a sandboxed web worker environment. The project focuses on improving core web vitals and overall page responsiveness by reducing main thread blocking time. This isolation ensures that heavy third party scripts do not interfere with the execution of core application code and page loading speed. The system provides infrastructure for client-side script offloading through DOM
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
RxSwift is a reactive programming library for Swift that provides a framework for managing push-based data flows and composing asynchronous, event-based programs. It utilizes observable sequences and functional operators to transform and filter asynchronous sequences through a declarative approach. The library is distinguished by its ability to link asynchronous data streams directly to user interface elements, automating view updates via reactive data binding. It includes specialized tools for tracking UI control properties and events on the main thread, as well as the ability to encapsulate
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
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
Android-Boilerplate is a modular Android project template pre-configured with dependency injection, reactive streams, and testing tools to accelerate mobile application development. The codebase integrates Dagger for managing component dependencies and object lifecycles, and implements RxJava for asynchronous data streams and event-driven application state management. The application architecture incorporates a pre-configured testing suite using Espresso and Mockito for executing both unit and user interface instrumentation tests. Data handling includes local-first database persistence along
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
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
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.
This is a lightweight, header-only C/C++ library used to embed browser engines into native desktop applications. It serves as a desktop GUI framework that allows developers to build native applications using HTML and CSS for the user interface layer. The library provides a unified cross-platform browser component that wraps WebKit on Linux and macOS and WebView2 on Windows. It includes a native code bridge to bind JavaScript functions to C++ logic, enabling high-performance operations and data exchange across language boundaries. The project handles platform-specific browser integration and
Android Volley is a client-side networking framework and HTTP library for Android applications. It functions as an asynchronous request queue manager and REST API client used to coordinate communication between mobile apps and remote servers. The project includes an HTTP cache management system that implements a cache-first retrieval strategy, checking local disk or memory storage for valid responses before initiating network requests. It manages the scheduling and prioritization of multiple network requests to optimize data transfer on mobile devices. The framework handles asynchronous data
Vs-threading is a cross-platform .NET concurrency library and utility set for C# designed to manage multithreaded workflows, coordinate concurrent tasks, and prevent deadlocks. It supplies specialized non-blocking semaphores, events, and locks alongside asynchronous counterparts for lazy initialization, event handlers, and local storage. The library provides awaitable extension methods on tasks to shift execution threads, apply timeouts, and propagate cancellation tokens. It includes mechanisms to stall the main user interface thread synchronously while waiting for background tasks to finish
MBProgressHUD is an Objective-C UI component and progress HUD library for iOS. It provides a screen-blocking activity indicator overlay that informs users of ongoing background processes using customizable icons and status labels. The library manages translucent interface layers to provide background task feedback and overlay management. It visualizes the completion percentage of long-running tasks through a dynamic overlay that prevents user interaction until a process completes.
Js-csp is a concurrency library that implements communicating sequential processes with channels and generator-based routines for asynchronous programming in JavaScript. It provides a framework for building data processing pipelines and managing concurrent workflows, bringing Go-style channels and process coordination primitives to applications. The library coordinates message passing through buffered channels, stream mixing, multi-channel selection, and pub-sub broadcasting. Communication pathways support unbuffered rendezvous, fixed buffers, sliding windows, and dropping overflow. Operation
This project is a cross-platform library designed for desktop application development, providing a unified interface for window management, input handling, and hardware-accelerated graphics. It serves as a foundational framework that abstracts platform-specific windowing protocols and graphics APIs, enabling developers to create interactive software that functions consistently across Windows, macOS, and Linux. The library distinguishes itself by providing deep integration with low-level graphics APIs, specifically OpenGL and Vulkan. It manages the complexities of graphics context initializati
LibGDX is a Java-based framework designed for cross-platform game development, enabling the creation and deployment of 2D and 3D games across desktop, mobile, and web environments from a single codebase. It functions as a comprehensive library that abstracts hardware-accelerated graphics, audio, input, and file system access, providing a unified interface for developers to manage game logic and application lifecycles. The framework distinguishes itself through a high-performance architecture that prioritizes efficiency and native interoperability. It utilizes a batch-oriented graphics pipelin
This project provides a collection of type-safe wrappers designed to bridge web-based applications with native mobile hardware and system services. It functions as a cross-platform framework that normalizes disparate native plugin behaviors into a unified interface, allowing developers to access device sensors and system capabilities consistently across multiple mobile operating systems. The framework distinguishes itself by wrapping asynchronous native callbacks into reactive streams, simplifying the management of continuous hardware events and data updates. It includes robust mocking capabi
AsyncDisplayKit is an asynchronous UI framework and layout engine for iOS designed to offload layout and rendering operations from the main thread. It functions as a concurrent interface library that handles asynchronous image decoding and UI composition to maintain high frame rates. The project uses a node-based view hierarchy to build thread-safe interface structures on background threads. It includes an intelligent preloading system that predicts scroll direction to trigger data fetching and layout operations for elements before they become visible. The framework covers high-performance m
NativeScript is a cross-platform mobile development framework that enables the creation of native iOS and Android applications using JavaScript or TypeScript. It provides a direct bridge to native platform APIs, allowing developers to invoke native classes, methods, and properties directly from script code while maintaining full access to underlying mobile operating system features. The framework distinguishes itself through its direct native UI rendering, which maps declarative markup components to actual platform-native widgets rather than web-based views. This architecture is supported by
android-ktx is a Kotlin extension library for the Android framework. It provides a collection of idiomatic helper functions that wrap native system calls to reduce boilerplate and improve code readability throughout Android application development. The library implements a set of tools for building styled strings, transformation matrices, and graphical elements. It utilizes a builder-based syntax to simplify the construction of system objects such as content values and data bundles. The project covers a broad range of capabilities, including the simplification of view manipulations and time
cloc is a codebase metrics tool and multi-language code analyzer designed to count blank lines, comment lines, and physical lines of code. It serves as a source code line counter and report generator that identifies file types to calculate source volume across a wide variety of programming languages. The tool distinguishes itself by providing codebase version comparison to measure relative changes in source and comment lines between two versions of a directory or archive. It also supports the definition of custom languages and the extension of language recognition by loading custom comment fi