Repolode
ReactiveX

ReactiveX/RxJava

observableシーケンスを使って非同期・イベントベースのプログラムを組み立てる、Java VM向けReactive Extensions実装。

スター
48,159
フォーク
7,584
未解決の Issue
12
最終コミット
昨日

これは何?

RxJavaはオブザーバーパターンをデータやイベントのシーケンスに拡張し、それらを宣言的に結合、変換、フィルタリングするオペレーターを提供します。開発者は低レベルのスレッド、同期処理、並行データ構造を直接管理せずに処理パイプラインを記述できます。subscribeOnやobserveOnなどのScheduler抽象化を通じて、処理を別のスレッドに移せます。

このライブラリは、扱う要素数に応じて複数のリアクティブ型を提供します。バックプレッシャーに対応するストリーム向けのFlowable、バックプレッシャーのない無制限ストリーム向けのObservable、結果が0件または1件の場合に使うSingle、Maybe、Completable、そしてバージョン4の仮想スレッドベースのブロッキングフロー向けのStreamableです。バージョン4.xはjava.util.concurrent.Flowをベースとしており、サードパーティ製の実行時依存関係は不要で、Schedulers.virtual()などのSchedulerを通じてVirtual Threadsをサポートします。

プロジェクトはApache-2.0ライセンスで公開され、Maven Centralではio.reactivex.rxjava4グループから配布されています。WikiとJavadocにオペレーターのドキュメントがあり、既存コード向けにバージョン3.xも引き続き利用できます。

主な機能

  • 01map、filter、flatMapなどの宣言的なオペレーターを使って、非同期データやイベントのストリームを組み立てます。
  • 02バックプレッシャーに対応するFlowableと、対応しないObservableに加え、単一結果向けのSingle、Maybe、Completableを提供します。
  • 03computation、cached、virtual、singleなどのSchedulerを使って、処理をスレッド間で切り替えます。
  • 04java.util.concurrent.Flowをベースとしており、必須のサードパーティ製実行時依存関係はありません。
  • 05Schedulers.virtual()とvirtualCreate()を通じてVirtual Threadsをサポートします。

ユースケース

  • ネットワークやデータベースの呼び出しをバックグラウンドで実行し、結果をUIスレッドに渡す。
  • 各ステップで前の結果を使いながら、依存関係のある非同期サービス呼び出しを連結する。
  • バックプレッシャーによってメモリ使用量を制御しながら、イベントストリームを処理する。
  • flatMapやParallelFlowableで並列処理を調整し、結果をマージする。

クイックスタート

  1. 1

    ビルドに RxJava 4 の依存関係を追加します(README の Gradle の例を参照)

  2. 2

    Flowable を使って Hello World プログラムを作成し、実行します

使う前に知っておきたいこと

  • Java 26 向けに開発されています。Android との互換性は API レベルと desugaring に依存すると README に記載されています。
  • バージョン 4 では新しいパッケージ名(io.reactivex.rxjava4)が使われるため、3.x からの移行にはコードの変更が必要です。
  • 今後数か月で RxJava 3.x のサポートは縮小される予定です。

トピック

よくある質問

RxJava とは?
observableシーケンスを使って非同期・イベントベースのプログラムを組み立てる、Java VM向けReactive Extensions実装。 RxJavaはオブザーバーパターンをデータやイベントのシーケンスに拡張し、それらを宣言的に結合、変換、フィルタリングするオペレーターを提供します。開発者は低レベルのスレッド、同期処理、並行データ構造を直接管理せずに処理パイプラインを記述できます。subscribeOnやobserveOnなどのScheduler抽象化を通じて、処理を別のスレッドに移せます。
RxJava は無料で使えますか?ライセンスは?
RxJava は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
RxJava は今もメンテナンスされていますか?
活発にメンテナンス中。RxJava の最終コミットは 2026年10月23日 です。
RxJava は何に使えますか?
ネットワークやデータベースの呼び出しをバックグラウンドで実行し、結果をUIスレッドに渡す。 各ステップで前の結果を使いながら、依存関係のある非同期サービス呼び出しを連結する。 バックプレッシャーによってメモリ使用量を制御しながら、イベントストリームを処理する。 flatMapやParallelFlowableで並列処理を調整し、結果をマージする。
RxJava のインストール方法は?
ビルドに RxJava 4 の依存関係を追加します(README の Gradle の例を参照) Flowable を使って Hello World プログラムを作成し、実行します
RxJava はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/ReactiveX/RxJava

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト