文件名称:go-plugin:RPC上的Golang插件系统
文件大小:115KB
文件格式:ZIP
更新时间:2024-03-31 08:55:08
系统开源
通过RPC转到插件系统 go-plugin是基于RPC的Go(golang)插件系统。 这是HashiCorp工具使用超过4年的插件系统。 当最初为创建时,它又被 , 和。 虽然插件系统是通过RPC进行的,但目前仅设计为在本地[可靠]网络上工作。 不支持通过真实网络的插件,这将导致意外行为。 该插件系统已在许多不同项目的数百万台机器上使用,并且经过了严格的测试,可以投入生产。 特征 HashiCorp插件系统支持许多功能: 插件是Go接口的实现。 这使编写和使用插件感觉很自然。 对插件作者:您只需实现一个接口,就好像它将在同一进程中运行一样。 对于插件用户:您只需在接口上使用和调用函数,就好像它在同一进程中一样。 该插件系统处理之间的通信。 跨语言支持。 几乎每种主要语言都可以编写(和使用)插件。 该库支持通过提供插件。 基于gRPC的插件使插件可以用任何语言编写。 支持复杂的参
【文件预览】:
go-plugin-master
----error.go(567B)
----server_test.go(4KB)
----plugin.go(2KB)
----go.mod(475B)
----error_test.go(441B)
----grpc_broker.go(10KB)
----client.go(29KB)
----client_test.go(28KB)
----go.sum(8KB)
----grpc_controller.go(584B)
----log_entry.go(2KB)
----rpc_client_test.go(2KB)
----mux_broker.go(5KB)
----grpc_stdio.go(6KB)
----server_mux.go(715B)
----grpc_server.go(4KB)
----rpc_server.go(5KB)
----grpc_client_test.go(3KB)
----protocol.go(1KB)
----examples()
--------bidirectional()
--------basic()
--------negotiated()
--------grpc()
----internal()
--------plugin()
----LICENSE(16KB)
----plugin_test.go(21KB)
----test()
--------grpc()
----process.go(346B)
----README.md(8KB)
----server.go(18KB)
----testing.go(5KB)
----mtls.go(2KB)
----process_windows.go(549B)
----rpc_client.go(4KB)
----stream.go(340B)
----docs()
--------internals.md(3KB)
--------README.md(535B)
--------guide-plugin-write-non-go.md(5KB)
----.gitignore(16B)
----client_posix_test.go(2KB)
----process_posix.go(335B)
----discover.go(639B)
----grpc_client.go(3KB)