Skip to content

Orleans NuGet packages

Consumers of Orleans rely on various NuGet packages to achieve specific desired behaviors. There are several common packages and abstractions, and many individual single purpose packages. This article provides insights to help developers learn which Orleans packages should be used.

Applies to: Orleans 7.0, Orleans 8.0, Orleans 9.0, Orleans 10.0

Orleans provides several NuGet packages for different scenarios. When building an Orleans silo (server), reference the Microsoft.Orleans.Server NuGet package. The Server package includes everything from the Client package, so silo projects can also act as clients without additional references. When building a standalone client application that connects to an Orleans cluster but doesn’t host a silo, reference the Microsoft.Orleans.Client NuGet package. All Orleans projects, such as abstractions or grain class libraries, reference the Microsoft.Orleans.Sdk NuGet package. The Microsoft.Orleans.Sdk package is included with both the Client and Server packages.

NuGet packageDescription
Microsoft.Orleans.ClientClient library for connecting to Orleans clusters.
Microsoft.Orleans.SdkMetapackage for grain development, included in both Client and Server packages.
Microsoft.Orleans.ServerServer library for hosting Orleans silos.

For information on installing NuGet packages, see the following options:

Applies to: Orleans 10.0

The official Orleans Dashboard provides real-time cluster monitoring and visualization.

NuGet packageDescription
Microsoft.Orleans.DashboardOrleans Dashboard for real-time cluster monitoring and visualization.
Microsoft.Orleans.Dashboard.AbstractionsAbstractions for Orleans Dashboard.

Applies to: Orleans 9.0, Orleans 8.0, Orleans 7.0

One popular Orleans tool is the OrleansDashboard NuGet package. This dashboard provides some simple metrics and insights into what is happening inside your Orleans app. For more information, see GitHub: Orleans Dashboard.

Applies to: Orleans 7.0, Orleans 8.0, Orleans 9.0, Orleans 10.0

NuGet packageDescription
Microsoft.Orleans.Hosting.KubernetesOrleans hosting support for Kubernetes.
Microsoft.Orleans.RuntimeCore runtime library of Orleans that hosts and executes grains within a silo.
NuGet packageDescription
Microsoft.Orleans.Clustering.AzureStorageOrleans clustering provider backed by Azure Table Storage.
Microsoft.Orleans.Clustering.AdoNetOrleans clustering provider backed by ADO.NET.
Microsoft.Orleans.Clustering.DynamoDBOrleans clustering provider backed by AWS DynamoDB.
Microsoft.Orleans.Clustering.CosmosOrleans clustering provider backed by Azure Cosmos DB.
Microsoft.Orleans.Clustering.RedisOrleans clustering provider backed by Redis.
Microsoft.Orleans.Clustering.CassandraOrleans clustering provider backed by Apache Cassandra.
Microsoft.Orleans.Clustering.ConsulOrleans clustering provider backed by HashiCorp Consul.
Microsoft.Orleans.Clustering.ZooKeeperOrleans clustering provider backed by Apache ZooKeeper.
NuGet packageDescription
Microsoft.Orleans.RemindersReminders library for Microsoft Orleans used on the server.
Microsoft.Orleans.Reminders.AzureStorageOrleans reminders provider backed by Azure Table Storage.
Microsoft.Orleans.Reminders.AdoNetOrleans reminders provider backed by ADO.NET.
Microsoft.Orleans.Reminders.DynamoDBOrleans reminders provider backed by AWS DynamoDB.
Microsoft.Orleans.Reminders.CosmosOrleans reminders provider backed by Azure Cosmos DB.
Microsoft.Orleans.Reminders.RedisOrleans reminders provider backed by Redis.
NuGet packageDescription
Microsoft.Orleans.Persistence.AdoNetOrleans persistence provider backed by ADO.NET.
Microsoft.Orleans.Persistence.AzureStorageOrleans persistence provider backed by Azure Table Storage.
Microsoft.Orleans.Persistence.DynamoDBOrleans persistence provider backed by AWS DynamoDB.
Microsoft.Orleans.Persistence.CosmosOrleans persistence provider backed by Azure Cosmos DB.
Microsoft.Orleans.Persistence.RedisOrleans persistence provider backed by Redis.
Microsoft.Orleans.Persistence.MemoryIn-memory storage for Orleans.
NuGet packageDescription
Microsoft.Orleans.GrainDirectory.AzureStorageOrleans grain directory provider backed by Azure Table Storage.
Microsoft.Orleans.GrainDirectory.AdoNetOrleans grain directory provider backed by ADO.NET.
Microsoft.Orleans.GrainDirectory.RedisOrleans grain directory provider backed by Redis.
NuGet packageDescription
Microsoft.Orleans.StreamingStreaming library for Orleans used both on the client and server.
Microsoft.Orleans.Streaming.AzureStorageOrleans streaming provider backed by Azure Queue Storage.
Microsoft.Orleans.Streaming.EventHubsOrleans streaming provider backed by Azure Event Hubs.
Microsoft.Orleans.Streaming.SQSOrleans streaming provider backed by AWS SQS.
NuGet packageDescription
Microsoft.Orleans.AnalyzersC# Analyzers for Orleans.
Microsoft.Orleans.CodeGeneratorCode generation library for Microsoft.Orleans.Serialization.
Microsoft.Orleans.EventSourcingBase types for creating Orleans grains with event-sourced state.
Microsoft.Orleans.Connections.SecuritySupport for security communication using TLS in Orleans.
Microsoft.Orleans.BroadcastChannelSupport for broadcast channels in Orleans.
NuGet packageDescription
Microsoft.Orleans.TestingHostOrleans library for hosting a silo in a testing project.
Microsoft.Orleans.Transactions.TestKit.BaseTest kit base library for transactions.
Microsoft.Orleans.Transactions.TestKit.xUnitxUnit test kit library for transactions.
Microsoft.Orleans.Serialization.TestKitTest kit for projects using Microsoft.Orleans.Serialization.
NuGet packageDescription
Microsoft.Orleans.SerializationFast, flexible, and version-tolerant serializer for .NET.
Microsoft.Orleans.Serialization.AbstractionsSerialization abstractions for Orleans.
Microsoft.Orleans.Serialization.SystemTextJsonSystem.Text.Json integration for Microsoft.Orleans.Serialization.
Microsoft.Orleans.Serialization.FSharpF# core type support for Microsoft.Orleans.Serialization.
Microsoft.Orleans.Serialization.NewtonsoftJsonNewtonsoft.Json integration for Microsoft.Orleans.Serialization.
Microsoft.Orleans.Serialization.MessagePackMessagePack integration for Microsoft.Orleans.Serialization.
Microsoft.Orleans.Serialization.ProtobufProtocol Buffers (Protobuf) integration for Microsoft.Orleans.Serialization.
NuGet packageDescription
Microsoft.Orleans.TransactionsCore transaction library of Orleans used on the server.
Microsoft.Orleans.Transactions.AzureStorageOrleans transactions storage provider backed by Azure Storage.

Applies to: Orleans 3.x

There are 5 key NuGet packages you will need to use in most scenarios:

Terminal window
Install-Package Microsoft.Orleans.Core.Abstractions

Contains Orleans.Core.Abstractions.dll, which defines Orleans public types that are needed for developing application code (grain interfaces and classes). This package is needed to be directly or indirectly referenced by any Orleans project. Add it to your projects that define grain interfaces and classes.

  • Microsoft.Orleans.OrleansCodeGenerator.Build.

    Terminal window
    Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build

    Appeared in Orleans 1.2.0. Build time support for grain interfaces and implementation projects. Add it to your grain interfaces and implementation projects to enable code generation of grain references and serializers.

  • Microsoft.Orleans.CodeGenerator.MSBuild.

    Terminal window
    Install-Package Microsoft.Orleans.CodeGenerator.MSBuild

    Appeared as part of Orleans 2.1.0. An alternative to the Microsoft.Orleans.OrleansCodeGenerator.Build package. Leverages Roslyn for code analysis to avoid loading application binaries and improves support for incremental builds, which should result in shorter build times.

Terminal window
Install-Package Microsoft.Orleans.Server

A meta-package for easily building and starting a silo. Includes the following packages:

  • Microsoft.Orleans.Core.Abstractions
  • Microsoft.Orleans.Core
  • Microsoft.Orleans.OrleansRuntime
  • Microsoft.Orleans.OrleansProviders
Terminal window
Install-Package Microsoft.Orleans.Client

A meta-package for easily building and starting an Orleans client (frontend). Includes the following packages:

  • Microsoft.Orleans.Core.Abstractions
  • Microsoft.Orleans.Core
  • Microsoft.Orleans.OrleansProviders
Terminal window
Install-Package Microsoft.Orleans.Core

Contains implementation for most Orleans public types used by application code and Orleans clients (frontends). Reference it for building libraries and client applications that use Orleans types but don’t deal with hosting or silos. Included in Microsoft.Orleans.Client and Microsoft.Orleans.Server meta-packages, and is referenced, directly or indirectly, by most other packages.

Terminal window
Install-Package Microsoft.Orleans.OrleansRuntime

Library for configuring and starting a silo. Reference it in your silo host project. Included in Microsoft.Orleans.Server meta-package.

Terminal window
Install-Package Microsoft.Orleans.Runtime.Abstractions

Contains interfaces and abstractions for types implemented in Microsoft.Orleans.OrleansRuntime.

Terminal window
Install-Package Microsoft.Orleans.Hosting.AzureCloudServices

Contains helper classes for hosting silos and Orleans clients as Azure Cloud Services (Worker Roles and Web Roles).

Terminal window
Install-Package Microsoft.Orleans.Hosting.ServiceFabric

Contains helper classes for hosting silos as a stateless Service Fabric service.

The below packages include plugins for persisting cluster membership data in various storage technologies.

Terminal window
Install-Package Microsoft.Orleans.Clustering.AzureStorage

Includes the plugin for using Azure Tables for storing cluster membership data.

Terminal window
Install-Package Microsoft.Orleans.Clustering.AdoNet

Includes the plugin for using ADO.NET for storing cluster membership data in one of the supported databases.

Terminal window
Install-Package Microsoft.Orleans.OrleansConsulUtils

Includes the plugin for using Consul for storing cluster membership data.

Terminal window
Install-Package Microsoft.Orleans.OrleansZooKeeperUtils

Includes the plugin for using ZooKeeper for storing cluster membership data.

Terminal window
Install-Package Microsoft.Orleans.Clustering.DynamoDB

Includes the plugin for using AWS DynamoDB for storing cluster membership data.

The below packages include plugins for persisting reminders in various storage technologies.

Terminal window
Install-Package Microsoft.Orleans.Reminders.AzureStorage

Includes the plugin for using Azure Tables for storing reminders.

Terminal window
Install-Package Microsoft.Orleans.Reminders.AdoNet

Includes the plugin for using ADO.NET for storing reminders in one of the supported databases.

Terminal window
Install-Package Microsoft.Orleans.Reminders.DynamoDB

Includes the plugin for using AWS DynamoDB for storing reminders.

The below packages include plugins for persisting grain state in various storage technologies.

Terminal window
Install-Package Microsoft.Orleans.Persistence.AzureStorage

Includes the plugins for using Azure Tables or Azure Blobs for storing grain state.

Terminal window
Install-Package Microsoft.Orleans.Persistence.AdoNet

Includes the plugin for using ADO.NET for storing grain state in one of the supported databases.

Terminal window
Install-Package Microsoft.Orleans.Persistence.DynamoDB

Includes the plugin for using AWS DynamoDB for storing grain state.

The below packages include plugins for delivering streaming events.

Terminal window
Install-Package Microsoft.Orleans.OrleansServiceBus

Includes the stream provider for Azure Event Hubs.

Terminal window
Install-Package Microsoft.Orleans.Streaming.AzureStorage

Includes the stream provider for Azure Queues.

Terminal window
Install-Package Microsoft.Orleans.Streaming.SQS

Includes the stream provider for AWS SQS service.

Terminal window
Install-Package Microsoft.Orleans.OrleansGCPUtils

Includes the stream provider for GCP PubSub service.

Terminal window
Install-Package Microsoft.Orleans.OrleansCodeGenerator

Includes the run-time code generator.

Terminal window
Install-Package Microsoft.Orleans.EventSourcing

Contains a set of base types for creating grain classes with event-sourced state.

Terminal window
Install-Package Microsoft.Orleans.OrleansProviders

Contains a set of persistence and stream providers that keep data in memory. Intended for testing. In general, not recommended for production use, unless data loss in case of a silo failure is acceptable.

Terminal window
Install-Package Microsoft.Orleans.TestingHost

Includes the library for hosting silos and clients in a testing project.

Terminal window
Install-Package Microsoft.Orleans.Serialization.Bond

Includes support for Bond serializer.

Terminal window
Install-Package Microsoft.Orleans.OrleansGoogleUtils

Includes Google Protocol Buffers serializer.

Terminal window
Install-Package Microsoft.Orleans.ProtobufNet

Includes protobuf-net version of Protocol Buffers serializer.

Terminal window
Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.Counters

Windows Performance Counters implementation of Orleans Telemetry API.

Terminal window
Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI

Includes the telemetry consumer for Azure Application Insights.

Terminal window
Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic

Includes the telemetry consumer for NewRelic.

Terminal window
Install-Package Microsoft.Orleans.Transactions

Includes support for cross-grain transactions (beta).

Terminal window
Install-Package Microsoft.Orleans.Transactions.AzureStorage

Includes a plugin for persisting transaction log in Azure Table (beta).

Terminal window
Install-Package Microsoft.Orleans.CounterControl

Includes OrleansCounterControl.exe, which registers Windows performance counter categories for Orleans statistics and for deployed grain classes. Requires elevation. Can be executed in Azure as part of a role startup task.