我有一个 Go 库,它对可变数据进行并发处理,我有一个(简化的)接口:
type Handler interface {
Accepts(id []byte) bool
ProcessUnit(u []byte) []byte
}
目前,库最终开发人员(用户)可能会编写实现此接口的 go 代码,并且库可以处理最终开发人员的数据结构。
现在真正的问题是:(让我们跳过开销),是否可以提供用另一种语言编写的接口的实现(考虑到 Python)?我的目的是提供一个“插件 API”,以便任何人都可以添加处理程序,例如:Python(或其他语言)
我已经有一个工作实现,它使用 zeromq 在 go<->python 中传递数据,但这感觉“不自然”。我想要实现的乌托邦是 lib 用户将plugins.py文件放置在预定义的位置,并且 go 可以在启动时自动加载插件,这可能还是我看错了方向?
相关分类