Golang开源库需要支持泛型,有人愿意贡献时间吗?

Golang开源库需要支持泛型,有人愿意贡献时间吗? 考虑到泛型和 Go 1.18,我想许多库都会希望发布利用泛型的版本。

在这个论坛上,是否有开源库和项目的列表,可以供人们志愿参与?

2 回复

你好 @Dean_Davidson

我在生产环境中也使用 gorilla/mux!感谢你指出这一点,我之前不知道他们正在寻找维护者。

更多关于Golang开源库需要支持泛型,有人愿意贡献时间吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


以下是一些正在寻求泛型贡献的Go开源项目,你可以参与:

  1. Go标准库的泛型扩展 - golang.org/x/exp 包含maps、slices等泛型包,需要测试和优化:
import "golang.org/x/exp/maps"
keys := maps.Keys(map[string]int{"a": 1}) // 返回 []string
  1. Ent (实体框架) - 需要泛型查询构建器:
// 目标:client.User.Query().Where(...).All(ctx) 返回 []*User 而非 interface{}
  1. Watermill (消息流库) - 需要泛型处理器:
// 提案:router.AddHandler("topic", func(msg *watermill.GenericMessage[T]) error { ... })
  1. go-resty (HTTP客户端) - 计划泛型响应处理:
var result MyStruct
resp, err := client.R().SetResult(&result).Get("/api") // 目标:SetResult[T]()
  1. BuntDB (内存数据库) - 需要泛型序列化层:
// 提案:db.Get("key", &MyType{}) 改为 db.Get[T]("key")

具体贡献步骤:

  1. 在项目GitHub的Issues中搜索"generics"或"泛型"
  2. 查看标有"help wanted"的issue
  3. 提交包含泛型实现的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中说明泛型迁移计划。

回到顶部