胡马依北风,越鸟巢南枝。一一《古诗十九首》

https://github.com/github/choosealicense.com

https://choosealicense.com/

ChooseALicense.com:助你轻松选择开源许可证的权威指南

在开源项目蓬勃发展的今天,如何为自己的代码选择合适的许可证成为每位开发者绕不开的问题。不同的开源许可证涉及使用、修改、分发、商业化等多种权利和义务,一旦选错,不仅影响项目传播,还可能带来法律风险。ChooseALicense.com 正是为了解决这个痛点,由 GitHub 官方团队打造的开源项目和网站,致力于为开发者提供准确、客观、易懂的开源许可证信息,帮助大家做出明智的选择。


项目简介与目标

官方目标

  • 准确/客观:所有内容力求中立、无倾向,围绕用户实际目标推荐合适许可证。
  • 易用:首页精简,只需几步即可帮助大部分人做出选择。
  • 场景化:对特殊社区或场景提供更丰富的许可证信息和说明。
  • 协作共建:与其他开源许可相关项目和标准协同发展。
  • 精选而非全面:聚焦最常用、最重要的许可证,避免信息过载。

主要功能与特色

1. 主流开源许可证一站式检索

ChooseALicense.com 对开源领域最常见的许可证(如 MIT、Apache 2.0、GPLv3、BSD 等)进行归类、解读和对比。每个许可证条目都包括:

  • 许可证原文
  • 权利义务简述
  • 适用场景说明
  • 许可证兼容性和限制分析

2. 智能引导式选择流程

首页根据常见目标(如“允许商业使用”、“是否需要开源修改”、“是否强制同协议”等)提供筛选和推荐,帮助开发者快速定位适合自己的许可证类型。

3. 深入解读与社区场景支持

对于特定技术社区(如数据、硬件、文档等),ChooseALicense.com 提供专属的许可证推荐和说明,帮助用户应对复杂、细分的应用场景。

4. 与 GitHub 平台深度集成

该项目不仅作为独立网站存在,还被 GitHub 用于:

  • 仓库新建时的许可证选择界面
  • Licensee 检测工具的许可证元数据来源
  • 显示开源项目 license 详细信息与 API 支持

5. 开源协作与扩展性

所有许可证信息以 Jekyll collection 形式存储于项目的 _licenses 目录,每条许可证文件都包含 YAML 元数据和原文,便于社区协作扩展。开发者可以通过 PR 贡献新许可证的内容和元数据。


本地运行与开发

ChooseALicense.com 基于 Jekyll 构建,支持本地运行和开发:

  1. 安装依赖(需 cmakemake,macOS 可用 Homebrew,Linux 用 apt-get)

  2. 克隆仓库并初始化

    1
    2
    3
    4
    git clone https://github.com/github/choosealicense.com.git --recursive
    cd choosealicense.com
    ./script/bootstrap
    ./script/server
  3. 在浏览器访问 http://localhost:4000,体验完整功能

如遇问题可参考 Jekyll 官方文档


如何贡献

  • 新增许可证:详见 CONTRIBUTING.md#adding-a-license
  • 每个许可证文件需包含:
    • title:许可证全称(符合 SPDX 标准)
    • 其他元数据及原文(plain text)

适用场景

  • 个人/团队新建开源项目时选择合适许可证
  • 技术博客、文档、数据集等非代码类内容的开源许可咨询
  • 企业/法律合规人员对开源项目风险、兼容性评估
  • 开源社区进行许可证教学和科普

总结

ChooseALicense.com 是开源世界最值得信赖的许可证选择和科普平台之一。它用简单明了、权威中立的方式,帮助开发者规避法律风险,保护自己的创新成果,推动开源生态健康发展。如果你正为项目选什么许可证而发愁,或者想系统了解各种开源协议的优缺点,ChooseALicense.com 一定是你的理想之选。

访问官网:https://choosealicense.com
查看源码:github/choosealicense.com