dotnet-echo 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global dotnet-echo --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local dotnet-echo --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=dotnet-echo&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package dotnet-echo --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Icon dotnet-echo

Version Downloads License CI Status CI Version

Installing or updating (same command can be used for both):

dotnet tool update -g dotnet-echo

Usage:

> dotnet echo -?
echo
  A trivial program that echoes whatever is sent to it via HTTP or gRPC

Usage:
  echo [options] [<endpoint>...]

Arguments:
  <endpoint>  Endpoint to listen on such as https://127.0.0.0:8080/ [default: https://127.0.0.1:4242/]

Options:
  -?, -h, --help  Show help and usage information

The program will automatically check for updates once a day and recommend updating if there is a new version available.

The service supports gRPC too, with echo.proto:

syntax = "proto3";

service chamber {
  rpc echo (message) returns (message);
}

message message {
  string payload = 1;
}

Since gRPC needs to use HTTP/2, it will use the defined prefix port + 1 (i.e. if you specify http://127.0.0.1:8080, the gRPC endpoint will be available at http://127.0.0.1:8081).

Example of a .NET client to run echo in the chamber service:

<Project>
  ...
  <ItemGroup>
    <PackageReference Include="Google.Protobuf" Version="*" />
    <PackageReference Include="Grpc.Net.Client" Version="*" />
    <PackageReference Include="Grpc.Tools" Version="*" />
  </ItemGroup>
  <ItemGroup>
    <Protobuf Include="echo.proto" GrpcServices="Client" />
  </ItemGroup>
</Project>
var channel = GrpcChannel.ForAddress("http://localhost:8081");
var service = new chamber.chamberClient(channel);

var response = await service.echoAsync(new message { Payload = "Hello World" }, cancellationToken: cancellation);

Console.WriteLine(response.Payload);

An example of the output during execution:

And running on Ubuntu:

This package has no dependencies.

Version Downloads Last updated
1.2.0 114 10/13/2021
1.1.2 89 8/24/2021
1.0.0 224 7/10/2021
0.6.0 98 5/22/2021
0.5.0 141 5/20/2021
0.4.2 132 5/19/2021
0.4.1 144 5/19/2021