Copyleft is a licensing requirement that derivative works of a licensed work must be distributed under the same (or a compatible) licence. The term is a play on “copyright”: rather than reserving rights, copyleft uses copyright law to compel downstream sharing.
Licenses fall on a spectrum:
None (permissive)
No share-back requirement. MIT, Apache-2.0, BSD, ISC. Derivative works can be relicensed as anything, including proprietary. The trade-off: a proprietary fork can absorb your work without giving anything back.
Weak copyleft
The licence applies only to the licensed files themselves (or the licensed library as a unit). New files or calling programs can be under any licence.
- MPL-2.0 — file-level copyleft with a patent grant.
- LGPL-3.0 — library-level copyleft, designed for shared libraries.
- EPL-2.0 — similar in spirit, module-level.
Weak copyleft is the middle ground: it keeps improvements to the licensed code open without forcing the entire program to adopt the licence.
Strong copyleft
The entire derivative work must be under the same licence when distributed.
- GPL-3.0 — the canonical strong copyleft.
- CC-BY-SA-4.0 — strong copyleft for content and data.
Strong copyleft ensures the whole pipeline stays open, but it also makes the licensed code harder to adopt in a mixed codebase — you have to be willing to adopt the licence project-wide.
Network copyleft
Strong copyleft that also applies when the software is offered as a network service. Prevents the “SaaS loophole” — where a company runs a modified copy on their servers but never distributes the modified binaries, and so is not triggered by GPL.
- AGPL-3.0 — network copyleft that only applies to software offered over a network.
- SSPL-1.0 — extends the copyleft requirement to the entire service stack (not OSI-approved).
Which is right for me?
- Want wide adoption, don’t mind proprietary derivatives → permissive.
- Want improvements to your code to stay open, but do not want to force your licence on everyone who uses it → weak copyleft.
- Want the whole derivative work open → strong copyleft.
- Want to prevent being outcompeted by a proprietary hosted version of your own code → network copyleft.