Orleans.FSharp.Abstractions 2.0.0-alpha.1

This is a prerelease version of Orleans.FSharp.Abstractions.
dotnet add package Orleans.FSharp.Abstractions --version 2.0.0-alpha.1
                    
NuGet\Install-Package Orleans.FSharp.Abstractions -Version 2.0.0-alpha.1
                    
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="Orleans.FSharp.Abstractions" Version="2.0.0-alpha.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Orleans.FSharp.Abstractions" Version="2.0.0-alpha.1" />
                    
Directory.Packages.props
<PackageReference Include="Orleans.FSharp.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Orleans.FSharp.Abstractions --version 2.0.0-alpha.1
                    
#r "nuget: Orleans.FSharp.Abstractions, 2.0.0-alpha.1"
                    
#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.
#:package Orleans.FSharp.Abstractions@2.0.0-alpha.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Orleans.FSharp.Abstractions&version=2.0.0-alpha.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Orleans.FSharp.Abstractions&version=2.0.0-alpha.1&prerelease
                    
Install as a Cake Tool

Orleans.FSharp.Abstractions

C# shim that enables Orleans proxy generation for all F# grains — add this to your silo project and get a zero-boilerplate F# actor system.

Why this exists

Orleans Roslyn source generators only run on C# projects. F# assemblies are invisible to them. Without proxy classes, calling a grain from a client throws at runtime.

This package contains only three IFSharpGrain interfaces in a C# project. Because the project has Microsoft.Orleans.Sdk, source generators run and produce the proxy classes (Proxy_IFSharpGrain etc.) in this assembly. Any silo that references this package (directly or transitively via Orleans.FSharp.Runtime) can call all F# grains — with no per-grain C# code required.

Interfaces

Interface Key type F# handle type
IFSharpGrain string FSharpGrainHandle<'S,'M>
IFSharpGrainWithGuidKey Guid FSharpGrainGuidHandle<'S,'M>
IFSharpGrainWithIntKey int64 FSharpGrainIntHandle<'S,'M>

Usage

In your silo project (.fsproj):

<PackageReference Include="Orleans.FSharp.Abstractions" Version="*" />

In your client code (F#):

open Orleans.FSharp

// Get a typed handle — no per-grain interface needed
let counter = FSharpGrain.ref<CounterState, CounterCommand> factory "counter-1"

// Call the grain — fully typed, no box/unbox
let! state = counter |> FSharpGrain.send Increment

Dependency chain

Orleans.FSharp.Abstractions (C#)   ← proxy classes generated HERE
        ↑                    ↑
Orleans.FSharp (F#)     Orleans.FSharp.CodeGen (optional, legacy per-grain stubs)
        ↑
Orleans.FSharp.Runtime (F#)        ← references Abstractions transitively
        ↑
Your silo project (F#)             ← gets proxy classes for free

No circular dependencies. No code to write.

Key design decision: no IRemindable

IFSharpGrain does not inherit IRemindable. The FSharpGrain<'S,'M> class in Orleans.FSharp.Runtime implements IRemindable directly. This avoids pulling Microsoft.Orleans.Reminders source generators into the Abstractions project, which would create the cross-assembly proxy access problem this package is designed to solve.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Orleans.FSharp.Abstractions:

Package Downloads
Orleans.FSharp

Idiomatic F# computation expressions and helpers for Microsoft Orleans grain development — grain {}, GrainState, GrainRef, Streaming, Reminders, Timers, Observers, Filters, Transactions, and more.

Orleans.FSharp.CodeGen

C# bridge project enabling Orleans Roslyn source generators for F# grain definitions. Add this project to your silo solution to generate proxy code for all F# grains — no per-grain C# stubs needed.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0-alpha.1 86 4/28/2026