开源许可证兼容性检查器 - 混合项目合规指南
选择或输入多个开源许可证,查看它们组合在闭源或开源项目中的兼容性矩阵与义务。
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,验证是否匹配并提取参数。
输入包名,通过NPM Registry API查询是否已被占用,并显示近似的包名建议。
展示几组在各类色盲下仍可区分的定性数据配色方案,含Hex码。
快速检测系统是否支持特定的URL Scheme(如mailto:、tel:、tg:)。
输入 gRPC 服务地址和方法,构造 JSON 请求体,观察转为二进制帧并接收响应解码。
随机生成两到五种颜色的组合,附带预览色块,提供设计意外之喜。
获取和释放命名锁,观察多个标签页如何排队等待资源访问。
输入一条DNA序列,自动生成互补链并转录为RNA序列。
通过Service Worker或本地fetch模拟拦截和转发请求,查看修改后的请求响应。
选择任意基色,自动计算互补色、分裂互补及三分色,提供十六进制代码,一键复制。
输入 HTML 或网址,提取所有标题标签,生成文档大纲树,检测跳跃和缺失。
拖拽基色指针,自动计算互补、近似、三等分等七种和谐配色方案,复制十六进制值。
选择类型、作用域并填写描述,自动生成符合Conventional Commits规范的提交消息。
在勾选读写执行权限和对应的八进制数字、符号(rwx)之间互相转换。
输入开发者名单,依规则随机组成搭档,尽量不重复近期配对。
粘贴JSON对象,一键转换为简洁的YAML格式,方便编写配置文件。
粘贴带参数的URL,以表格形式列出所有Query参数与值。
模拟资源请求,对比ETag值,展示返回304 Not Modified的缓存协商机制,理解HTTP缓存。
添加、列出和删除内容索引中的条目,展示离线可用内容。
粘贴JSON对象,生成可折叠的树形视图,点击节点复制其键值路径,方便调试。
可视化Flexbox容器和子项的所有属性及选项,鼠标悬停预览效果。
将数字替换为自定义文字或Emoji,照样合并往更高阶进化。
创建一份让参与者寻找的物品或地标清单,可分享或打印。
交互式遗传密码轮盘,点击密码子三联体查看对应的氨基酸。
创建带有复选框或标签的多选下拉列表,支持删除已选项,键盘可全控。
在色相环上点选基色,自动生成互补色、分裂互补、三角色、四角色等方案。
定义一组词汇或短语,批量生成不重复的5x5宾果卡片,适合活动或教学使用。
通过Web MIDI API连接键盘,实时显示收到的音符开/关与控制器变化。