For a library for implementing gRPC in C#, the strongest matches are grpc/grpc-dotnet (This is the official, high-performance implementation of gRPC for), protobuf-net/protobuf-net (This library provides a code-first approach to implementing gRPC) and dotnet/aspnetcore (This is the official repository for ASP). cysharp/magiconion and openzipkin/zipkin round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best c sharp grpc libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This project is a .NET implementation of the gRPC framework, providing a system for executing functions on remote servers as if they were local calls. It serves as a high-performance remote procedure call (RPC) framework that utilizes HTTP/2 for service connectivity and binary communication protocols to ensure efficient data exchange. The implementation includes a gRPC-Web proxy, which acts as a translation layer to enable browser-based applications to communicate with gRPC services through web-compatible requests. It further supports the creation of HTTP/2 service meshes to connect distribut
This is the official, high-performance implementation of gRPC for .NET, providing native integration with ASP.NET Core, full support for Protocol Buffers, streaming, and extensive observability features.
protobuf-net is a .NET library that serializes and deserializes objects using the Protocol Buffers binary format for efficient data exchange. It provides a code-first gRPC service framework, allowing developers to define service contracts directly from existing C# classes without writing separate .proto files. The library is nullable-aware, encoding null values in collections and nullable scalars using wrapper messages to distinguish null from default zero values, and includes an ahead-of-time serializer generator that compiles serializer code at build time to eliminate runtime code generati
This library provides a code-first approach to implementing gRPC services in .NET, offering a specialized alternative to the standard contract-first workflow while supporting core gRPC functionality.
This project is a comprehensive server-side web framework designed for building scalable web applications and services. It provides a structured, component-based architecture that integrates a dependency injection container to manage service lifecycles and promote loose coupling across the software stack. The framework enables the creation of interactive client-side interfaces through a component-based model that synchronizes state directly with the browser. The platform distinguishes itself through a highly configurable middleware-based request pipeline and an attribute-based routing engine
This is the official repository for ASP.NET Core, which includes the native, high-performance gRPC implementation for .NET that provides full support for Protocol Buffers, streaming, and deep integration with the .NET ecosystem.
MagicOnion is a .NET RPC framework used to build type-safe remote procedure call services using shared interfaces for communication between servers and clients. It functions as a binary serialization framework and a distributed service orchestrator, providing a network layer for low-latency streaming and real-time data exchange. The project distinguishes itself through an AOT-compatible network client that uses source generators to support ahead-of-time compilation in restricted runtime environments. It enables bidirectional communication and real-time data streaming, allowing servers and mul
MagicOnion is a specialized RPC framework for .NET that leverages gRPC as its underlying transport, providing a type-safe, interface-driven approach to building services and clients with robust streaming support.
Zipkin is an open-source distributed tracing system designed to collect, store, and visualize timing data across complex service architectures. It provides a platform for monitoring request lifecycles, enabling developers to identify latency bottlenecks and performance issues by tracking operations as they move through heterogeneous service environments. The system distinguishes itself through a standardized data model and a pluggable storage architecture that supports various backend databases. It utilizes sampling strategies to manage telemetry volume and employs asynchronous collection met
This is a distributed tracing and observability system used to monitor services, but it is not a gRPC framework for implementing services or clients.
gRPC Java is a library for building distributed systems that enables client and server applications to interact through remote procedure calls. It uses protocol buffers to define service interfaces and exchange structured data, providing a framework for connecting microservices across different environments. The framework utilizes an asynchronous networking foundation to manage concurrent connections and relies on a multiplexed binary protocol to facilitate efficient data exchange. It supports pluggable transport interceptors, allowing for the injection of custom logic into the request-respon
This is a gRPC implementation for the Java ecosystem, which does not provide the native ASP.NET Core integration or C# tooling required for your .NET project.
The OpenTelemetry .NET SDK is a set of libraries used to generate and export traces, metrics, and logs from .NET applications. It functions as an application performance monitoring tool and a distributed tracing implementation, providing the necessary infrastructure to capture system metrics and request paths across microservices. The project includes a zero-code instrumentation library that automatically captures telemetry from popular .NET frameworks without requiring manual changes to source code. It uses a provider-based API abstraction to decouple instrumentation from specific backend im
This is an observability and telemetry instrumentation library for .NET applications, not a framework for building or consuming gRPC services.
gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl
This is the core C++ implementation of the gRPC protocol, which serves as the underlying foundation for .NET's gRPC capabilities but is not the native .NET framework or library the visitor needs for C# development.
Jaeger is a distributed tracing platform used for collecting, storing, and visualizing request flows across microservices. It identifies performance bottlenecks and errors by tracking requests as they move through multiple service boundaries. The system includes telemetry collectors, a multi-tenant backend, and a trace visualizer. The platform provides a multi-tenant tracing infrastructure that isolates data and queries by tenant to support shared environments. It supports standardized telemetry ingestion via the OpenTelemetry Protocol over gRPC and HTTP. To manage storage costs and overhead,
This is a distributed tracing and observability platform that consumes gRPC telemetry, rather than a framework for building and hosting your own gRPC services and clients.
Dapr is a distributed application runtime that provides a sidecar-based infrastructure layer for building resilient microservices and event-driven applications. By utilizing a sidecar proxy pattern, it abstracts complex infrastructure tasks into standardized, network-accessible APIs, allowing developers to focus on application logic while the runtime handles service discovery, state management, and secure communication. The platform distinguishes itself through a pluggable component architecture and language-agnostic design, enabling services written in any programming language to interact wi
Dapr is a distributed application runtime that provides infrastructure-level abstractions for microservices, but it is not a gRPC framework for .NET; it is a sidecar-based platform that you would use alongside gRPC services rather than a library for implementing them.
gRPC-Web is a JavaScript client library that enables browser applications to call gRPC services through an HTTP proxy, using Protocol Buffers for serialization. It provides a browser-based gRPC client that supports unary, server-streaming, and bidirectional streaming RPCs, along with a code generator that produces JavaScript and TypeScript client stubs from .proto service definitions. The library includes an interceptor framework for attaching cross-cutting logic like authentication and retries to client calls, and supports setting Unix timestamp deadlines on RPCs for server-side timeout enfo
This is a JavaScript client library designed for browser-based applications to communicate with gRPC services, rather than a .NET framework for implementing gRPC services and clients on the server side.
Finagle is a distributed service mesh and fault-tolerant remote procedure call framework. It provides a protocol-agnostic network library that implements a consistent interface for different network standards, including HTTP and Thrift. The project distinguishes itself by integrating a fault tolerance library that prevents cascading failures through circuit breaking and timeout management. It also implements a distributed tracing system to track requests across network boundaries and visualize call graphs. The framework covers several core capability areas, including dynamic service discover
This is a Scala-based RPC framework for the JVM, which does not provide the native .NET integration or C# support required for building gRPC services within the .NET ecosystem.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| grpc/grpc-dotnet | 4.5K | C# | Apache-2.0 | |
| protobuf-net/protobuf-net | 4.9K | C# | other | |
| dotnet/aspnetcore | 38.1K | C# | MIT | |
| cysharp/magiconion | 4.4K | C# | MIT | |
| openzipkin/zipkin | 17.4K | Java | Apache-2.0 | |
| grpc/grpc-java | 12K | Java | Apache-2.0 | |
| open-telemetry/opentelemetry-dotnet | 3.7K | C# | apache-2.0 | |
| grpc/grpc | 44.9K | C++ | Apache-2.0 | |
| jaegertracing/jaeger | 22.9K | Go | Apache-2.0 | |
| dapr/dapr | 25.5K | Go | apache-2.0 |