SkillAgentSearch skills...

IpcServiceFramework

.NET Core Inter-process communication framework

Install / Use

/learn @jacqueskang/IpcServiceFramework
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

| CI build | Stable build | |----------|--------------| |Build Status|Build Status|

IpcServiceFramework

A .NET Core 3.1 based lightweight framework for efficient inter-process communication. Named pipeline and TCP support out-of-the-box, extensible with other protocols.

NuGet packages

| Name | Purpose | Status | | ---- | ------- | ------ | | JKang.IpcServiceFramework.Client.NamedPipe | Client SDK to consume IPC service over Named pipe | NuGet version | | JKang.IpcServiceFramework.Client.Tcp | Client SDK to consume IPC service over TCP | NuGet version | | JKang.IpcServiceFramework.Hosting.NamedPipe | Server SDK to run Named pipe IPC service endpoint | NuGet version | | JKang.IpcServiceFramework.Hosting.Tcp | Server SDK to run TCP IPC service endpoint | NuGet version |

Usage

  1. Create an interface as service contract and package it in an assembly to be referenced by server and client applications, for example:

    public interface IInterProcessService
    {
        string ReverseString(string input);
    }
    
  2. Implement the service in server application, for example:

    class InterProcessService : IInterProcessService
    {
        public string ReverseString(string input)
        {
            char[] charArray = input.ToCharArray();
            Array.Reverse(charArray);
            return new string(charArray);
        }
    }
    
  3. Install the following NuGet packages in server application:

    > Install-Package Microsoft.Extensions.Hosting
    > Install-Package JKang.IpcServiceFramework.Hosting.NamedPipe
    
  4. Register the service implementation and configure IPC endpoint(s):

    class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureServices(services =>
                {
                    services.AddScoped<IInterProcessService, InterProcessService>();
                })
                .ConfigureIpcHost(builder =>
                {
                    // configure IPC endpoints
                    builder.AddNamedPipeEndpoint<IInterProcessService>(pipeName: "pipeinternal");
                })
                .ConfigureLogging(builder =>
                {
                    // optionally configure logging
                    builder.SetMinimumLevel(LogLevel.Information);
                });
    }
    
  5. Install the following NuGet package in client application:

    > Install-Package JKang.IpcServiceFramework.Client.NamedPipe
    
  6. Invoke the server

    // register IPC clients
    ServiceProvider serviceProvider = new ServiceCollection()
        .AddNamedPipeIpcClient<IInterProcessService>("client1", pipeName: "pipeinternal")
        .BuildServiceProvider();
    
    // resolve IPC client factory
    IIpcClientFactory<IInterProcessService> clientFactory = serviceProvider
        .GetRequiredService<IIpcClientFactory<IInterProcessService>>();
    
    // create client
    IIpcClient<IInterProcessService> client = clientFactory.CreateClient("client1");
    
    string output = await client.InvokeAsync(x => x.ReverseString(input));
    

FAQs

Related Skills

View on GitHub
GitHub Stars371
CategoryDevelopment
Updated1mo ago
Forks77

Languages

C#

Security Score

100/100

Audited on Feb 13, 2026

No findings