Golang开源库需要支持泛型,有人愿意贡献时间吗?
Golang开源库需要支持泛型,有人愿意贡献时间吗? 考虑到泛型和 Go 1.18,我想许多库都会希望发布利用泛型的版本。
在这个论坛上,是否有开源库和项目的列表,可以供人们志愿参与?
2 回复
你好 @Dean_Davidson,
我在生产环境中也使用 gorilla/mux!感谢你指出这一点,我之前不知道他们正在寻找维护者。
更多关于Golang开源库需要支持泛型,有人愿意贡献时间吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
以下是一些正在寻求泛型贡献的Go开源项目,你可以参与:
- Go标准库的泛型扩展 -
golang.org/x/exp包含maps、slices等泛型包,需要测试和优化:
import "golang.org/x/exp/maps"
keys := maps.Keys(map[string]int{"a": 1}) // 返回 []string
- Ent (实体框架) - 需要泛型查询构建器:
// 目标:client.User.Query().Where(...).All(ctx) 返回 []*User 而非 interface{}
- Watermill (消息流库) - 需要泛型处理器:
// 提案:router.AddHandler("topic", func(msg *watermill.GenericMessage[T]) error { ... })
- go-resty (HTTP客户端) - 计划泛型响应处理:
var result MyStruct
resp, err := client.R().SetResult(&result).Get("/api") // 目标:SetResult[T]()
- BuntDB (内存数据库) - 需要泛型序列化层:
// 提案:db.Get("key", &MyType{}) 改为 db.Get[T]("key")
具体贡献步骤:
- 在项目GitHub的Issues中搜索"generics"或"泛型"
- 查看标有"help wanted"的issue
- 提交包含泛型实现的PR示例:
// 贡献示例:为某库添加泛型函数
func Filter[T any](slice []T, predicate func(T) bool) []T {
var result []T
for _, v := range slice {
if predicate(v) {
result = append(result, v)
}
}
return result
}
Go 1.18+项目通常会在README或CONTRIBUTING.md中说明泛型迁移计划。

