What is NPL?
Niko's Persistent License (NPL) is a simple license that allows you to do whatever you want with software, with one condition: it must stay under the NPL license.
I drew inspiration from Unlicense, and use it in almost all of my personal projects.
Why Use NPL?
I like the idea of permissive licenses, but I don't like how pretty much all of them allow for that permissiveness to be stripped away by changing or removing the license.
NPL provides that same level of freedom but requires the license to remain NPL.
NPL vs GPL
NPL can *sound* like GPL, but it's different--I promise!
tl;dr: it's that GPL requires *every* derivative to be GPL as well; if you use a GPL library and you distribute your code--you have to be GPL as well! NPL only requires distributed source code to be NPL. Binaries, downstream software, and whatnot aren't affected.
| Characteristic | NPL | GPL |
|---|---|---|
| License type | Permissive with a persistence requirement that *only* applies to source | Strong copyleft, all downstream software are affected as well |
| Redistribution | Allowed for any purpose if NPL remains attached to *source* distributions; binaries and proprietary software don't need NPL attached to them | Allowed if derivative works are also distributed under GPL |
| Modification | Allowed freely, but modified *source* must keep NPL when distributed (i.e., binaries and downstream software don't need to keep NPL) | Allowed freely, but derivatives must be GPL when distributed |
| Binary/distribution requirement | Binaries do not need to comply with the persistence condition | Binaries must provide source or an offer for source under GPL terms |
| Downstream software | Any distinct software that incorporates NPL (i.e., software that uses NPL software as a library) do not need to be licensed under NPL | Any software that incorporates GPL licensed software must be licensed as GPL as well |
| Primary goal | Keep source code free while preserving the license | Ensure downstream freedom by enforcing GPL on derivatives |
The NPL
Use this license in a file named LICENSE in your project:
# Niko's Persistent License (NPL) V1.4
## In this license, "NPL" refers to this license, Niko's Persistent License.
## tl;dr: You can do pretty much anything that you'd do normally with the code, except remove or change the license to anything other than a newer NPL license.
Note: this tl;dr does NOT define the license or change its meaning in any way! The license is solely defined by everything *other* than it.
This is free and unencumbered software released under the following terms.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means, subject to the following condition:
## Persistence of NPL
This software *must* remain under this license (NPL). Relicensing to a non-NPL license or removing the license file from source distributions is prohibited. This only applies to the distribution of source code, therefore binaries and downstream software do not need to comply with NPL's condition. This does not apply to later official versions of NPL; you may relicense to any newer official version of NPL as long as it is not a beta one.
Note that "downstream software" refers to distinct software that uses NPL software (i.e., downstream software is defined here as software that merely interacts with NPL software through standard APIs, CLI arguments, or configuration files)
Re-implementation is only 'distinct software' if it involves original creative effort. AI-generated rewrites that preserve the functional structure of this software, or simple refactors remain subject to the persistence requirement.
## No Other Requirements
The sole requirement is persistence.
## Disclaimer
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://niko-at-chalupa.github.io/npl-license/>
If you'd like, you may remove the last line linking to this website. That is the only allowed modification to official versions of the license.
Note: This license and website are derivative of Unlicense, adapted with the additional requirement of license persistence.