常见的宽松开源许可证介绍
在日常开发中,很多人会用到开源项目,而了解许可证类型是避免法律风险的基础。宽松开源许可证(Permissive Open Source License)最大的特点就是限制少,允许你把代码用在商业项目里,甚至闭源发布,只要保留原始版权信息就行。
MIT 许可证
MIT 是最流行的宽松许可证之一。它几乎只做一件事:要求你在使用代码时保留原作者的版权声明和许可声明。其他基本不限制,可以自由修改、分发、商用。
比如你从 GitHub 上下载了一个 MIT 授权的小工具,集成到公司内部系统完全没问题,也不用公开你的源码。
Permission to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software... subject to the following conditions:Apache 2.0 许可证
Apache 2.0 比 MIT 多了一些保护条款,比如明确授予专利使用权,这对企业来说更安全。如果你用了 Apache 授权的库,别人不能因为其中涉及专利就突然起诉你。
另外,它还要求你说明对文件做了哪些修改,适合大型协作项目。像 Android 和 Kubernetes 都用的是 Apache 2.0。
BSD 许可证
BSD 有几个版本,常见的是 2-Clause 和 3-Clause。它们都很宽松,允许自由使用,唯一的区别在于“3-Clause”多了一条广告条款:不能用作者的名字为衍生品背书。
现在很多基础库比如 FreeBSD、Nginx 的部分组件都采用 BSD 许可证,特别适合嵌入到商业软件中。
ISC 许可证
ISC 和 MIT 非常相似,只是语言更简洁现代。它被广泛用于 Node.js 生态的一些包中。本质上也是只要你保留原许可文本,就可以随便用。
比如你在写一个前端项目,用了某个 ISC 授权的工具库,打包成付费产品出售也没问题。
如何查看项目用的什么许可证?
大多数开源项目会在根目录放一个叫 LICENSE 或 COPYING 的文件,打开就能看到具体内容。如果没找到,看看 README 里有没有说明。别急着拿来就用,花一分钟确认下授权类型,能省去不少麻烦。
举个例子:你想在淘宝开店卖一个基于开源项目的定制版小程序,如果原项目是 GPL 这类“传染性”强的许可证,你就得开源自己的代码;但要是 MIT 或 Apache 就完全不用担心。