Microsoft.Orleans.Serialization.Protobuf
10.1.0
Prefix Reserved
dotnet add package Microsoft.Orleans.Serialization.Protobuf --version 10.1.0
NuGet\Install-Package Microsoft.Orleans.Serialization.Protobuf -Version 10.1.0
<PackageReference Include="Microsoft.Orleans.Serialization.Protobuf" Version="10.1.0" />
<PackageVersion Include="Microsoft.Orleans.Serialization.Protobuf" Version="10.1.0" />
<PackageReference Include="Microsoft.Orleans.Serialization.Protobuf" />
paket add Microsoft.Orleans.Serialization.Protobuf --version 10.1.0
#r "nuget: Microsoft.Orleans.Serialization.Protobuf, 10.1.0"
#:package Microsoft.Orleans.Serialization.Protobuf@10.1.0
#addin nuget:?package=Microsoft.Orleans.Serialization.Protobuf&version=10.1.0
#tool nuget:?package=Microsoft.Orleans.Serialization.Protobuf&version=10.1.0
Microsoft Orleans Serialization for Protobuf
Introduction
Microsoft Orleans Serialization for Protobuf provides Protocol Buffers (Protobuf) serialization support for Microsoft Orleans using Google.Protobuf. This package integrates Google's official Google.Protobuf library with Orleans, allowing you to use Protocol Buffers messages in your grain interfaces and implementations.
Getting Started
To use this package, install it via NuGet:
dotnet add package Microsoft.Orleans.Serialization.Protobuf
Example - Configuring Protobuf Serialization
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Orleans.Hosting;
using Orleans.Serialization;
var builder = Host.CreateApplicationBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder
.UseLocalhostClustering()
// Configure Protobuf as a serializer
.AddSerializer(serializerBuilder => serializerBuilder.AddProtobufSerializer());
});
// Run the host
await builder.RunAsync();
Using Protobuf Types with Orleans
This package supports types generated from .proto files using Google.Protobuf. For detailed information on creating Protobuf messages and configuring your project, see Create Protobuf messages for .NET apps.
Once you have defined your Protobuf messages and configured code generation, you can use them directly in your grain interfaces:
using Orleans;
using MyApp.Models;
public interface IMyGrain : IGrainWithStringKey
{
Task<MyProtobufClass> GetData();
Task SetData(MyProtobufClass data);
}
public class MyGrain : Grain, IMyGrain
{
private MyProtobufClass _data;
public Task<MyProtobufClass> GetData() => Task.FromResult(_data);
public Task SetData(MyProtobufClass data)
{
_data = data;
return Task.CompletedTask;
}
}
Note: Google.Protobuf collection types (RepeatedField<T>, MapField<TKey, TValue>, and ByteString) are automatically supported.
Documentation
For more comprehensive documentation, please refer to:
- Create Protobuf messages for .NET apps - Official guide for working with Protobuf in .NET
- Microsoft Orleans Documentation
- Orleans Serialization
Feedback & Contributing
- If you have any issues or would like to provide feedback, please open an issue on GitHub
- Join our community on Discord
- Follow the @msftorleans Twitter account for Orleans announcements
- Contributions are welcome! Please review our contribution guidelines
- This project is licensed under the MIT license
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Google.Protobuf (>= 3.33.5)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 4.5.0)
- Microsoft.CodeAnalysis.Workspaces.Common (>= 4.5.0)
- Microsoft.DotNet.PlatformAbstractions (>= 3.1.6)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.DependencyModel (>= 8.0.2)
- Microsoft.Extensions.ObjectPool (>= 8.0.24)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Orleans.Analyzers (>= 10.1.0)
- Microsoft.Orleans.CodeGenerator (>= 10.1.0)
- Microsoft.Orleans.Serialization (>= 10.1.0)
- System.Collections.Immutable (>= 8.0.0)
- System.IO.Hashing (>= 10.0.3)
- System.IO.Pipelines (>= 8.0.0)
- System.Text.Json (>= 8.0.5)
-
net10.0
- Google.Protobuf (>= 3.33.5)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 5.0.0)
- Microsoft.CodeAnalysis.Workspaces.Common (>= 5.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.DependencyModel (>= 10.0.3)
- Microsoft.Extensions.ObjectPool (>= 10.0.3)
- Microsoft.Extensions.Options (>= 10.0.3)
- Microsoft.Orleans.Analyzers (>= 10.1.0)
- Microsoft.Orleans.CodeGenerator (>= 10.1.0)
- Microsoft.Orleans.Serialization (>= 10.1.0)
- System.IO.Hashing (>= 10.0.3)
-
net8.0
- Google.Protobuf (>= 3.33.5)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 4.5.0)
- Microsoft.CodeAnalysis.Workspaces.Common (>= 4.5.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.DependencyModel (>= 8.0.2)
- Microsoft.Extensions.ObjectPool (>= 8.0.24)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Orleans.Analyzers (>= 10.1.0)
- Microsoft.Orleans.CodeGenerator (>= 10.1.0)
- Microsoft.Orleans.Serialization (>= 10.1.0)
- System.IO.Hashing (>= 10.0.3)
- System.IO.Pipelines (>= 8.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Microsoft.Orleans.Serialization.Protobuf:
| Package | Downloads |
|---|---|
|
FunctionTestHost
Host for integration testing Azure Isolated Functions |
|
|
Microsoft.AutoGen.RuntimeGateway.Grpc
A programming framework for agentic AI |
|
|
Orleans.Streaming.EventStore
EventStore Grpc client implementation of streaming for Microsoft Orleans Streaming. |
|
|
FunctionTestHost.ServiceBus
Host for integration testing Azure Isolated Functions |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.0 | 3,686 | 4/14/2026 |
| 10.0.1 | 15,475 | 2/7/2026 |
| 10.0.0 | 1,923 | 1/20/2026 |
| 10.0.0-rc.2 | 376 | 12/31/2025 |
| 9.2.1 | 57,151 | 7/16/2025 |
| 9.2.0 | 1,482 | 7/14/2025 |
| 9.2.0-preview3 | 593 | 6/10/2025 |
| 9.2.0-preview2 | 197 | 6/4/2025 |
| 9.2.0-preview1 | 408 | 4/4/2025 |
| 9.1.2 | 42,192 | 2/13/2025 |
| 9.0.1 | 46,391 | 11/23/2024 |
| 9.0.0 | 1,337 | 11/14/2024 |
| 8.2.0 | 52,244 | 7/12/2024 |
| 8.2.0-preview1 | 198 | 5/22/2024 |
| 8.1.0 | 32,238 | 4/17/2024 |
| 8.1.0-preview3 | 263 | 3/11/2024 |
| 7.2.7 | 234 | 10/15/2024 |
| 7.2.6 | 5,336 | 3/9/2024 |