多个著名 Go 开源项目被放弃,做大开源不能用爱发电,更不能只靠自己!

大家好,我是煎鱼。

相信关注我的许多同学都有接触 Go 语言的开发,甚至在企业中多有实践。那么你在日常开发中,势必会接触到 gorilla 组织下的各个 Go 开源项目。

如下图:

  • gorilla/mux:Star:17.9k。a powerful request router for web applications。
  • gorilla/websocket:Star:18.6k。a standards-compliant and widely used websocket library。
  • gorilla/sessions:Star:2.5k。making cookies and session management easy。
  • gorilla/handlers:Star:1.5k。a collection of useful middleware for Go HTTP applications。

尤其是 gorilla/mux 和 gorilla/websocket 是很多人首选推荐的项目,在各软件库的底层作为基础得到大范围的引用。甚至在 grpc 的实践中,http/1.1 和 grpc 和 tcp 同端口提供服务上,gorilla/mux 也提供了许多实践,引领了大家进步。

就在这两天,gorilla 组织的维护者 @Matt Silverlock 正式宣布:在 2022 年底,将会把 Gorilla 项目下的仓库设置为 “archive mode”。也就是不再维护了

以下是这个组织的一些历史:

原始作者 @
rodrigo moraes 在 2013 年就退出了,2014 年现任作者 @Matt Silverlock 开始参与。
在 2021 年起寻找继承者(个人或公司),没有找到合适的。

决定在 2022 年底正式结束这长达 8 年的维护,将 gorilla 项目结束维护。

至于为什么不再维护了呢?作者也委婉的透露了以下几个原因:

  • 最基本的连对问题进行分类的积极贡献者都没有。虽然有很多人表示愿意参与维护,但在他们举起手后(在 issues 中发表评论愿意),再也没有出现过。
  • 2018 年左右开始,现任作者 @Matt Silverlock 几乎是所有项目(除 websocket)的唯一维护者。言语中感觉他也累了,似乎就像一个人在推一辆巨大的火车(煎鱼注)。
  • 现任作者希望探索其他方面,他个人时间现在非常也有限,花了 1 年也没有找到合适的维护者。

结合现任作者在找新维护者和社区的交流过程中,虽然也有人抛出金钱作为维护的橄榄枝。但似乎作者已经疲了...

可以发现在任何项目大了后,都需要更多的团队(人)、时间、金钱来参与维护和迭代 gorilla 组织下的相关项目。否则是很难持续长久的。这么来看,可能也该庆幸 Go 自身不是一个纯的用爱发电的项目?毕竟 Google 发工资和招人。

无论任何,维护一个庞大的开源项目,不能单单只靠技术角度去设计项目和团队。就像国内许多数据库项目,最后都会走出来,成为一家公司,实现专人专职。

感谢大佬的贡献。人生有多少个 8 年?

文章持续更新,可以微信搜【脑子进煎鱼了】阅读,本文 GitHub github.com/eddycjy/blog 已收录,学习 Go 语言可以看 Go 学习地图和路线,欢迎 Star 催更。

Go 图书系列

推荐阅读


煎鱼的清汤锅
今天写代码了吗 :-) 博客地址:[链接]
8.2k 声望
12.7k 粉丝
0 条评论
推荐阅读
一分钟搞明白!快速掌握 Go WebAssembly
最近因为各种奇怪的原因,更多的接触到了 WebAssembly。虽然之前很多博客也翻过写过各种文章,但总感觉欠些味道。于是今天梳理了一版,和大家一起展开学习。

煎鱼1阅读 605

一文搞懂秒杀系统,欢迎参与开源,提交PR,提高竞争力。早日上岸,升职加薪。
前言秒杀和高并发是面试的高频考点,也是我们做电商项目必知必会的场景。欢迎大家参与我们的开源项目,提交PR,提高竞争力。早日上岸,升职加薪。知识点详解秒杀系统架构图秒杀流程图秒杀系统设计这篇文章一万多...

王中阳Go34阅读 2.6k评论 1

封面图
一个HTTP请求的曲折经历
作为程序员的我们每天都在和网络请求打交道,而前端程序员接触的最多的就是HTTP请求。平时工作中,处理网络请求之类的操作是最多的了。但是一个请求从客户端发出到被服务端处理、再回送响应,再被客户端接收这一...

nero24阅读 5.1k评论 1

Nginx 一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增...

民工哥23阅读 1.1k

封面图
Golang 中 []byte 与 string 转换
string 类型和 []byte 类型是我们编程时最常使用到的数据结构。本文将探讨两者之间的转换方式,通过分析它们之间的内在联系来拨开迷雾。

机器铃砍菜刀24阅读 58.4k评论 2

年度最佳【golang】map详解
这篇文章主要讲 map 的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码,看完本文一定会彻底明白 map 底层原理。

去去100216阅读 11.6k评论 2

年度最佳【golang】GMP调度详解
Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱, 虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻底的. 这篇文章将通过分析...

去去100215阅读 12k评论 4

8.2k 声望
12.7k 粉丝
宣传栏