PluginSystem
PluginSystem
参考各种插件系统
话说我以前试过分别尝试js和python体系的架构的插件,发现js架构可以很方便地导入的打包其他依赖到一个js文件中,但python的依赖似乎比较难以打包在一起 (?可能我不知道方法)
什么是插件
- 宏观插件 - 任意语言
其实所有的语言,宏观上都属于插件。例如python、js可以看作是依赖于浏览器和解释器的插件、需要编译的语言也能看作是依赖于编译器的插件。 - 狭义插件 - 库插件
例如Python和Js库,C的纯头文件库等。VuePress插件/Markdown-it插件
典型的特点是:易于在开发阶段任意加载卸载和启停。 - 狭义插件 - 软件插件
只是我这里的所说的“插件”是更易用更规范的东西,对用于来说代码无感
典型的特点是:易于在用户端任意加载卸载和启停。更少的编译时间和依赖、更规范的写法(有注释id、注册名等)、更规范的统一注册。
根据语言
- js,插件的典型有很多
- utools、obsidian、浏览器插件、油猴脚本等
- 可视化/蓝图类型:还有一些特殊
- quicker
- autohotkey,自定义语言
- python,不多见
- 除了我之前自己折腾的一个项目外(由于依赖原因只能算半成品,放弃)
- ComfyUI
根据通信类型
- 聊天机器人,http/websocket方式
- 支持许多语言,python、c#等
- dll方式
- QQ聊天机器人一般用
- 脚本/打包方式
- js、python(包?)、lua等
- 无需编译,纯代码脚本
- js、python等解释型语言的插件一般可以用这种情况
- Qt/PyQt的插件系统,但是不是很优雅
插件开发参考
js (obsidian、油猴脚本、vuepress插件、markdown-it插件)、python (ComfyUI插件)、机器人插件、autohotkey 的插件的开发,我应该都有笔记记录,可以去看一下。
至于浏览器扩展、uTools、quicker插件,我暂时了解还不算太多
链接到当前文件 0
没有文件链接到当前文件