QiLing Tools

©️Open Source License Picker - Compare MIT, Apache & GPL

MIT, Apache-2.0 or GPL? This tool narrows the choice with five questions: are you licensing code, docs or data; must people who modify and redistribute it keep it open (permissive, file-level, library-level, the whole work, or even network services); do you need an explicit patent grant; must users keep your attribution; and must it be combinable with GPLv2 or GPLv3 projects. Every license gets the reasons it fits or doesn’t. The comparison table lists 15 common licenses (MIT, Apache-2.0, BSD-2/3-Clause, ISC, MPL-2.0, LGPL-2.1/3.0, GPL-2.0/3.0, AGPL-3.0, Unlicense, CC0-1.0, plus CC BY 4.0 and CC BY-SA 4.0 for documentation) by patent grant, notice, change marking, source-disclosure scope, network clause, trademarks, GPL compatibility and OSI/FSF approval. Pick one to generate the full LICENSE with your year and name (the long GNU, Apache and MPL texts are verbatim copies of the official files, loaded on demand), the SPDX identifier with -only / -or-later and dual-license expressions, source-file headers in many comment styles (full notice or REUSE-style SPDX tags), and the license fields for package.json, Cargo.toml, pyproject.toml, composer.json, gemspec and pom.xml plus a README badge. Everything runs in your browser.

Free · No sign-up · Runs in your browserLast updated:

Loading tool...

How to use Open Source License Picker

  1. 1Answer the questions under Help me choose about work type, copyleft, patents, attribution and GPL compatibility, and review the ranked suggestions
  2. 2Open the Comparison tab for details and click a license name to generate it
  3. 3Enter the year, holder and project name, copy or download the LICENSE, and copy the file header and manifest fields

FAQ

Should I choose MIT or Apache-2.0?
Both are permissive and allow closed-source commercial use. Apache-2.0 adds an explicit patent grant with a retaliation clause (suing for patent infringement ends your license) and requires keeping the NOTICE file and marking changes, which suits company projects and patent-sensitive code; MIT is shorter and simpler. Apache-2.0 is incompatible with GPLv2, which is why Rust projects often use “MIT OR Apache-2.0”.
What is the difference between GPL, LGPL and AGPL?
GPL is strong copyleft: if you distribute a program containing GPL code, including code linked with it, the whole program must be released under the GPL. LGPL only requires changes to the library itself to be released, so proprietary programs may link to it. AGPL adds a network clause to GPLv3: if you modify it and let users interact with it over a network, you must offer them the source.
What do -only and -or-later mean?
GNU licenses let you choose “this version only” (e.g. GPL-3.0-only) or “this version or any later version” (GPL-3.0-or-later). The or-later form lets your code be combined with code under future GPL versions, but also accepts terms the FSF publishes in the future. The Linux kernel is GPL-2.0-only, so it cannot absorb GPLv3 code.
Which license should I use for docs, images or data?
Software licenses target code. For documentation, images and video, CC BY 4.0 (attribution) or CC BY-SA 4.0 (share-alike) are common; for datasets, samples and assets you want everyone to reuse freely, CC0 waives your rights. CC0 explicitly withholds patent rights and is not OSI-approved, so it is not recommended for software. This tool is informational and not legal advice.