# gRPC ## ๐Ÿ“˜ Resources - [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc) - [gRPC for WCF developers e-book](https://dotnet.microsoft.com/download/e-book/grpc-for-wcf-devs/pdf) ## ๐Ÿ“ Articles - [gRPC Quick start](https://grpc.io/docs/languages/csharp/quickstart/) - [gRPC Basics tutorial](https://grpc.io/docs/languages/csharp/basics/) - [Language Guide (proto3)](https://developers.google.com/protocol-buffers/docs/proto3) - [Protocol Buffer Basics: C#](https://developers.google.com/protocol-buffers/docs/csharptutorial) - [gRPC Style Guide](https://developers.google.com/protocol-buffers/docs/style) - [Introduction to gRPC on .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/) - [Protobuf scalar data types](https://learn.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/protobuf-data-types) - [gRPC services with C#](https://docs.microsoft.com/en-us/aspnet/core/grpc/basics) - [gRPC services with ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/aspnetcore) - [Create gRPC services and methods](https://docs.microsoft.com/en-us/aspnet/core/grpc/services) - [Call gRPC services with the .NET client](https://docs.microsoft.com/en-us/aspnet/core/grpc/client) - [gRPC client factory integration in .NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/clientfactory) - [gRPC and C# 8 Async stream](https://laurentkempe.com/2019/09/18/gRPC-and-csharp-8-Async-stream/) - [gRPC and C# 8 Async stream cancellation](https://laurentkempe.com/2019/09/25/gRPC-and-csharp-8-Async-stream-cancellation/) - [Code first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) - [Create JSON Web APIs from gRPC](https://docs.microsoft.com/en-us/aspnet/core/grpc/httpapi) - [Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5](https://medium.com/aspnetrun/using-grpc-in-microservices-for-building-a-high-performance-interservice-communication-with-net-5-11f3e5fa0e9d) - [Generate Links To ASP.NET Core Map Endpoints](https://khalidabuhakmeh.com/generate-links-to-aspnet-core-map-endpoints) - [Building a simple Client-Server Interaction with gRPC in ASP.NET Core](https://referbruv.com/blog/posts/building-a-simple-client-server-interaction-with-grpc-in-aspnet-core) - [How to choose between protobuf-csharp-port and protobuf-net](https://stackoverflow.com/questions/2522376/how-to-choose-between-protobuf-csharp-port-and-protobuf-net) - [gRPC performance benchmark in ASP.NET Core 3](https://pawelkmiec.net/2019/11/17/gRPC-performance-benchmark.html) - [Trying out gRPC in ASP.NET Core 3](https://pawelkmiec.net/2019/10/18/gRPC-ASP.NET-Core.html) - [Getting Started protobuf-net.Grpc](https://protobuf-net.github.io/protobuf-net.Grpc/gettingstarted) - [gRPC & ASP.NET Core 3.1: Resiliency with Polly](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-resiliency-with-polly/) - [gRPC & ASP.NET Core 3.1: Global error Handling in gRPC & gRPC status codes](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-global-error-handling-in-grpc-grpc-status-codes/) - [gRPC & ASP.NET Core 3.1: Message validation](https://anthonygiretti.com/2020/05/18/grpc-asp-net-core-3-1-model-validation/) - [gRPC & ASP.NET Core 3.1: Whatโ€™s gRPC-web & how to create a gRPC-web service ?](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-whats-grpc-web-how-to-create-a-grpc-web-service/) - [The state of gRPC in the browser](https://grpc.io/blog/state-of-grpc-web/) - [gRPC & ASP.NET Core 3.1: How to create a gRPC service ?](https://anthonygiretti.com/2020/03/25/grpc-asp-net-core-3-1-how-to-create-a-grpc-service/) - [gRPC & ASP.NET Core 3.1: Whatโ€™s gRPC ? (introduction)](https://anthonygiretti.com/2020/03/23/grpc-asp-net-core-3-1-whats-grpc-introduction/) - [gRPC & ASP.NET Core 3.1: How to create a gRPC-web client ? Examples with Angular 8 and HttpClient](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-how-to-create-a-grpc-web-client-examples-with-angular-8-and-httpclient/) - [gRPC and ASP.NET Core 5 Discover gRPCui the GUI alternative to gRPCurl](https://anthonygiretti.com/2021/01/17/grpc-asp-net-core-5-discover-grpcui-the-gui-alternative-to-grpcurl/) - [gRPC and ASP.NET Core 5 Add a gRPC service reference from a remote protobuf over Route-To-Code](https://anthonygiretti.com/2021/01/25/grpc-asp-net-core-5-add-a-grpc-service-reference-from-a-remote-protobuf-over-route-to-code/) - [gRPC and ASP.NET Core 5 Test gRPC endpoints with gRPCurl](https://anthonygiretti.com/2021/01/13/grpc-asp-net-core-5-test-grpc-endpoints-with-grpcurl/) - [Whatโ€™s new for gRPC in .NET 6](https://devblogs.microsoft.com/dotnet/grpc-in-dotnet-6/) - [gRPC client-side load balancing in .NET](https://rebin.dev/post/grpc-client-side-load-balancing-indotnet/) - [gRPC with ASP.NET Core](https://rafaelldi.blog/posts/grpc-with-asp-net-core/) - [Protobuf In C# .NET โ€“ Part 1 โ€“ Getting Started](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-1-getting-started/) - [Protobuf In C# .NET โ€“ Part 2 โ€“ Serializing/Deserializing](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-2-serializing-deserializing/) - [Code-first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) - [gRPC Server Reflection in the .NET world](https://martinbjorkstrom.com/posts/2020-07-08-grpc-reflection-in-net) - [Announcing gRPC JSON transcoding for .NET](https://devblogs.microsoft.com/dotnet/announcing-grpc-json-transcoding-for-dotnet/) - [Postman Now Supports gRPC](https://blog.postman.com/postman-now-supports-grpc/) - [.NET 6: Enhance your gRPC client logs with a generic logging interceptor](https://anthonygiretti.com/2022/08/08/net-6-enhance-your-grpc-client-logs-with-a-generic-logging-interceptor/) - [gRPC client-side load balancing](https://docs.microsoft.com/en-us/aspnet/core/grpc/loadbalancing) - [ASP.NET Core 6: Here is the best way to pass a JWT in the headers of a gRPC client](https://anthonygiretti.com/2022/08/15/asp-net-core-6-here-is-the-best-way-to-pass-a-jwt-in-the-headers-of-a-grpc-client/) - [ASP.NET Core 6: Handling gRPC exception correctly server side](https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/) - [Testing ASP.NET Core gRPC services in JetBrains Rider](https://andrewlock.net/testing-aspnetcore-grpc-services-in-jetbrains-rider/) - [Sharing gRPC ProtoBuf contracts using a REST endpoint](https://devblogs.microsoft.com/premier-developer/sharing-grpc-protobuf-contracts-using-a-rest-endpoint/) - [How to share Protobuf definitions for gRPC Services?](https://mrico.eu/how-to-share-protobuf-for-grpc-services/) - [Sharing gRPC protobufs between microservices](https://jozefcipa.com/blog/sharing-grpc-protobufs-between-microservices/) โญ - [Packaging Generated Code for gRPC Services](https://www.bugsnag.com/blog/libraries-for-grpc-services/) โญ - [](https://medium.com/namely-labs/how-we-build-grpc-services-at-namely-52a3ae9e7c35) ## ๐Ÿ“น Videos - [Bidirectional Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=wY4nMSUF9e0) - [Client Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=DNxdvRQ4qRQ) - [gRPC Server & Unary Calls | gRPC in .NET 5](https://www.youtube.com/watch?v=hp5FTB7PI9s) - [Server Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=F2T6xNRoa1E) - [Intro to gRPC - Step by Step](https://www.youtube.com/watch?v=SRjIp96Qox0) - [Mark Gravell Talking Between Services with gRPC and Other Tricks - .NET Oxford - September 2019](https://www.youtube.com/watch?v=ZM0XeSjuwbc) - [Talking between services with gRPC, and other tricks - Marc Gravell](https://www.youtube.com/watch?v=W-bULzA0ki8) - [Embracing gRPC in .NET, by Irina Scurtu](https://www.youtube.com/watch?v=d8S9jh6Xj6Y) - [gRPC Client/Server Bi-Directional Streaming with C# | Visual Studio 2019](https://www.youtube.com/watch?v=6fiSsxEY4dg) - [Nate Barbettini โ€“ API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg) - [High-performance services with gRPC: What's new in .NET 6](https://www.youtube.com/watch?v=CXH_jEa8dUw) - [gRPC Load Balancing on Kubernetes - Jan Tattermusch, Google (Intermediate Skill Level)](https://www.youtube.com/watch?v=F2znfxn_5Hg) - [ASP.NET Community Standup - gRPC Updates in .NET 7](https://www.youtube.com/watch?v=ds27V6rNick) - [Where should you use gRPC? And where NOT to use it!](https://youtu.be/4SuFtQV8RCk) - [High-performance services with gRPC: What's new in .NET 7 | .NET Conf 2022](https://www.youtube.com/watch?v=et_2NBk4N4Y) - [gRPC Error handling in gRPC Bidirectional streams](https://www.youtube.com/watch?v=IT4OfN27D4c) ## ๐Ÿ“ฆ Libraries - [grpc/grpc-dotnet](https://github.com/grpc/grpc-dotnet) - gRPC for .NET - [protobuf-net/protobuf-net.Grpc](https://github.com/protobuf-net/protobuf-net.Grpc) - GRPC bindings for protobuf-net and grpc-dotnet - [protobuf-net/protobuf-net](https://github.com/protobuf-net/protobuf-net) - Protocol Buffers library for idiomatic .NET - [Utils.Grpc.Mediator](https://github.com/gbauso/grpc_microservices/tree/master/lib/Utils.Grpc.Mediator/src/Utils.Grpc.Mediator) - [Cysharp/MagicOnion](https://github.com/Cysharp/MagicOnion) - Unified Realtime/API framework for .NET platform and Unity. - [AnthonyGiretti/grpc-aspnetcore-validator](https://github.com/AnthonyGiretti/grpc-aspnetcore-validator) - Simple request message validator for grpc.aspnetcore - [grpc-ecosystem/grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) - gRPC to JSON proxy generator following the gRPC HTTP spec - [bufbuild/buf](https://github.com/bufbuild/buf) - A new way of working with Protocol Buffers. ## ๐Ÿš€ Samples - [aspnetrun/run-aspnet-grpc](https://github.com/aspnetrun/run-aspnet-grpc) - Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5. See gRPC Microservices and Step by Step Implementation on .NET Course w/ discount - [jtattermusch/grpc-loadbalancing-kubernetes-examples](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples) - gRPC Load Balancing on Kubernetes examples - [wicharypawel/net-core-grpc-load-balance](https://github.com/wicharypawel/net-core-grpc-load-balance) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design.