WCF-like service model API for communication over named pipes, TCP and web sockets. .NET and Node.js and Web clients.
- async
- json serialization
- DI integration
- cancellation
- timeouts
- callbacks
- one way calls (all methods that return non-generic
Task
) - automatic reconnect
- interception
- configurable task scheduler
- client authentication and impersonation
- access to the underlying transport with
Stream
parameters - SSL
Check the tests and the sample.
// configure and start the server
_ = new ServiceHostBuilder(serviceProvider)
.UseNamedPipes(new NamedPipeSettings("computing"))
.AddEndpoint<IComputingService>()
.Build()
.RunAsync();
// configure the client
var computingClient =
new NamedPipeClientBuilder<IComputingService>("computing")
.Build();
// call a remote method
var result = await computingClient.AddFloat(1, 4, cancellationToken);
https://github.com/UiPath/coreipc/tree/master/UiPath.Rpc A more efficient version based on MessagePack.