FS.GG.UI.Elmish
0.5.0
Prefix Reserved
See the version list below for details.
dotnet add package FS.GG.UI.Elmish --version 0.5.0
NuGet\Install-Package FS.GG.UI.Elmish -Version 0.5.0
<PackageReference Include="FS.GG.UI.Elmish" Version="0.5.0" />
<PackageVersion Include="FS.GG.UI.Elmish" Version="0.5.0" />
<PackageReference Include="FS.GG.UI.Elmish" />
paket add FS.GG.UI.Elmish --version 0.5.0
#r "nuget: FS.GG.UI.Elmish, 0.5.0"
#:package FS.GG.UI.Elmish@0.5.0
#addin nuget:?package=FS.GG.UI.Elmish&version=0.5.0
#tool nuget:?package=FS.GG.UI.Elmish&version=0.5.0
FS.GG.UI.Elmish
Elmish adapter contracts for FS.GG.UI V3 products.
FS.GG.UI.Elmish is one of the FS.GG.UI distribution packages — an F# / Elmish UI and 2D
scene-graph framework for .NET 10 desktop, rendered through Vulkan + SkiaSharp.
Install
dotnet add package FS.GG.UI.Elmish
Or scaffold a full governed project that wires the FS.GG.UI packages together:
dotnet new install FS.GG.UI.Template
dotnet new fs-gg-ui -o MyApp
Usage
The adapter wraps your own Elmish model/msg together with the viewer, so a single
update drives both your state and the rendered scene. You supply a render function that
projects your model to a SceneNode; the adapter rebuilds the scene on every message.
open FS.GG.UI.Scene
open FS.GG.UI.SkiaViewer
open FS.GG.UI.Elmish
// Your own Elmish model/msg
type Model = { Count: int }
type Msg = Increment
// Project the user model into a scene
let render (model: Model) : SceneNode =
Text((20.0, 40.0), $"Count: {model.Count}", Colors.black)
let options = { Title = "Counter"; InitialSize = { Width = 640; Height = 480 } }
// Initialise the combined adapter model + initial effects
let initial, effects =
ElmishAdapter.init options { Count = 0 } (render { Count = 0 })
// Fold a user message through the adapter (re-renders via `render`)
let next, _ =
ElmishAdapter.update render (UserMsg Increment) initial
API at a glance
ElmishAdapter.init— builds the combinedElmishAdapterModel<'model>fromViewerOptions, your initial user model, and an initialSceneNode, returning the model and its startup effects.ElmishAdapter.update— folds anElmishAdapterMsg<'msg>into the adapter model, using the suppliedrenderfunction to refresh the scene, and yields the next model plus effects.ElmishAdapterModel<'model>— the bridged state record holding yourUserModel, the currentScene(aSceneNode), and theViewerModel.ElmishAdapterMsg<'msg>— message envelope:UserMsgcarries your own messages,ViewerMsgcarries viewer messages.ElmishAdapterEffect<'msg>— effect envelope:DispatchUserfor your messages andDispatchViewerforViewerEffects.
Versioning
All FS.GG.UI.* libraries share one version and move together. In a generated project a
single <FsGgUiVersion> in Directory.Packages.props pins every package — upgrading is one
edit; see docs/UPGRADING.md. Pre-release versions use a -preview.N suffix.
Links
- Repository & issues: https://github.com/FS-Skia-UI/FS-Skia-UI
- License: MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Fable.Elmish (>= 5.0.2)
- FS.GG.Audio.Core (>= 0.1.0)
- FS.GG.UI.Scene (>= 0.5.0)
- FS.GG.UI.SkiaViewer (>= 0.5.0)
- FSharp.Core (>= 10.1.301)
- HarfBuzzSharp.NativeAssets.Linux (>= 14.2.1)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1)
- Silk.NET.GLFW (>= 2.23.0)
- Silk.NET.Input (>= 2.23.0)
- Silk.NET.OpenGL (>= 2.23.0)
- Silk.NET.Windowing (>= 2.23.0)
- Silk.NET.Windowing.Extensions (>= 2.23.0)
- Silk.NET.Windowing.Glfw (>= 2.23.0)
- SkiaSharp (>= 4.150.0)
- SkiaSharp.HarfBuzz (>= 4.150.0)
- SkiaSharp.NativeAssets.Linux (>= 4.150.0)
- SkiaSharp.NativeAssets.Win32 (>= 4.150.0)
- YamlDotNet (>= 18.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FS.GG.UI.Elmish:
| Package | Downloads |
|---|---|
|
FS.GG.UI
Optional BOM / metapackage for the FS.GG.UI framework. Reference this single package at one version to pin the entire coherent FS.GG.UI.* set to that version; any attempt to mix a member at a different version fails loudly at restore/build. Ships no assembly — dependencies only. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.15.0 | 104 | 7/20/2026 |
| 0.14.0 | 78 | 7/19/2026 |
| 0.13.0 | 110 | 7/18/2026 |
| 0.12.0 | 232 | 7/17/2026 |
| 0.11.0 | 346 | 7/16/2026 |
| 0.10.0 | 422 | 7/14/2026 |
| 0.9.2 | 472 | 7/13/2026 |
| 0.9.0 | 564 | 7/11/2026 |
| 0.8.0 | 220 | 7/11/2026 |
| 0.7.0 | 167 | 7/11/2026 |
| 0.6.0 | 147 | 7/10/2026 |
| 0.5.0 | 203 | 7/10/2026 |
| 0.4.0 | 287 | 7/9/2026 |
| 0.4.0-preview.1 | 59 | 7/9/2026 |
| 0.3.0-preview.1 | 69 | 7/7/2026 |
| 0.2.0-preview.1 | 59 | 7/6/2026 |
| 0.1.64-preview.1 | 80 | 7/5/2026 |
| 0.1.63-preview.1 | 89 | 7/4/2026 |
| 0.1.62-preview.1 | 55 | 7/4/2026 |
| 0.1.61-preview.1 | 51 | 7/2/2026 |