tree: a41fb2723d238620b45d28851f430d483e417e7a [path history] [tgz]
  1. ext/
  2. Grpc.Core/
  3. Grpc.Core.Tests/
  4. Grpc.Examples/
  5. Grpc.Examples.MathClient/
  6. Grpc.Examples.MathServer/
  7. Grpc.Examples.Tests/
  8. Grpc.IntegrationTesting/
  9. Grpc.IntegrationTesting.Client/
  10. Grpc.IntegrationTesting.Server/
  11. .gitignore
  12. EXPERIMENTAL-ONLY
  13. Grpc.nuspec
  14. Grpc.sln
  15. README.md
  16. Settings.StyleCop
src/csharp/README.md

gRPC C#

A C# implementation of gRPC.

Status

This gRPC C# implementation is work-in-progress and is not expected to work yet.

  • The implementation is a wrapper around gRPC C core library
  • Code only runs under mono currently, building gRPC C core library under Windows is in progress.
  • It is very possible that some parts of the code will be heavily refactored or completely rewritten.

INSTALLATION AND USAGE: WINDOWS

  • Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored upon build.

INSTALLATION AND USAGE: LINUX & MONO

  • Compile and install the gRPC C# extension library (that will be used via P/Invoke from C#).
make grpc_csharp_ext
sudo make install_grpc_csharp_ext
  • Prerequisites for development: Mono framework, MonoDevelop (IDE)
sudo apt-get install mono-devel
sudo apt-get install monodevelop monodevelop-nunit
sudo apt-get install nunit nunit-console
  • NuGet is used to manage project's dependencies. Prior opening Grpc.sln, download dependencies using NuGet restore command:
# Import needed certicates into Mono certificate store:
mozroots --import --sync

# Download NuGet.exe http://nuget.codeplex.com/releases/
# Restore the nuget packages with Grpc C# dependencies
mono ~/Downloads/NuGet.exe restore Grpc.sln
  • Use MonoDevelop to open the solution Grpc.sln (you can also run unit tests from there).

  • After building the solution with MonoDevelop, you can use nunit-console to run the unit tests (currently only running one by one will make them pass.

nunit-console Grpc.Core.Tests.dll

CONTENTS

  • ext: The extension library that wraps C API to be more digestible by C#.
  • Grpc.Core: The main gRPC C# library.
  • Grpc.Examples: API examples for math.proto
  • Grpc.Examples.MathClient: An example client that sends some requests to math server.
  • Grpc.IntegrationTesting: Client for cross-language gRPC implementation testing (interop testing).