MemoizR.Reactive
0.1.0-alpha1
This is a prerelease version of MemoizR.Reactive.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package MemoizR.Reactive --version 0.1.0-alpha1
NuGet\Install-Package MemoizR.Reactive -Version 0.1.0-alpha1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MemoizR.Reactive" Version="0.1.0-alpha1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MemoizR.Reactive --version 0.1.0-alpha1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MemoizR.Reactive, 0.1.0-alpha1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MemoizR.Reactive as a Cake Addin #addin nuget:?package=MemoizR.Reactive&version=0.1.0-alpha1&prerelease // Install MemoizR.Reactive as a Cake Tool #tool nuget:?package=MemoizR.Reactive&version=0.1.0-alpha1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MemoizR:Reactive: Simplifying Concurret Reactivity in .NET
This package extends the functionality provided by the foundational MemoizR package.
It closely resembles the behavior of signals in solid.js, while also incorporating essential thread-safety features. This implementation draws inspiration from the concepts found in reactively (https://github.com/modderme123/reactively).
Unlike ReactiveX, there's no need to handle subscriptions manually.
Reactivity
You can use MemoizR.Reactive to create reactive data flows easily:
var f = new ReactiveMemoFactory();
var v1 = f.CreateSignal(1, "v1");
var m1 = f.CreateMemoizR(async() => await v1.Get(), "m1");
var m2 = f.CreateMemoizR(async() => await v1.Get() * 2, "m2");
var r1 = f.CreateReaction(async() => await m1.Get() + await m2.Get(), "r1");
var f = new MemoFactory();
var v1 = f.CreateSignal(1, "v1");
var m1 = f.CreateMemoizR(async() => await v1.Get(), "m1");
var m2 = f.CreateMemoizR(async() => await v1.Get() * 2, "m2");
// The following example uses the TaskScheduler.FromCurrentSynchronizationContext method in a Windows Presentation Foundation (WPF) app to schedule
// https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskscheduler?view=net-7.0#specifying-a-synchronization-context
var UISyncContext = TaskScheduler.FromCurrentSynchronizationContext();
var fr = new ReactiveMemoFactory(UISyncContext);
var r1 = fr.CreateReaction(async() => await m1.Get() + await m2.Get(), "r1");
var r1 = fr.CreateReaction(async() => await m1.Get() + await m2.Get(), "r1");
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net7.0
- MemoizR (>= 0.1.0-alpha1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.1.6 | 82 | 11/27/2024 |
0.1.5 | 88 | 11/17/2024 |
0.1.4 | 107 | 5/25/2024 |
0.1.3 | 121 | 5/7/2024 |
0.1.2 | 107 | 5/6/2024 |
0.1.1 | 91 | 5/1/2024 |
0.1.1-rc.11 | 69 | 4/29/2024 |
0.1.1-rc.10 | 72 | 4/23/2024 |
0.1.1-rc.9 | 61 | 4/18/2024 |
0.1.1-rc.8 | 71 | 4/13/2024 |
0.1.1-rc.7 | 65 | 4/11/2024 |
0.1.1-rc.6 | 60 | 4/10/2024 |
0.1.1-rc.5 | 61 | 4/4/2024 |
0.1.1-rc.4 | 64 | 4/1/2024 |
0.1.1-rc.3 | 66 | 3/24/2024 |
0.1.1-rc.2 | 67 | 2/17/2024 |
0.1.1-rc.1 | 117 | 1/4/2024 |
0.1.0-rc9 | 174 | 11/6/2023 |
0.1.0-rc8 | 144 | 10/26/2023 |
0.1.0-rc7 | 112 | 10/24/2023 |
0.1.0-rc6 | 124 | 10/21/2023 |
0.1.0-rc5 | 101 | 10/19/2023 |
0.1.0-rc4 | 119 | 10/14/2023 |
0.1.0-rc3 | 118 | 10/13/2023 |
0.1.0-rc2 | 121 | 10/11/2023 |
0.1.0-rc10 | 107 | 11/12/2023 |
0.1.0-rc1 | 115 | 10/10/2023 |
0.1.0-rc.11 | 75 | 1/4/2024 |
0.1.0-alpha2 | 137 | 10/6/2023 |
0.1.0-alpha1 | 123 | 10/6/2023 |
0.0.4-rc4 | 128 | 9/24/2023 |
0.0.4-rc3 | 119 | 9/23/2023 |
0.0.4-rc2 | 117 | 9/23/2023 |
0.0.4-rc1 | 108 | 9/22/2023 |
0.0.4-beta1 | 117 | 9/21/2023 |
0.0.4-alpha1 | 115 | 9/19/2023 |