# reactivex/rxkotlin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/reactivex-rxkotlin).**

7,041 stars · 456 forks · Kotlin · Apache-2.0

## Links

- GitHub: https://github.com/ReactiveX/RxKotlin
- awesome-repositories: https://awesome-repositories.com/repository/reactivex-rxkotlin.md

## Topics

`kotlin` `rxjava`

## Description

RxKotlin is a reactive programming library and asynchronous stream processor that provides Kotlin language extensions for composing event-based data streams. It serves as a set of Kotlin bindings for RxJava, allowing developers to transform, filter, and flatten sequences of data emitted over time.

The library focuses on integrating RxJava patterns into Kotlin projects by applying language-specific conventions and idioms. It utilizes extension functions to simplify reactive programming patterns, reduce boilerplate, and optimize workflows within the reactive ecosystem.

The toolkit covers a broad range of stream processing capabilities, including data aggregation into maps, the conversion of synchronous collections and iterables into asynchronous streams, and the flattening of nested stream emissions. It also provides type-based filtering and casting to ensure compile-time type safety within data pipelines.

## Tags

### Programming Languages & Runtimes

- [Asynchronous Streams](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-streams.md) — Provides language constructs for processing continuous flows of data asynchronously without blocking execution.
- [Kotlin Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/kotlin-extensions.md) — Provides a collection of wrappers that apply Kotlin-specific conventions to a reactive framework.
- [Language Extension APIs](https://awesome-repositories.com/f/programming-languages-runtimes/language-extension-apis.md) — Provides a set of Kotlin extension functions that add reactive operators to existing types to reduce boilerplate.
- [Reactive Programming for Kotlin](https://awesome-repositories.com/f/programming-languages-runtimes/reactive-programming-for-kotlin.md) — Enables the construction of asynchronous and event-driven applications using concise Kotlin-specific reactive idioms.

### Part of an Awesome List

- [Functional Reactive Programming](https://awesome-repositories.com/f/awesome-lists/devtools/functional-reactive-programming.md) — Implements a functional reactive programming paradigm for building declarative data pipelines that react to changes.
- [Kotlin Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/kotlin-libraries.md) — RxJava bindings for Kotlin

### Data & Databases

- [Stream Processors](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/stream-pipeline-orchestration/stream-processors.md) — Acts as a toolkit for the transformation, filtering, and flattening of asynchronous data streams.
- [Type-Safe Stream Casting](https://awesome-repositories.com/f/data-databases/data-type-casting/safe-casting/type-safe-stream-casting.md) — Uses language-level type constraints to filter and cast stream elements while maintaining compile-time type safety.
- [Nested Stream Flattening](https://awesome-repositories.com/f/data-databases/nested-stream-flattening.md) — Provides capabilities to merge or switch between multiple inner streams emitted by a primary source stream. ([source](https://github.com/reactivex/rxkotlin#readme))
- [Collection-to-Stream Conversion](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/structured-collection-streams/collection-to-stream-conversion.md) — Transforms arrays, iterables, and iterators into asynchronous streams for reactive processing. ([source](https://github.com/reactivex/rxkotlin#readme))
- [Lazy Transformations](https://awesome-repositories.com/f/data-databases/sequence-transformations/lazy-transformations.md) — Employs lazy transformations on data streams, ensuring operations are only executed upon observer subscription.
- [Type-Based Filters](https://awesome-repositories.com/f/data-databases/stream-filters/type-based-filters.md) — Provides operators to filter and cast stream elements based on specific types to ensure strict type safety in pipelines. ([source](https://github.com/reactivex/rxkotlin#readme))

### Mobile Development

- [RxJava Kotlin Bindings](https://awesome-repositories.com/f/mobile-development/rxjava-kotlin-bindings.md) — Integrates RxJava reactive streams into Kotlin via specialized extension functions and language idioms.

### Software Engineering & Architecture

- [Compositional Streaming Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/functional-pipelines/compositional-streaming-pipelines.md) — Implements compositional streaming pipelines by chaining higher-order functions to transform and aggregate asynchronous event streams.
- [Language Interoperability Layers](https://awesome-repositories.com/f/software-engineering-architecture/language-interoperability-layers.md) — Wraps RxJava to provide a seamless bridge between Java bytecode and Kotlin-specific reactive idioms.
- [Asynchronous Data Routing](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-data-routing.md) — Directs the flow of emitted items through discrete logic blocks to manage asynchronous event propagation.
- [Reactive Pattern Simplifications](https://awesome-repositories.com/f/software-engineering-architecture/reactive-pattern-simplifications.md) — Uses extension functions to streamline reactive programming patterns and reduce boilerplate code. ([source](https://github.com/reactivex/rxkotlin#readme))
- [Stream Aggregation](https://awesome-repositories.com/f/software-engineering-architecture/stream-aggregation.md) — Collects emitted stream elements into summarized data structures like maps or multimaps. ([source](https://github.com/reactivex/rxkotlin#readme))

### Web Development

- [Reactive Programming Libraries](https://awesome-repositories.com/f/web-development/reactive-programming-libraries.md) — Functions as a library for composing asynchronous and event-based data streams using functional operators.
- [RxJava Integrations](https://awesome-repositories.com/f/web-development/rxjava-integrations.md) — Integrates RxJava patterns within Kotlin projects to manage complex event sequences and asynchronous data streams.
