GRPC bindings for protobuf-net and grpc-dotnet

View project on GitHub

Package/Project Layout

protobuf-net.Grpc is split over several projects:


You will not usually reference this directly. This is the shared core and contains all the code that isn’t tied to a specific client/server implementation, and it targets all runtimes. It does not have any expensive downstream dependencies and is entirely managed. It contains all of the code related to clients (both the managed and unmanaged client APIs share a common ChannelBase abstraction).


This is for using gRPC as a server with the ASP.NET Core 3.1 implementation. It takes a dependency on Grpc.AspNetCore.Server and Microsoft.AspNetCore.App (although you’ll already have the latter if you’re hosting in ASP.NET Core). It only works on .NET Core 3.1 (or above).


This is for using gRPC as a client or server using the unmanaged/native binaries via Grpc.Core (specifically, the Channel API). Like protobuf-net.Grpc, it works on .NET Standard 2.0 or .NET Framework 4.6.1 (or above).

(caveat: server API not yet implemented for protobuf-net.Grpc.Native)