1 个仓库
Mechanisms for exchanging interface implementations between two processes to support callbacks and shared behavior.
Distinct from Interface-to-Implementation Bindings: Distinct from Interface-to-Implementation Bindings: focuses on dynamic exchange across process boundaries for callbacks, not static DI mappings.
Explore 1 awesome GitHub repository matching software engineering & architecture · Bidirectional Interface Exchanges. Refine with filters or upvote what's useful.
go-plugin 是一个用于实现插件架构的框架,其中扩展作为独立进程运行并通过 Go RPC 插件系统进行通信。它作为一个进程间通信(IPC)库和生命周期管理器,允许宿主应用程序发现、启动和监控外部二进制插件。 该框架支持跨语言插件系统,允许用不同语言编写的插件通过标准化的 RPC 协议与宿主集成。它具有双向 RPC 网桥,允许宿主和插件交换接口实现,以进行复杂的数据交换和回调。 该系统通过将插件作为独立子进程执行来提供进程隔离,确保插件崩溃不会终止宿主应用程序。它通过双向 TLS 认证和完整性验证来涵盖安全性,以及包括状态进程重新连接在内的生命周期编排,以在宿主升级期间保持连接。附加功能包括二进制发现、协议版本控制以及将插件日志和输出流同步回宿主。
Implements a bidirectional RPC bridge allowing hosts and plugins to exchange interface implementations for complex callbacks.