Algernon是基于Go开发一个“自带电池”的Web Server。
虽然满足了大部分小型网站的开发需求,但总有需要开发扩展的时候。
这时候就需要用到插件机制了,Algernon采用了 pie 来作为其插件机制。
pie 方便快捷安全的Go插件机制_步子哥的博客-CSDN博客GitHub - natefinch/pie: a toolkit for creating plugins for Go applicationshttps://github.com/natefinch/pie通过RPC机制,pie插件和Go程序的主进程进行通信,从而实现了多进程的插件机制,架构上类似Chrome。使用此工具包的插件和管理这些插件的应用程序通过插件应用程序的 Stdin 和 Stdout 通过 RPC 进行通信。 此包中带有前缀 New 的函数旨在由插件用于设置其通信结束。 此包中带有前缀https://blog.csdn.net/weixin_36829761/article/details/125599951在Algernon的源码目录里面有一个 plugins 目录,里面有一个两个 插件的demo,分别是用 Go 和 Python来写插件。
Algernon的插件机制采用多进程模式,每个插件是一个独立的进程。
在Lua里,用 Plugin("plugins/go/go")来初始化一个插件,如果增加第二个参数 true,就可以保持插件进程一直运行。



