常见许可证
以下是一些常见的开源许可证:
- MIT许可证:MIT是一个非常宽松的许可证,允许你做任何事情,只要保留原始许可证和版权声明。适用于希望代码被广泛使用的项目。
- GNU与GPLv3:GPLv3是一个“传染性”的许可证,要求所有修改和衍生作品都必须使用相同的许可证。适用于希望强制要求开源的项目。
- Apache2.0许可证:Apache 2.0许可证允许你自由使用、修改和分发,但需要提供版权声明和免责声明。适用于希望代码被广泛使用,同时保护用户和贡献者权益的项目。
- BSD 3-Clause许可证:BSD 3-Clause许可证类似于MIT许可证,但需要禁止使用版权方的名字进行推广。适用于希望代码被广泛使用,但不希望与版权方的名字相关联的项目。
许可证的选择
在选择开源许可证时,你需要考虑以下几个因素:
- 自由度:你希望别人如何使用、修改和分发你的代码。
- 责任:你希望对使用你的代码的人承担多少责任。
- 传染性:你希望你的代码的开源性质是否影响到衍生作品。
使用者的责任
MIT、Apache、BSD在自由度上相仿,主要是承担责任上有些细微差别:
-
MIT许可证:MIT许可证的责任承担非常小,只要保留原始许可证和版权声明,使用者就可以自由地使用、修改和分发代码 —— 承认我的名即可!
-
BSD 3-Clause许可证:BSD 3-Clause许可证在责任承担上比MIT许可证稍微多一些,它禁止使用者使用版权方的名字、标志或者商标进行推广 —— 不许打着我的旗号行骗!
-
Apache 2.0许可证:Apache 2.0许可证在责任承担上比MIT许可证稍微多一些,它要求使用者在分发修改过的代码时,必须给出明显的修改声明。此外,如果使用者的产品有专利,那么Apache 2.0许可证还提供了一个额外的专利授权。
所以,你可以根据你对责任承担的需求,来选择最适合你的许可证。
小结
- GNU/GPL:用我你就也得开源!
- MIT:随便用,承认我的名即可!
- BSD:随便用,但不许以我之名行骗!
- Apache:支持专利,支持二次开发,但修改了源码必须声明!