Gitrend
🚀

R3爆誕!Rxの未来が今ここに!🚀

C# 2026/2/6
Summary
C#の非同期処理、まだReactive Extensionsで消耗してるの? UniRxの精神を受け継ぎつつ、さらに進化を遂げた「R3」が爆誕! これマジで触ってみてほしい、ヤバいから!

概要:なにこれ凄い?

うおおお!GitHubトレンドを漁ってたら、とんでもないモノを見つけちゃったよ、皆さん!僕、C#の非同期処理、特にRx系のフレームワークが大好きなんだよね。でも正直、既存のdotnet/reactiveやUniRxって、ちょっと古さを感じるところもあったり、特にUnityだとGC Allocとかパフォーマンス面で気になるところもあったんだ。そこに現れたのがこのR3!Cysharpさんがまたやってくれたよ!「The new future」って説明にあるけど、まさにその言葉通りの体験!内部実装まで見ると「まじか、こんな最適化するんだ!」って興奮しちゃうレベルで、既存の課題をスマートに、かつ高速に解決してるのが分かるんだ。これはもう、感動ものです!

ここが推し!

サクッと試そう(使用例)

using R3;
using System;
using System.Threading.Tasks;

public class QuickStartExample
{
    public static async Task Run()
    {
        Console.WriteLine("R3 Quick Start Example!");

        // 3回だけ値を発行するObservable
        var source = Observable.Range(1, 3)
            .Select(x => x * 10);

        // Subscribeして値を受け取る
        // Disposeは自動でされるけど、明示的に管理もできるよ
        var disposable = source.Subscribe(
            x => Console.WriteLine($"Received: {x}"),
            ex => Console.WriteLine($"Error: {ex.Message}"),
            () => Console.WriteLine("Completed!")
        );

        // async/awaitとの連携も楽ちん!
        var lastValue = await Observable.Timer(TimeSpan.FromSeconds(1))
            .Select(_ => "Hello R3!")
            .FirstAsync(); // 最初の値を取得してawait

        Console.WriteLine($"Awaited: {lastValue}");

        // 必要なら明示的にDispose
        // disposable.Dispose();
    }
}

ぶっちゃけ誰向け?

まとめ

いやー、マジで興奮が止まらないR3!これは単なる既存ライブラリの焼き直しじゃなくて、C#におけるReactiveプログラミングの未来を再定義する、そんなポテンシャルを秘めたライブラリだと僕は確信してるよ!パフォーマンス、モダンなAPI、そしてCysharpさんの圧倒的技術力。どれを取っても一流だし、これからのC#開発、特にUnity開発ではスタンダードになる日が来るんじゃないかな。皆さん、今のうちに触っておかないと乗り遅れちゃうぞ!僕もどんどん深掘りしていくから、また次回のAkira’s Tech Logもお楽しみに!🚀