Zeek.Ipc 10.0.38

Zeek.Ipc

Zeek.Ipc 是面向 Avalonia 桌面应用的本机进程间协调模块。

它只负责单实例、第二实例激活转发和显式 handler 分发;它不是 RPC 框架、分布式通信、插件通信平台或服务端平台。

适用场景

  • 阻止同一用户重复启动多个应用实例。
  • 第二实例启动时把命令行参数、文件路径或 URI 转发给主实例。
  • custom protocol、文件关联或外部程序唤起应用时激活已有主实例。
  • 应用通过显式 IActivationHandler 处理本机激活请求。

安装 / 引用

发布包消费时引用:

<PackageReference Include="Zeek.Ipc" />

当前 sample 已切换为发布态 PackageReference 消费路径,包版本由根目录 Directory.Packages.props 统一管理。

快速开始

public static IReadOnlyList<ModuleDependency> Dependencies =>
    [ModuleDependency.Of<IpcModule>()];

public void ConfigureServices(ModuleContext context)
{
    context.ConfigureIpc(options =>
    {
        options.ApplicationId = "com.example.desktop";
        options.SingleInstance.Enabled = true;
    });

    context.Services.AddSingleton<IActivationHandler, OpenFileActivationHandler>();
}

Zeek.Ipc 不创建 Avalonia window,不负责置顶窗口或执行业务 deep link 路由;这些由应用层 handler 处理。

模块只通过 ModuleDependency.Of<IpcModule>() 启用,ConfigureIpc(...) 只补充 options。named pipe 使用长度前缀、payload 上限和单连接 deadline;Windows 默认限制当前用户。该通信仍是 best-effort 本机激活,不是认证、强一致或安全 RPC。

AOT / Trim

  • AOT 支持等级:Supported。
  • Trim 策略:显式注册 IActivationHandler;不扫描程序集发现 handler。
  • 反射策略:仅 DI 构造;payload JSON 使用显式 metadata 或模块内部固定 metadata。

Sample

  • ../../samples/Zeek.IpcSample/

完整文档

  • ../../docs/modules/Zeek.Ipc.md

当前限制

  • 不提供 RPC、message bus、event bus、插件通信或跨机器通信。
  • 不负责 custom protocol 或文件关联的系统注册写入。
  • 不负责 UI 窗口恢复、置顶、托盘恢复或业务 URI 路由。

No packages depend on Zeek.Ipc.

Version Downloads Last updated
10.0.42 4 07/29/2026
10.0.41 14 07/22/2026
10.0.40 9 07/22/2026
10.0.39 19 07/19/2026
10.0.38 14 07/17/2026
10.0.37 1 07/16/2026
10.0.36 5 06/29/2026
10.0.35 1 06/29/2026
10.0.31 5 06/27/2026
10.0.30 2 06/27/2026
10.0.29 2 06/26/2026
10.0.28 2 06/26/2026
10.0.27 2 06/26/2026
10.0.26 4 06/25/2026
10.0.25 3 06/24/2026