如何为你的代码选择一个开源协议

摘要:
简单而容易的协议如果你只想要一个简单的协议而没有太多麻烦。麻省理工学院的协议相对宽松,但它仍然抓住了要点。Apache协议也是一个类似于MIT的相对宽松的协议,但它只是表明作品的所有者已经授权了一些用户的专利。Apache服务器、SVN和NuGet是使用的Apache协议。该协议要求基于该代码开发的代码分发器或衍生作品在同一协议下发布。
快速选择

目前流行的开源协议有很多,并且同一款协议有很多变种,比如你或许看到过' CC Attribution-NoDerivs',' CC Attribution-NonCommercial'同属CC协议(后面会有介绍)。如此纷繁的协议该如何选择?协议太宽松会导致作者丧失对作品的很多权利,太严格又不便于使用者使用及作品的传播。所以除了协议多之外,你还要考虑你对作品想保留哪些权利,放开哪些限制。

如果你不想了解太多,只是想要一个简直直接的答案,下面给出的建议或许适合你。下方关于协议的选择及表格来自GitHub choosealicence项目。

简单宽松的协议

如果你只想要一个简单点的协议不想太麻烦的话。

MIT协议相对宽松但还是抓住了要点的。此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险,当然也没有技术支持的义务。jQuery和Rails就是MIT协议。

考虑有专利的情况

如果你的作品中涉及到专利相关。

Apache协议也是个相对宽松与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权(我的理解是软件作品中含有专利,但它授权你可以免费使用)。Apache服务器,SVN还有NuGet等是使用的Apache协议。

代码分享与促进

如果你在乎作品的传播和别人的修改,希望别人也以相同的协议分享出来。

GPL(V2V3)是一种版本自由的协议(可以参照copy right来理解,后者是版本保留,那copyleft便是版权自由,或者无版权,但无版权不代表你可以不遵守软件中声明的协议)。此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。此协议的版本3与版本2相近,只是多3中加了条对于不支持修改后代码运行的硬件的限制(没太明白此句话的内涵)。

https://blog.csdn.net/garfielder007/article/details/80426905

免责声明:文章转载自《如何为你的代码选择一个开源协议》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Docker修改容器配置导致启动失败的解决方法ABP理论学习之SignalR集成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【C++开源库】Windows 下编译 libcurl 库

一、简介 libcurl 是一个跨平台的网络协议库,支持 http, https, ftp, gopher, telnet, dict, file, 和 ldap 协议。libcurl 同样支持 HTTPS 证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP 基本表单上传,代理,cookies 和用户认证。想要知道更多关于 lib...

阿里开源的那个牛X的问题排查工具——Arthas,推出IDEA插件了!

作者 | 汪小哥 Arthas 对于很多 Java 开发者来说,已经不可分割了,在我们日常开发、线上问题排查中扮演了非常重要的角色。作为小开发的我,日常需要排查线上运营同学提的各种 bug、各种线上问题诊断、日常运维、线上问题优化等等。 在刚来公司时,我是比较恐惧运维任务的,代码不熟悉、各种问题比较多...几乎崩溃的状态,运维的一周基本上没有干活,完全是全...

五大好用的开源MySQL管理工具推荐

众所周知,对于数据库管理工作者(DBA)来说,保持数据正常运行在最佳状态需要具备敏捷、专注、冷静和快速的反应能力。因为数据库几乎是所有应用程序成功运行的核心,由于DBA负责组织数据,因此寻找可靠的工具帮助简化数据库管理流程并简化日常维护任务是必要的。下面是小编整理的五个好用的开源MySQL管理工具,可以改善MySQL环境中的CLI和Web管理,SQL查询,...

GitHub上优秀的Go开源项目

2014年11月,Golang官方博客发布Go语言核心开发组成员Andrew Gerrand文章 《Half a decade with Go》,以纪念Go语言发布5周年。Andrew Gerrand在文章中称,Go语言在工业界向云计算转型时代找到了自己的位置,目前一些重量级的云计算项目比如有名的Docker等都是用Go语言开发的,并预言“2015年将是G...

go 优化技巧

go语言最全优化技巧总结,值得收藏! https://mp.weixin.qq.com/s/_VGaV8ef65h9goxxfWejtQ 赵柯 云加社区 2021-08-23   导语 | 本文总结了在维护go基础库过程中,用到或者见到的一些性能优化技巧,现将一些理解梳理撰写成文,和大家探讨。     一、常规手段   (一)sync.Pool  ...

基于第三方开源库的OPC服务器开发指南(3)——OPC客户端

本篇将讲解如何编写一个OPC客户端程序测试我们在前文《基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署》一篇建立的服务器。本指南的目的是熟悉OPC服务器的开发流程,所以客户端部分我就不做过多描述,只是简单讲解几个关键技术细节及其实现函数,完整工程源码请从如下地址获取: https://github.com/Neo-T/OPCDA...