長期更新
擴展:shield.io裝飾
開源許可證(Open Source Licenses)有很多種,每種都有不同的授權和限制,適用于不同目的。
默認的ISC🟰MIT
License | 是否可商用 | 是否要求開源衍生項目 | 是否必須署名 | 是否有專利授權 | 特點 |
---|---|---|---|---|---|
MIT | ? 是 | ? 否 | ? 是 | ? 否 | 非常寬松,適合最大范圍使用 |
Apache 2.0 | ? 是 | ? 否 | ? 是 | ? 有 | 類似 MIT,但有專利保護 |
GPLv3 | ? 是 | ? 是(強制) | ? 是 | ? 有 | Copyleft 強制開源,適合理想主義者 |
LGPLv3 | ? 是 | 部分要求 | ? 是 | ? 有 | 更寬松的 GPL,可用于商業庫 |
BSD 2-Clause / 3-Clause | ? 是 | ? 否 | ? 是 | ? 否 | 和 MIT 類似,更簡潔 |
MPL 2.0 | ? 是 | ? 是(僅修改部分) | ? 是 | ? 有 | 文件級別開源,適合公司使用 |
Unlicense | ? 是 | ? 否 | ? 否 | ? 否 | 完全放棄版權,相當于公共領域 |
- 使用場景
MIT:適合個人項目、工具庫、想讓別人隨便用【常用】
Apache 2.0:適合商業公司,希望有專利保護
GPL:適合你堅持“開源必須回饋開源”的理念
LGPL:適合你寫的是第三方依賴庫,希望商用項目也能用
BSD:MIT 的替代品,少數企業偏好
MPL:適合大型項目,比如瀏覽器,要求不太嚴格
Unlicense / CC0:你不在乎版權,想讓代碼徹底歸公用領域
使用
- 其他人使用時需要注意
- 保留原始的版權聲明
無論是源代碼文件、構建后的文件,還是其他分發版本,別人必須保留你原始代碼中的 版權聲明。這通常在代碼文件的頂部或者 LICENSE 文件中。
/** Copyright (c) [年份] [你的名字或組織]* Licensed under the ISC License. See LICENSE file for details.*/
- 如果修改了代碼,必須注明修改
如果其他人在你的代碼上做了修改,他們通常需要按照許可證的要求,在其修改的代碼中注明是基于你的代碼做的修改,并且保留原始的版權聲明。
這可能會出現在修改過的代碼文件頂部,通常會寫成類似以下內容:
/** Copyright (c) [年份] [原作者的名字或組織]* Modified by [修改者的名字]* Licensed under the ISC License. See LICENSE file for details.*/
- 在文檔或 README 文件中注明
如果他們在自己的項目中使用你的開源包,可以在項目的 README.md 文件或相關文檔中提到你的版權信息和許可證聲明。尤其是當項目涉及多個依賴時,很多開發者會在 README.md 文件中列出依賴的開源項目和它們的許可證類型。 - 對于 GPL 許可證的要求
如果你使用的是 GPL 許可證,要求會更嚴格。除了在代碼中保留版權聲明,如果代碼被修改并發布,修改后的源代碼必須公開,并附帶原始的版權聲明和許可證信息。這意味著,用戶必須在自己的分發版本中附上原始的許可證、版權聲明,并且提供源代碼。
ISC
雖然默認,但是也要加上LICENSE文件
ISC LicenseCopyright (c) [年份] [你的名字或組織]Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
MIT
通常放在你項目的根目錄,文件名叫 LICENSE(無擴展名)
在 package.json 中加 “license”: “MIT”
在 GitHub 上建倉庫時選擇「MIT License」,GitHub 會自動幫你加上
把下面的[年份] [你的名字或組織名]整個替換掉
MIT LicenseCopyright (c) [年份] [你的名字或組織名]Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.