项目作者Nikolay Kim在经历“不安全代码暴风雨”之后也得到了社区一些人士的支持。
使用Actix开发Web应用程序
用Rust编写的Actix Web框架的维护者在抱怨恶毒的Web社区后退出了该项目,不过此后100多名Actix用户签署了联名信以声援他。
Actix Web由身为微软高级软件工程师的Nikolay Kim开发,不过Actix项目不是微软的正式项目。Actix Web基于Actix,这种面向Rust的框架基于Actor模型,Actor模型也是由Kim开发的。
这个Web框架对Rust社区而言很重要,部分原因是它支持一种常见的用例(开发Web应用程序),部分原因是其出色的性能。就一些测试而言,Acitx在Techempower基准测试中名列前茅。
该项目是开源项目,虽然很受欢迎,但用户们对于它使用“不安全”的代码有些不满。在Rust中,有安全和不安全这一概念。安全代码受到保护,远离诸多问题引起的常见bug(更重要的是,远离安全漏洞),比如变量指向未初始化内存,或者分配给变量的内存被释放后使用变量,或者试图将数据写入到超过所分配内存的变量。默认情况下,Rust中的代码是安全的,但是该语言还支持不安全的代码,不安全的代码对于互操作性或提高性能很有用。
在一些测试中,Actix是Techempower基准测试中的佼佼者
Actix中广泛使用不安全的代码,这引发了有关哪些应加以修复的争论。Kin并不总是愿意接受提议的变更。最近,开发者Sergey Davidoff在medium网站上撰文,声称代码“将多个可变引用分发给同一数据,这导致释放后使用的漏洞,因此违反了内存安全性。”
Davidoff还表示:“我向维护者报告了这个问题,但他们拒绝调查该问题,”具体指的是Kim删除的bug报告。
Reddit Rust论坛上关于此事的争论变得激烈起来,开始带有人身攻击,关键问题不在于到底有没有存在真实或潜在的漏洞,而是Kim忽略或删除一些报告的这个习惯。Kim决定辞退。1月17日,他发布了“Actix项目事后报告”,捍卫其立场,并抱怨社区的反应。
“当大型开源项目的维护者可不轻松。你总是面对粗鲁、憎恨的言行,每个人比你更懂得如何构建软件,没人想要做好功课、认真阅读文档,很少有人提供任何帮助……你可能注意到,每次经历不安全代码暴风雨之后,我在这个社区所花的时间越来越少……现在支持actix项目不好玩了,身为rust社区的一员也不好玩了。我退出开源界。”
Kim表示,他并没有任意忽略或删除问题,只是由于他觉得自己的方法比提议的方法更好或更有创意,但同时也承认“删除问题单(issue)是个愚蠢的想法”。他还扬言要“使[Actix]代码存储库变成私有,然后将其删除。”
在官方的Actix论坛上,他说他“对分支(fork)的可行性持高度怀疑的态度”,也许是由于“没人显示出了解项目架构的任何迹象”,至少他是这么说的。
再见,祝你好运
从那以后,情况有所改善。Github存储库已恢复,Kim说:
我意识到,很多人依赖actix。将存储库一删了之是不公平的。我提名John Titor为项目领导人。去年他在帮助我方面做得很好。我希望出现新的开发者社区。祝各位好运!
此外,Kim已开始赢得许多社区成员的支持,100多个签名者的联名信对他表示感谢,声称“我们对于您遭受的不公正对待感到极度失望。”
这一事件表明,专家级开发者常常并不擅长管理可能变得很重要的项目的那些人际关系。这还表明一些贡献者和用户在网上交流时并没有展开出最佳行为,忘了志愿者所做工作的重要性,另外值得一提的是,志愿者做的是无偿工作。
最近的积极动向可能意味着Actix的开发会继续下去,bug和安全漏洞在修复,该社区更懂得如何进行建设性地发展。
领取专属 10元无门槛券
私享最新 技术干货