开源许可证兼容性检查器 - 混合项目合规指南
选择或输入多个开源许可证,查看它们组合在闭源或开源项目中的兼容性矩阵与义务。
UD5工具箱
根据你的项目需求,智能匹配最合适的开源许可证。回答以下问题,我们帮你找到最佳选择。
开源许可证是一份法律文件,规定了他人可以使用、修改和分发你的代码的条件。即使你将代码公开在GitHub上,没有许可证就意味着默认保留所有权利,他人无权使用你的代码。
选择许可证的原因:
Copyleft(著佐权)是一种利用版权法来保障作品自由使用的机制。它要求衍生作品必须使用相同或兼容的许可证发布。
强Copyleft(如GPL、AGPL):任何使用该代码的衍生作品都必须以相同许可证开源。这意味着如果你使用了GPL代码,你的整个项目可能都需要以GPL开源。
弱Copyleft(如LGPL、MPL、EPL):只要求对原始代码的修改部分开源,允许与闭源软件链接或组合。例如,LGPL允许闭源商业软件动态链接LGPL库。
无Copyleft(宽松许可证,如MIT、Apache、BSD):对衍生作品没有开源要求,他人可以将代码用于闭源商业项目。
两者都是宽松型许可证,但有关键区别:
建议:如果涉及专利技术或大型项目,推荐Apache 2.0;小型库或追求简洁,MIT是更好的选择。
可以,但有重大限制。GPL允许商业使用,但如果你将GPL代码集成到你的产品中并分发给客户,你必须将整个衍生作品以GPL许可证开源。
这意味着:
替代方案:如果需要在闭源商业产品中使用开源库,考虑LGPL(允许动态链接)或MIT/Apache/BSD等宽松许可证的库。GPL更适合那些本身就计划开源的项目。
AGPL(GNU Affero GPL)是GPL的加强版,专门针对网络服务(SaaS)场景。
关键区别:GPL的Copyleft条款在分发代码时触发。如果你使用GPL代码构建了一个网站后端,只通过网络提供服务而没有"分发"代码,GPL不要求你开源。这就是所谓的"ASP漏洞"。
AGPL弥补了这个漏洞:如果你使用AGPL代码提供网络服务,即使用户没有下载代码,你也必须开源。
使用场景:
选择许可证时考虑以下因素:
快速建议:
许可证兼容性指的是两个不同许可证的代码能否被合并到一个项目中。如果两个许可证不兼容,你就不能将它们组合在一起使用。
常见兼容性问题:
如果你计划使用多个开源项目的代码,务必检查它们的许可证是否兼容。
双重许可是指同一份代码提供两种不同的许可证供用户选择。这是开源商业模式的一种常见策略。
典型模式:
知名案例:
双重许可适合那些希望从开源中获益、同时也能通过商业授权创收的项目。
两者都是非常宽松的BSD许可证变体,唯一的区别在于BSD 3-Clause多了一个"禁止背书条款"。
BSD 2-Clause:只需保留版权声明和免责声明,允许自由使用、修改和分发。
BSD 3-Clause:在2-Clause基础上增加了:未经特别书面许可,不得使用原作者或贡献者的名称来为衍生产品背书或推广。
这个附加条款保护了原作者的声誉,防止他人暗示原作者为其产品背书。大多数情况下推荐使用BSD 3-Clause,它提供了更好的保护。
选择或输入多个开源许可证,查看它们组合在闭源或开源项目中的兼容性矩阵与义务。
检测浏览器是否支持特定自定义协议(如mailto:, tg:),并尝试调用。
输入URL模式字符串(通配符、命名组)和测试URL,验证是否匹配并提取参数。
输入 URL,通过前端代理或 CORS 配置获取并显示完整的响应头信息。
输入包名,通过NPM Registry API查询是否已被占用,并显示近似的包名建议。
展示几组在各类色盲下仍可区分的定性数据配色方案,含Hex码。
上传两个 .env 文件,高亮仅在其中一个文件中存在的变量,快速同步环境配置。
快速检测系统是否支持特定的URL Scheme(如mailto:、tel:、tg:)。
输入 gRPC 服务地址和方法,构造 JSON 请求体,观察转为二进制帧并接收响应解码。
随机生成两到五种颜色的组合,附带预览色块,提供设计意外之喜。
获取和释放命名锁,观察多个标签页如何排队等待资源访问。
输入一条DNA序列,自动生成互补链并转录为RNA序列。
选择编程语言和关注领域(安全、性能、可读性),生成定制化的代码审查核对表。
通过Service Worker或本地fetch模拟拦截和转发请求,查看修改后的请求响应。
选择任意基色,自动计算互补色、分裂互补及三分色,提供十六进制代码,一键复制。
粘贴 package.json 内容,检查必填字段、许可证合规、依赖版本格式等常见问题。
输入 HTML 或网址,提取所有标题标签,生成文档大纲树,检测跳跃和缺失。
拖拽基色指针,自动计算互补、近似、三等分等七种和谐配色方案,复制十六进制值。
选择类型、作用域并填写描述,自动生成符合Conventional Commits规范的提交消息。
在勾选读写执行权限和对应的八进制数字、符号(rwx)之间互相转换。
编写正则表达式,在文本中用不同颜色高亮整个匹配和每个捕获组。
输入开发者名单,依规则随机组成搭档,尽量不重复近期配对。
粘贴JSON对象,一键转换为简洁的YAML格式,方便编写配置文件。
粘贴带参数的URL,以表格形式列出所有Query参数与值。
模拟资源请求,对比ETag值,展示返回304 Not Modified的缓存协商机制,理解HTTP缓存。
添加、列出和删除内容索引中的条目,展示离线可用内容。
粘贴JSON对象,生成可折叠的树形视图,点击节点复制其键值路径,方便调试。
可视化Flexbox容器和子项的所有属性及选项,鼠标悬停预览效果。
将数字替换为自定义文字或Emoji,照样合并往更高阶进化。
创建一份让参与者寻找的物品或地标清单,可分享或打印。