alpha
Open Source Licenses
Quick reference for selecting the right open source license for your project.
Open Source Licenses
Choose License by Goal
| Goal | License |
|---|---|
| Maximum adoption, don’t care about attribution | MIT |
| Attribution + trademark/patent protection | Apache 2.0 |
| Force derivatives to be open source | GPL-3.0 |
| Force derivatives + SaaS to be open source | AGPL-3.0 |
License Feature Comparison
| Aspect | MIT | BSD-3 | Apache 2.0 | GPL-3.0 | AGPL-3.0 |
|---|---|---|---|---|---|
| Use in proprietary software | Yes | Yes | Yes | No | No |
| Modify without sharing | Yes | Yes | Yes | No | No |
| SaaS use without sharing | Yes | Yes | Yes | Yes | No |
| Attribution required | Yes | Yes | Yes | Yes | Yes |
| Patent grant | No | No | Yes | Yes | Yes |
| Trademark protection | No | Yes | Yes | No | No |
License Recommendations
MIT - Default for maximum adoption. Simple, short, universally understood.
BSD-3-Clause - Like MIT, adds “no endorsement” clause. Prevents using your name to promote derivatives.
Apache 2.0 - Attribution with protection. Includes patent grant (protects against patent trolls) and explicit trademark clause.
GPL-3.0 - Copyleft license. Derivatives MUST be open source. Does not cover SaaS.
AGPL-3.0 - GPL + closes the SaaS loophole. Network use triggers source disclosure. Effectively discourages corporate adoption.
Setting Up Apache 2.0 License
Download the license:
curl -s https://www.apache.org/licenses/LICENSE-2.0.txt -o LICENSE
Edit the LICENSE file:
- Add
Copyright <year> <name>at top - Remove APPENDIX section (ends at “END OF TERMS AND CONDITIONS”)
- Clean up formatting (remove excessive indentation)
Update pyproject.toml:
license = "Apache-2.0"