DynamicGrpc 1.2.0
See the version list below for details.
dotnet add package DynamicGrpc --version 1.2.0
NuGet\Install-Package DynamicGrpc -Version 1.2.0
<PackageReference Include="DynamicGrpc" Version="1.2.0" />
paket add DynamicGrpc --version 1.2.0
#r "nuget: DynamicGrpc, 1.2.0"
// Install DynamicGrpc as a Cake Addin #addin nuget:?package=DynamicGrpc&version=1.2.0 // Install DynamicGrpc as a Cake Tool #tool nuget:?package=DynamicGrpc&version=1.2.0
grpc-curl
<img align="right" width="160px" height="160px" src="https://raw.githubusercontent.com/xoofx/grpc-curl/main/img/grpc-curl.png">
grpc-curl
is a command line tool for interacting with gRPC servers.
This tool is the .NET equivalent of the popular gRPCurl written in Golang.
NOTE:
grpc-curl
doesn't not support yet all the features thatgRPCurl
is providing.
Usage
grpc-curl
currently requires that the gRPC server has activated gRPC reflection.
./grpc-curl --json -d "{""getStatus"":{}}" http://192.168.100.1:9200 SpaceX.API.Device.Device/Handle
Will print the following result:
{
"apiVersion": 4,
"dishGetStatus": {
"deviceInfo": {
"id": "0000000000-00000000-00000000",
"hardwareVersion": "rev2_proto3",
"softwareVersion": "992cafb5-61c7-46a3-9ef7-5907c8cf90fd.uterm.release",
"countryCode": "FR",
"utcOffsetS": 1
},
"deviceState": {
"uptimeS": 667397
},
"obstructionStats": {
"fractionObstructed": 2.2786187E-06,
"wedgeFractionObstructed": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"wedgeAbsFractionObstructed": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"validS": 667070.0,
"avgProlongedObstructionIntervalS": "NaN"
},
"alerts": {
"roaming": true
},
"downlinkThroughputBps": 461012.72,
"uplinkThroughputBps": 294406.6,
"popPingLatencyMs": 30.35,
"boresightAzimuthDeg": 0.7464048,
"boresightElevationDeg": 65.841354,
"gpsStats": {
"gpsValid": true,
"gpsSats": 12
}
}
}
Usage API
The functionality of grpc-curl
is also accessible through the NuGet package DynamicGrpc.
var channel = GrpcChannel.ForAddress("http://192.168.100.1:9200");
// Fetch reflection data from server
var client = await DynamicGrpcClient.FromServerReflection(channel);
// Call the method `Handle` on the service `SpaceX.API.Device.Device`
var result = await client.AsyncUnaryCall("SpaceX.API.Device.Device", "Handle", new Dictionary<string, object>()
{
{ "get_status", new Dictionary<string, object>() }
});
Features
- Build on top of the
DynamicGrpc
library available as a separate NuGet package. - Supports all gRPC calling modes (unary, client streaming, server streaming, full-duplex).
- Supports for plain Protocol Buffers naming conventions and JSON.
- Supports for
google.protobuf.Any
: The type has to be encoded - and is decoded with the shadow property@type
on a dictionary (e.g@type = "type.googleapis.com/YourTypeName"
).
Binaries
If you have dotnet 6.0 installed, you can install this tool via NuGet:
dotnet tool install --global grpc-curl --version 1.2.0
Debian and macOS packages for x64/am64 will be released later.
License
This software is released under the BSD-Clause 2 license.
Author
Alexandre Mutel aka xoofx.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Google.Protobuf (>= 3.19.3)
- Grpc.Core (>= 2.43.0)
- Grpc.Net.Client (>= 2.41.0)
- Grpc.Reflection (>= 2.43.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DynamicGrpc:
Package | Downloads |
---|---|
MSQP.Shared
Queue environment for Codecamp Queue Platform |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on DynamicGrpc:
Repository | Stars |
---|---|
serverlessworkflow/synapse
Serverless Workflow Management System (WFMS)
|