Skip to content

Installation

Choose the package for your language, then continue with Getting started.

Supported targets

TargetSupportedRecommended
net10YesYes
netstandard2.1YesNo

Applications on .NET 8 and .NET 9 use the netstandard2.1 build. That build omits TimedClock.ofTimeProvider and carries no trimming or Native AOT annotations.

From NuGet

Install Ranvier for F#, Ranvier.CSharp for C#, or Ranvier.Elmish for the MVU bridge. Versions are previews, so pass --prerelease.

The guide describes the current source. The current versions are Ranvier 0.1.0-preview.6, Ranvier.CSharp 0.1.0-preview.6, Ranvier.Elmish 0.1.0-preview.5, and Ranvier.Query 0.1.0-preview.2.

dotnet add package Ranvier --prerelease
<PackageReference Include="Ranvier" Version="0.1.0-preview.6" />
dotnet add package Ranvier.CSharp --prerelease
<PackageReference Include="Ranvier.CSharp" Version="0.1.0-preview.6" />

C# projects use Ranvier.CSharp; see C#.

dotnet add package Ranvier.Elmish --prerelease
<PackageReference Include="Ranvier.Elmish" Version="0.1.0-preview.5" />

The MVU bridge, Mvu, ships as its own package, Ranvier.Elmish, which depends on Ranvier; see Migrating from Elmish.

For typed reactive queries and mutation reconciliation, install Ranvier.Query with dotnet add package Ranvier.Query --prerelease; see Queries.

Views

The view layer ships as four packages that share one version, 0.1.0-alpha.1. Each depends on the others it needs at exactly that version.

PackageHoldsDepends on
Ranvier.ViewTemplate components, view sugar and server HTML rendering, on .NET and under FableRanvier, Xantham.Fable.Core.TS
Ranvier.View.DomMounting, hydration and the document head in the browser, under FableRanvier.View
Ranvier.View.AnimeMotion parts for templates over anime.jsRanvier.View, Fable.Ranvier.Anime
Fable.Ranvier.AnimeTyped anime.js 4.5 bindingsRanvier, Xantham.Fable.Core.TS

A browser app references Ranvier.View.Dom; a server, or code shared between server and client, references Ranvier.View. See Views.

<PackageReference Include="Ranvier.View.Dom" Version="0.1.0-alpha.1" />

Fable

Package builds include Fable sources and a standalone source project for Ranvier, Ranvier.Elmish, Ranvier.CSharp, Ranvier.Query and the four view packages, including their .Traced variants. F# projects compiled with Fable use normal NuGet package references. CI compiles and runs consumers restored from locally packed packages, so this path does not depend on repository build imports. See Fable for package details, available APIs and JavaScript timing and equality differences. The browser renderer is Ranvier.View.Dom.

The published versions listed above do not contain those standalone Fable project files. Until a release includes the packaging fix, build packages from the current checkout and restore them from a local feed. The Fable guide explains this distinction.

Native AOT and trimming

The Ranvier, Ranvier.CSharp, Ranvier.Elmish and Ranvier.Query packages, including their .Traced variants, support trimming and Native AOT. CI publishes traced and untraced smoke applications on .NET 10 for linux-x64 and treats trim/AOT warnings as errors. That validates this configuration; test your own deployment target and dependencies. Publish with <PublishAot>true</PublishAot>. The view packages carry no trimming or Native AOT annotations.

Trace types print their fields with explicit formatters. On .NET, payload previews use the application value's ToString implementation, which must also support Native AOT. Arrays and collections preview up to 64 elements and four levels of nesting; previews fit on one line of at most 60 characters. An application's records and unions can provide their own ToString overrides to keep useful diagnostic text after trimming.

Traced packages

Each package has a .Traced variant for diagnostics. See Tracing for switching between traced and untraced builds.

Next

Continue with Getting started.

Edit this page