先来了解一些下方表格中出现的用词的解释:
协议 | 描述 | 要求 | 允许 | 禁止 |
Apache | 一个较宽松且简明地指出了专利授权的协议。 |
|
商用
分发 修改 专利授权 私用 附加协议 |
责任承担(禁止让作者承担责任,可以理解为免责)
商标使用 |
GPL | 此协议是应用最为广泛的开源协议,拥有较强的版权自由( copyleft )要求。衍生代码的分发需开源并且也要遵守此协议。此协议有许多变种,不同变种的要求略有不同。 |
|
|
|
MIT | 宽松简单且精要的一个协议。在适当标明来源及免责的情况下,它允许你对代码进行任何形式的使用。 |
|
|
|
Artistic | Perl社区尤为钟爱此协议。要求更改后的软件不能影响原软件的使用。 |
|
|
|
BSD | 较为宽松的协议,包含两个变种BSD 2-Clause 和BSD 3-Clause,两者都与MIT协议只存在细微差异。 |
|
|
|
Eclipse | 对商用非常友好的一种协议,可以用于软件的商业授权。包含对专利的优雅授权,并且也可以对相关代码应用商业协议。 |
|
|
|
LGPL | 主要用于一些代码库。衍生代码可以以此协议发布(言下之意你可以用其他协议),但与此协议相关的代码必需遵循此协议。 |
|
|
|
Mozilla | Mozilla Public License(MPL 2.0)是由Mozilla基金创建维护的。此协议旨在较为宽松的BSD协议和更加互惠的GPL协议中寻找一个折衷点。 |
|
|
|
No license | 你保留所有权利,不允许他人分发,复制或者创造衍生物。当你将代码发表在一些网站上时需要遵守该网站的协议,此协议可能包含了一些对你劳动成果的授权许可。比如你将代码发布到GitHub,那么你就必需同意别人可以查看和Fork你的代码。 |
|
|
|
Public domain dedication | 在许多国家,默认版权归作者自动拥有,所以Unlicense协议提供了一种通用的模板,此协议表明你放弃版权,将劳动成果无私贡献出来。你将丧失对作品的全部权利,包括在MIT/X11中定义的无担保权利。 | N/A |
|
|
上面各协议只是针对软件或代码作品,如果你的作品不是代码,比如视频,音乐,图片,文章等,共享于公众之前,也最好声明一下协议以保证自己的权益不被侵犯。针对非代码的数字作品的协议,最通用的莫过于Creative Commons(也是你经常在别人博客下面可以看到的CC协议)协议。
你没有义务也没人非要你必需在自己的代码作品里面加上一个开源协议。但如果你想把代码分享出来,最好还是选择一个适合的开源协议,这样别人用着放心你也放心。