The State of Reactive Extensions for .NET in 2025
Rx.NET v6.0 was released in 2023. The free Introduction to Rx.NET book was released in 2024, but progress has stalled since then. In this hour long "state of the nation" talk, lead maintainer, Ian Griffiths, delves into the details, hidden complexities and the various options on the table, current progress and plans for Rx.NET v7.0.
Contents:
- 00:06 - We've stalled
- 01:38 - The big issues
- 02:58 - Packaging
- 03:03 - Packaging problems
- 05:31 - Deep dive into packaging
- 08:48 - Packaging problems continued
- 09:16 - Deep dive into packaging continued
- 10:17 - Packaging problems continued
- 18:17 - Self-contained bloat on Windows
- 18:49 - Nuget.org example
- 21:36 - Self-contained bloat on Windows continued
- 24:12 - Difficulties fixing packaging problems
- 25:18 - Why a "clean break" doesn't work
- 27:04 - Rx packaging "gauntlet"
- 31:20 - I wouldn't be starting from here
- 33:35 - What are we doing about packaging?
- 35:08 - Option 1: workaround
- 36:39 - Option 2: split packages
- 38:13 - UWP
- 38:27 - UWP (aka uap10.0)
- 42:59 - What I'd like to do with UWP
- 43:54 - WASM
- 44:01 - WASM problems
- 46:37 - AsyncRx.NET
- 46:58 - AsyncRx.NET status
- 48:13 - System.Linq.Async
- 48:19 - Separation of System.Linq.Async
- 51:26 - TFM misperceptions
- 51:35 - Perception of non-support for .NET 8.0
- 51:57 - nuget.org example
- 52:54 - Perception of non-support for .NET 8.0 continued
- 54:04 - Why we will update the TFM anyway
- 54:07 - Backlog
- 54:19 - What about actual meaningful progress?
- 55:19 - Conclusion
This talk was given during endjin's internal weekly "show & tell" meeting, but has been edited for public consumption.
Published on:
Learn moreWe can help you with The State of Reactive Extensions for .NET in 2025
If you want help implementing, troubleshooting, or improving this product, contact us and we’ll point you in the right direction.
Related posts
Introducing Survive the Sprint: a pixel-art game built (almost) in one shot with Claude Opus 5.5
I gave Claude Opus 5.5 one prompt and the endjin 'Who we are' page, and got back most of a pixel-art browser game starring the endjineers. Her...
How to trust your AI-assisted data analysis
AI tools can produce data analysis that looks authoritative without being verifiable. Whether you're the analyst or the decision-maker relying...
Providing comparative context with DAX Calculated Tables under Row Level Security
Row Level Security in Power BI solves one problem (who sees what) but introduces another - comparisons across the full dataset become impossib...
How to Implement Generation in RAG
Understand the generation step of RAG: how LLMs use augmented context to produce grounded responses, how to enforce structured outputs with Py...
How to Implement Augmentation in RAG
Understand the augmentation step of RAG: how retrieved documents are structured into prompts, how metadata and citations improve response qual...
How to Implement Retrieval in RAG
Understand the retrieval step of RAG: Learn how database queries, keyword search, vector search, and hybrid approaches find the right informat...
TypeDeclaration: An Abstraction for Understanding JSON Schema
The Corvus.Json.CodeGeneration library analyses JSON Schema and builds a TypeDeclaration tree that maps schema patterns to code patterns. The ...
Optimising DAX: Practical Examples
The final post in the Optimising DAX series: the CALCULATE trap, variables and IF.EAGER, slicer costs, and a practical approach to isolating s...
Optimising DAX: Data Materialisation
Data materialisation is when the storage engine gives up on efficient processing and rebuilds the entire table. This post explains what trigge...
Building API Reference Documentation From Code, Part 2: Under the Hood
A deep dive into the cross-assembly linking, PDB-based source links, TFM scanning, enrichment merging, and search indexing that power our API ...