MediaXCore 是一个支持插件化的核心模块,为内容发布和管理场景提供标准接口和基础设施。它允许开发者通过插件动态扩展功能,同时支持独立插件系统和与其他服务的集成。
.
├── README.md # 项目说明文档
├── go.mod # Go 模块管理文件
├── main.go # 示例主程序
├── pkg
│ └── plugin
│ ├── core
│ │ └── contract
│ │ └── pluginInterface.go # 插件接口定义
│ ├── examples
│ │ └── examplePlugin.go # 插件示例
│ └── utils.go # 插件工具函数
└── tests
└── plugin_test.go # 单元测试
- 插件接口:提供
ProviderInterface
,支持实现自定义插件。 - 动态加载:支持通过 Go 动态加载
.so
插件文件。 - 标准化接口:包含
PublishRequest
和PublishResult
数据结构,规范化内容发布流程。 - 测试用例:内置单元测试,验证插件接口实现。
运行以下命令编译插件:
go build -o pkg/plugin/examples/plugin.so -buildmode=plugin pkg/plugin/examples/plugin.go
通过 main.go
加载并使用插件:
go run main.go
执行单元测试以验证接口实现:
go test ./tests
运行主程序后,输出类似如下:
plugin loaded name: ExamplePlugin
&{success Mock Publish Successful} <nil>
- 扩展插件:继承
ProviderInterface
接口并实现Initialize
、Name
和Publish
方法。 - 新增功能:在
pkg/plugin
模块中添加新功能或插件工具函数。
此项目基于 MIT License。