Skip to content

Overview

Build reactive state for .NET: update a value, and the computations that depend on it update too.

  • Signals hold values you can read and write.
  • Memos derive values from tracked reads.
  • Effects run when a value they read changes.
  • Bindings copy one fixed signal or memo into an external target.

A taste

open Ranvier

let graph = new Graph ()

let doubled =
    graph.Run (fun () ->
        let count = createSignal 1
        let doubled = createMemo (fun _ -> count.Value * 2)
        createEffect (fun () -> printfn "doubled = %d" doubled.Value)
        count.Value <- 5
        doubled)
doubled = 2
doubled = 10

Choose a starting point

Targets

net10.0, netstandard2.1 and Fable (JavaScript).

Guide

Packages in other repositories

The core packages are built here. The packages below build on them in their own repositories:

RepositoryPackagesDocumentation
Ranvier.ViewRanvier.View, Ranvier.View.Dom, Ranvier.View.Anime, Fable.Ranvier.Anime, Ranvier.AnalyzersViews, server rendering, motion and analyzers
Ranvier.CssRanvier.Css, Ranvier.Css.Bindings, Ranvier.Css.View, Ranvier.Css.BuildTyped CSS
Ranvier.PersistenceRanvier.Persistence, Ranvier.Persistence.Marten, Ranvier.Persistence.KurrentDBPersisted inputs and stores

Source and package status

The guide describes the current source. Installation distinguishes published previews from local package builds. Roadmap lists implemented areas and ideas under consideration.

Edit this page