Choosing an Open-Source License

A practical guide for research software and platforms

Why does the license matter?

An open-source license answers a simple question:

What are other people legally allowed to do with my software?

It determines whether others can:

  • use the software
  • modify it
  • redistribute it
  • use it commercially
  • incorporate it into proprietary products

Three questions to ask first

1. Use

Can anyone use the software?

Academic?
Non-profit?
Commercial?

2. Modify

Can users change the code?

If so, do they have to share those changes?

3. Commercialize

Can a company take the software and build a commercial product?

And can that product remain closed-source?

Open source does not mean “do whatever you want”

A license gives permissions subject to conditions.

For example, a license can require:

  • attribution or preservation of copyright notices
  • inclusion of the license text
  • disclosure of source code for certain derivative works
  • preservation of the same license for covered code
  • compliance with patent-related provisions

The real choice is how much freedom you give downstream users—and how much reciprocity you require.

Two broad families

Permissive

MIT
Apache 2.0
BSD

Generally allow:

  • commercial use
  • modification
  • redistribution
  • proprietary derivatives

Copyleft

GPL v3
AGPL v3
LGPL

Impose stronger conditions on certain redistribution or derivative uses.

The goal is to preserve openness for covered code.

MIT: maximum simplicity

What it allows

  • Use the software
  • Modify it
  • Redistribute it
  • Use it commercially
  • Combine it with proprietary software

What it requires

Primarily preservation of the copyright notice and license terms.

Choose this direction when: your main objective is broad adoption with minimal licensing friction.

Apache 2.0: permissive + explicit patent terms

Apache 2.0 is also permissive.

It allows:

  • commercial use
  • modification
  • redistribution
  • proprietary derivatives

But it includes more explicit provisions around patent rights and patent litigation than MIT.

Choose this direction when: you want permissive licensing but consider patent provisions important.

GPL v3: strong copyleft

GPL v3 allows commercial use, modification, and redistribution.

But when GPL-covered software is distributed under circumstances covered by the license, the corresponding source code and licensing obligations apply.

The philosophy

You can use and improve the software—but downstream distribution should preserve the same freedoms.

Would you rather maximize proprietary reuse, or maximize the likelihood that distributed derivatives remain open?

AGPL v3: copyleft for networked software

AGPL is closely related to GPL.

Its distinctive feature is designed to address a common modern scenario:

A company takes open-source software → modifies it → runs it as a network service → users interact with it over the internet.

AGPL adds conditions aimed at this type of network use.

Particularly relevant for: web platforms, APIs, cloud services, and software delivered as a service.

LGPL and MPL: middle-ground approaches

LGPL

Designed especially for libraries.

It generally permits proprietary applications to link to an LGPL library while imposing stronger obligations on modifications to the library itself.

MPL 2.0

A file-level copyleft approach.

Modified MPL-covered files generally remain under the MPL, while larger works can contain proprietary code.

The landscape at a glance

MIT Apache 2.0 GPL v3 AGPL v3 LGPL MPL 2.0
Commercial use ✓ ✓ ✓ ✓ ✓ ✓
Proprietary derivatives possible ✓ ✓ Limited by copyleft obligations Limited by copyleft obligations Generally ✓ Generally ✓
Strong copyleft — — ✓ ✓ Partial File-level
Network/SaaS focus — — — ✓ — —
Patent provisions Basic Explicit Yes Yes Yes Yes

This is a conceptual comparison, not a substitute for reviewing the license terms for a particular software architecture.

A practical decision tree

Do you want proprietary products to be able to build on your code?

→ Yes → Consider MIT / Apache 2.0 / BSD

→ No / want stronger reciprocity → Consider GPL

Is preventing closed modifications in network services especially important?

→ Yes → Consider AGPL

Is it primarily a library?

→ Consider LGPL or another library-appropriate license.

Want file-level copyleft rather than project-wide copyleft?

→ Consider MPL 2.0

Research software changes the question

For academic software, ask:

Adoption

Do we want researchers everywhere to use it with minimal friction?

Collaboration

Do we want improvements to come back to the community?

Translation into products

Should companies be able to build commercial products from it?

Long-term stewardship

Who will maintain the infrastructure and pay for it?

What is the primary objective: adoption, openness of derivatives, or a path to commercialization?

Software license ≠ data license

A platform may contain several distinct things:

Software → open-source software license

Datasets → data license / data-sharing terms

Models → potentially a separate model license

Documentation → potentially a documentation license

Third-party dependencies → their existing licenses still apply

Licensing the code does not automatically give you the right to redistribute the data inside the project.

University and research IP

Before choosing a license, establish:

  • Who owns the copyright?
  • Were university employees involved?
  • Were students involved?
  • Was sponsored research involved?
  • Are there third-party components?
  • Are there patent considerations?
  • Are there institutional open-source policies?
  • Are there contractual restrictions on the data?

The person who wrote the code is not necessarily the person who has authority to license it.

A possible strategy for a research platform

One possible architecture is:

Open-source core → Apache 2.0

Selected components where reciprocity matters → AGPL / GPL, where appropriate

Research datasets → separate data-sharing terms

Commercial hosted service → separate commercial offering

The license strategy can be designed around the project’s ecosystem—not necessarily one license for everything.

What should you choose?

Start with the outcome—not the license name.

If your priority is…

Maximum adoption and minimum friction
→ permissive license such as MIT or Apache 2.0

Keeping distributed derivatives open
→ GPL family

Addressing network-service use
→ AGPL

Library reuse with some copyleft
→ LGPL

File-level copyleft
→ MPL 2.0

Five take-home messages

  1. Open source is not one licensing model.
  2. Permissive and copyleft licenses make different trade-offs.
  3. Commercial use can be allowed under both permissive and copyleft licenses.
  4. AGPL deserves special attention for networked platforms.
  5. For research software, resolve ownership and data rights before publishing.

The key question

What do you want someone else to be able to do with your code five years from now?