fsprojects / Incremental.net
Licence: mit
A library for incremental computations. Based on janestreet/incremental (https://github.com/janestreet/incremental) for OCaml.
Stars: β 66
Programming Languages
fsharp
127 projects
Labels
Projects that are alternatives of or similar to Incremental.net
Realm Graphql Service
GraphQL service for Realm Object Server
Stars: β 44 (-33.33%)
Mutual labels: reactive
Audio player flutter
π§ Apple Music / Tidal Audio Player for Flutter
Stars: β 52 (-21.21%)
Mutual labels: reactive
Phantom
Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise
Stars: β 1,049 (+1489.39%)
Mutual labels: reactive
Jasync Sql
Java & Kotlin Async DataBase Driver for MySQL and PostgreSQL written in Kotlin
Stars: β 1,092 (+1554.55%)
Mutual labels: reactive
Inferno Most Fp Demo
A demo for the ReactJS Tampa Bay meetup showing how to build a React+Redux-like architecture from scratch using Inferno, Most.js, reactive programmning, and various functional programming tools & techniques
Stars: β 45 (-31.82%)
Mutual labels: reactive
Rxswift To Combine Cheatsheet
RxSwift to Appleβs Combine Cheat Sheet
Stars: β 1,040 (+1475.76%)
Mutual labels: reactive
Example
Example project written using Marble.js framework
Stars: β 57 (-13.64%)
Mutual labels: reactive
Trading Vue Js
πΉ Hackable charting lib for traders. You can draw literally ANYTHING on top of candlestick charts.
Stars: β 1,021 (+1446.97%)
Mutual labels: reactive
Spring Boot Webflux Swagger Starter
An example project to illustrate how to document Spring Boot Webflux with Swagger2
Stars: β 62 (-6.06%)
Mutual labels: reactive
Ngqp
Declaratively synchronize form controls with the URL
Stars: β 65 (-1.52%)
Mutual labels: reactive
Moor
Moor is an easy to use, reactive, typesafe persistence library for Dart & Flutter
Stars: β 1,090 (+1551.52%)
Mutual labels: reactive
Incremental.NET
A library for incremental computations.
Based on janestreet/incremental for OCaml. Also inspired by Gjallarhorn.
tests
Usage -- seeuse Incr = new Incremental()
let Var = Incr.Var
let myOrders = Var.Create([100; 150; 200])
use maxOrder = Incremental.map Incr myOrders List.max
use minOrder = Incremental.map Incr myOrders List.min
use orderRange = Incremental.map2 Incr maxOrder minOrder (-)
let log = ResizeArray<string>()
use maxChanged = maxOrder.Subscribe (fun maxOrder -> log.Add(sprintf "Max changed to %d" maxOrder))
let worldVersion = Incr.Stabilize()
Assert.AreEqual([100; 150; 200], myOrders.Value)
Assert.AreEqual(200, maxOrder.Value)
Assert.AreEqual(100, minOrder.Value)
Assert.AreEqual(100, orderRange.Value)
myOrders.SetValue([300;400;500])
Incr.Stabilize() |> ignore
Assert.AreEqual(500, maxOrder.Value)
Assert.AreEqual("Max changed to 500", Seq.last(log))
Differences from Gjallarhorn:
- Thread safety (easy for user to make sure they get a consistent view)
- Control when computations happen (user must call .Stabilize())
- Fewer features, less code
Roadmap
- More tests
- Nuget release
- Incremental.Bind support
See also
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].