GithubHelp home page GithubHelp logo

grpc-dotnet's Introduction

gRPC for .NET

Preview out!

A preview of gRPC for ASP.NET Core is on NuGet. A template using the preview shipped with .NET Core 3.0 Preview 3.

See https://github.com/grpc/grpc for the official version of gRPC C# (ready for production workloads).

The Plan

We plan to implement a fully-managed version of gRPC for .NET that will be built on top of ASP.NET Core HTTP/2 server. Here are some key features:

  • API compatible with the existing gRPC C# implementation (your existing service implementations should work with minimal adjustments)
  • Fully interoperable with other gRPC implementations (in other languages and other platforms)
  • Good integration with the rest of ASP.NET Core ecosystem
  • High-performance (we plan to utilize some of the cutting edge performance features from ASP.NET Core and in .NET platform itself)
  • We plan to provide a managed .NET Core client as well (possibly with limited feature set at first)

We are committed to delivering the managed server experience Microsoft.AspNetCore.Server functionalities in ASP.NET Core 3.0 timeframe. We will strive to also deliver the mananged client experience in 3.0.

See doc/packages.md for the planned package layout for both gRPC C# native (the current official version) and the new fully-managed gRPC for ASP.NET Core.

Please note that we plan both implementations (gRPC C# native and fully-managed gRPC for .NET Core) to coexist, there are currently no plans for one implementation to replace the other one.

To start using gRPC for ASP.NET Core

Documentation and guides are coming soon! In the mean time we suggest creating a basic website using the gRPC for ASP.NET template that comes with .NET Core 3.0 and refer to the examples at https://github.com/grpc/grpc-dotnet/tree/master/examples/Server.

To develop gRPC for ASP.NET Core

Installing .NET Core SDK:

# Run this script before building the project.
./build/get-dotnet.sh or ./build/get-dotnet.ps1

Setting up local feed with unreleased Grpc.* packages:

# We may depend on unreleased Grpc.* packages.
# Run this script before building the project.
./build/get-grpc.sh or ./build/get-grpc.ps1

To build:

dotnet build Grpc.AspNetCore.sln

To run tests:

dotnet test Grpc.AspNetCore.sln

To contribute

Contributions are welcome!

General rules for contributing to the gRPC project apply for this repository.

grpc-dotnet's People

Contributors

aarnott avatar damienbod avatar davidfowl avatar dhhoang avatar jamesnk avatar jtattermusch avatar juntaoluo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.