{"id":13451198,"url":"https://github.com/grpc/grpc-dotnet","last_synced_at":"2025-09-09T20:22:26.143Z","repository":{"id":37431292,"uuid":"159548561","full_name":"grpc/grpc-dotnet","owner":"grpc","description":"gRPC for .NET","archived":false,"fork":false,"pushed_at":"2025-04-25T04:20:32.000Z","size":8430,"stargazers_count":4327,"open_issues_count":161,"forks_count":797,"subscribers_count":120,"default_branch":"master","last_synced_at":"2025-05-05T20:51:51.752Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grpc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-28T18:44:09.000Z","updated_at":"2025-05-05T20:29:44.000Z","dependencies_parsed_at":"2024-01-18T01:30:03.701Z","dependency_job_id":"f274b581-ece1-416e-897c-ec8d8b922d9a","html_url":"https://github.com/grpc/grpc-dotnet","commit_stats":{"total_commits":974,"total_committers":54,"mean_commits":"18.037037037037038","dds":"0.30184804928131415","last_synced_commit":"b1df3e4c76792212a0401e1ae17114867fd6663b"},"previous_names":[],"tags_count":103,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc%2Fgrpc-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc%2Fgrpc-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc%2Fgrpc-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc%2Fgrpc-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grpc","download_url":"https://codeload.github.com/grpc/grpc-dotnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253929359,"owners_count":21985802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T07:00:49.658Z","updated_at":"2025-09-09T20:22:26.129Z","avatar_url":"https://github.com/grpc.png","language":"C#","funding_links":[],"categories":["others","C\\#","C#","C# #","Official Libraries and Tools","RPC","Identifiers"],"sub_categories":["GUI - other"],"readme":"# gRPC for .NET\n\ngRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.\n\ngRPC functionality for .NET Core 3.0 or later includes:\n\n* [Grpc.AspNetCore](https://www.nuget.org/packages/Grpc.AspNetCore) \u0026ndash; An ASP.NET Core framework for hosting gRPC services. gRPC on ASP.NET Core integrates with standard ASP.NET Core features like logging, dependency injection (DI), authentication and authorization.\n* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client) \u0026ndash; A gRPC client for .NET Core that builds upon the familiar `HttpClient`. The client uses new HTTP/2 functionality in .NET Core.\n* [Grpc.Net.ClientFactory](https://www.nuget.org/packages/Grpc.Net.ClientFactory) \u0026ndash; gRPC client integration with `HttpClientFactory`. The client factory allows gRPC clients to be centrally configured and injected into your app with DI.\n\nFor more information, see [An introduction to gRPC on .NET](https://docs.microsoft.com/aspnet/core/grpc/).\n\n## gRPC for .NET is now the recommended implementation!\n\nStarting from May 2021, gRPC for .NET is the recommended implemention of gRPC for C#. The original [gRPC for C#](https://github.com/grpc/grpc/tree/master/src/csharp) implementation (distributed as the `Grpc.Core` nuget package) is now in maintenance mode and will be deprecated in the future.\nSee [blogpost](https://grpc.io/blog/grpc-csharp-future/) for more details.\n\n## To start using gRPC for .NET\n\nThe best place to start using gRPC for .NET is the gRPC template that comes with .NET Core 3.0 or later. Use the template to [create a gRPC service website and client](https://docs.microsoft.com/aspnet/core/tutorials/grpc/grpc-start).\n\nFor additional examples of using gRPC in .NET refer to https://github.com/grpc/grpc-dotnet/tree/master/examples.\n\n## gRPC NuGet feed\n\nOfficial versions of gRPC are published to [NuGet.org](https://www.nuget.org/profiles/grpc-packages). This is the recommended place for most developers to get gRPC packages.\n\nNightly versions of gRPC for ASP.NET Core are published to the gRPC NuGet repository at https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev. It is recommended to use a nightly gRPC package if you are using a nightly version of .NET Core, and vice-versa. There may be incompatibilities between .NET Core and gRPC for ASP.NET Core if a newer version of one is used with an older version of the other.\n\nTo use the gRPC NuGet repository and get the latest packages from it, place a `NuGet.config` file with the gRPC repository setup in your solution folder:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cconfiguration\u003e\n    \u003cpackageSources\u003e\n        \u003c!-- Add this repository to the list of available repositories --\u003e\n        \u003cadd key=\"gRPC repository\" value=\"https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev\" /\u003e\n    \u003c/packageSources\u003e\n\u003c/configuration\u003e\n```\n\nAdditional instructions for configuring a project to use a custom NuGet repository are available at [Changing NuGet configuration settings](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior#changing-config-settings).\n\n## To develop gRPC for ASP.NET Core\n\nInstalling .NET Core SDK:\n```\n# Run this script before building the project.\n./build/get-dotnet.sh or ./build/get-dotnet.ps1\n```\n\nSet up the development environment to use the installed .NET Core SDK:\n```\n# Source this script to use the installed .NET Core SDK.\nsource ./activate.sh or . ./activate.ps1\n```\nTo launch Visual Studio with the installed SDK:\n```\n# activate.sh or activate.ps1 must be sourced first, see previous step\nstartvs.cmd\n```\n\nTo build from the command line:\n```\ndotnet build Grpc.DotNet.slnx\n```\n\nTo run tests from the command line:\n```\ndotnet test Grpc.DotNet.slnx\n```\n\n### Alternative implementation using Code-First (external library)\n\nAn alternative way to use gRPC in .NET is to define the Protobuf contracts directly in C# using [protobuf-net](https://github.com/protobuf-net/protobuf-net.Grpc).\n\nFor more information, see the documentation on [learn.microsoft.com](https://learn.microsoft.com/aspnet/core/grpc/code-first) or the [protobuf-net.Grpc website](https://protobuf-net.github.io/protobuf-net.Grpc/).\n\n## To contribute\n\nContributions are welcome!\n\nGeneral rules for [contributing to the gRPC project](https://github.com/grpc/grpc/blob/master/CONTRIBUTING.md) apply for this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrpc%2Fgrpc-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrpc%2Fgrpc-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrpc%2Fgrpc-dotnet/lists"}