AI 驱动的混合搜索正在进行封闭测试。 加入候补名单 以获取早期访问权限!

返回主页Meilisearch's logo
返回文章
2019年4月25日

开源还是非开源?

我们想分享我们关于开源以及我们应该如何许可我们的代码的想法。在 Meili,我们正在用 Rust 🦀 构建一个即时搜索引擎,我们希望将其开源。

Thomas Payet
Thomas Payet联合创始人兼首席运营官 @ Meilisearch@totolapaille
Open source or not?

我们想分享我们关于开源以及我们应该如何许可我们的代码的想法。这对我们来说是全新的,我们仍在寻找最佳解决方案和机会,所以如果您有任何阅读建议,请不要犹豫告诉我们。

快速提醒:在 Meili,我们正在用 Rust 🦀 构建一个即时搜索引擎,我们希望将其开源。我们仍在考虑适合我们的商业计划,我们也可能会写关于这方面的文章,但今天的主题是许可证!

我们为什么选择开源?

我们认为每个应用程序都应该有一个像样的搜索引擎。这意味着搜索引擎技术应该成为一种商品。我们发现在 Algolia(对开发者非常友好,但具有专有性)和 Elastic Search(难以设置为即时搜索)之间找到了一个平衡点。

我们认为,如果你想成为你所在领域的标准技术,你应该开源,这样你就可以与使用它的人一起构建你的功能,并且获得对你代码的信任。此外,因为我们是很酷的开发者,我们使用了大量的开源代码,我们想通过为开源做贡献和分享我们的项目来回馈社会。

什么是开源?

开源很复杂,如果你问两个人对开源的定义,你可能会意识到开源有很多定义。Steve Klabnik 写了一篇非常有趣的博客文章,关于开源核心的文化战争,我们从中了解了开源的历史以及人们为什么为其定义而争论。

一开始,有自由软件基金会(Free Software Foundation),它成立于 1985 年。FSF 由 Richard Stallman 创立,旨在支持 GNU 项目和自由软件的概念:软件应该可以自由使用、自由复制和自由分发。然而,“自由”这个词具有非常强的限制性。对于 FSF 来说,自由软件必须在 copyleft 许可证下。Copyleft 意味着所有衍生自它的作品也必须是 copyleft。我们称之为“遗传”或“污染”许可证,我们很快就明白这种许可证可能会让企业感到害怕。

然后是开源倡议(Open Source Initiative),这是一个成立于 1998 年的非营利组织。Eric S. Raymond 和 Bruce Perens 编写了开源定义(Open Source Definition),其中规定了限制性较小的许可证(MIT、Apache、BSD 等)。这些许可证都要求署名您正在使用的软件的作者,但您正在构建的内容可以具有任何其他许可证。这个开源定义的目标之一是更加“商业友好”,因为“自由”这个词可能会吓到公司,并且通过更友好的名称和限制性较小的许可证,您可以鼓励公司投资并参与开源。


为了说明差异,我们可以采用两个基于 Unix 的操作系统:一方面是 Linux 内核,它在 GPLv2(copyleft)下获得许可,这就是为什么基于 Linux 的 Android 是开源的。另一方面,有伯克利软件发行版(BSD),它在 BSD 许可证下获得许可,其最著名的分支是 iOS 和 Mac OS,它们是专有的和私有的。

这些是当今开源的定义,问题是

  • 每个人对一个定义都有不同的意见,因为每个人都有自己的开源意识形态
  • 每个人都没有遵守相同的规则:虽然一些公司在一些不知名的 FTP 上发布其 GPL 许可的项目,但另一些公司在 GitHub 上公开发布其代码,而没有 OSI 批准的许可证。对你来说,什么是开源?

当今的开源

正如您最近几个月可能读到的那样,一些“开源”项目出于相同的原因更改了其许可证。我们认为 MongoDB 解释得非常好

对于开源项目来说,这是一个充满难以置信机遇的时代,有可能促进新一波伟大的开源服务器端软件。然而,现实情况是,一旦一个开源项目变得有趣,大型云供应商就太容易捕获所有价值,但对社区没有任何贡献。

他们并不是唯一担心这种情况的项目。

例如,Redis 正在根据其自己的许可证许可其一些 Redis 模块,即 Redis 源代码可用许可证。他们以前在 Apache 许可证上使用 Commons Clause。Commons Clause 在 Apache 等现有许可证之上添加了一些关于商业分发的限制。但是 他们出于混淆的原因更改了它;人们不确定它是否是开源的。

Confluent 也更改了其许可证,他们从 Apache 选择创建 Confluent 社区许可证,因为他们也害怕一些大型云公司。

开源与 Meili

重点不是关于大型公司是否应该对开源做出更多或不同的贡献,而是开源正在发展,我们需要一个新的定义、一个新的术语来围绕它聚集并了解我们在谈论什么。

也许我们需要标签来定义和构建我们作为一家公司所支持的意识形态?也许我们需要一个专利式的系统,规定您作为一家公司发布的每一段代码都将在您编写后的 3 年内处于 MIT 许可证或任何其他许可证下。这样,您可以在一段时间内将您的代码货币化,同时允许公开披露您的代码?

在 Meili,我们尚未就这些问题形成明确的愿景,但我们正在对此进行深入思考。我们希望我们的代码对任何人开放,可以自由使用和修改它用于您的项目。如果您打算将其用于一些个人项目,那就去做吧,如果您想将其用于您的公司,您也应该这样做。我们不希望任何云提供商 git clone 我们的项目并在 SaaS 产品上成为竞争对手。因为我们相信,如果我们可以基于它建立一个可持续的业务,我们的项目将会更加蓬勃发展。

今天,我们的代码仍然在 MIT 许可证下,但明天我们可能会将其更改为 Commons Clause 或像 MongoDB 和 Confluent 那样编写我们的公共许可证。不,它不会像 OSI 所说的那样是开源的,但我们认为,公开源代码仍然比封闭源代码要好,可惜今天没有一个明确的术语来描述它。

Meilisearch November Updates

Meilisearch 11 月更新

您每月对 Meilisearch 所有内容的总结。2024 年 11 月版。

Laurent Cazanove
Laurent Cazanove2024年12月3日
Meilisearch Q4 2024 release wrap-up

Meilisearch 2024 年第四季度发布总结

Meilisearch 第四季度发布包括更快的搜索速度、对 UI 中设置的更多控制以及一个新区域。

Maya Shin
Maya Shin2024年11月27日
Meilisearch October updates

Meilisearch 10 月更新

您的 Meilisearch 每月回顾。2024 年 10 月版。

Carolina Ferreira
Carolina Ferreira2024年11月7日