esdecode

Apache-2.0 vs BSD-3-Clause License

Apache License 2.0 compared with BSD 3-Clause "New" or "Revised" License: what each licence allows, and whether code under one can be used in a project under the other. Results are generated by the open-source license compatibility checker.

Quick Answer

Compatibility is directional, so both directions are answered separately (distributed software):

Apache-2.0 code in a project licensed under BSD-3-Clause

Generally Compatible

Using Apache-2.0-licensed code in a project under BSD-3-Clause is generally compatible in this scenario.

Apache-2.0 permits commercial use.

BSD-3-Clause code in a project licensed under Apache-2.0

Generally Compatible

Using BSD-3-Clause-licensed code in a project under Apache-2.0 is generally compatible in this scenario.

BSD-3-Clause permits commercial use.

Key Differences

  • Mark modified files: Apache-2.0: yes; BSD-3-Clause: no.
  • Express patent licence: Apache-2.0: yes; BSD-3-Clause: no.
  • Patent termination clause: Apache-2.0: yes; BSD-3-Clause: no.

Comparison Table

Apache-2.0BSD-3-Clause
TypeOpen sourceOpen source
OSI approvedYesYes
Commercial usePermittedPermitted
ModificationPermittedPermitted
DistributionPermittedPermitted
CopyleftNoneNone
Network-use (SaaS) clauseNoNo
Source disclosureNot requiredNot required
Same licence for distributed changesNoNo
Attribution / noticesYesYes
Mark modified filesYesNo
Express patent licenceYesNo
Patent termination clauseYesNo
Trademark rights grantedNoNo

Commercial Use

  • Apache-2.0: permitted.
  • BSD-3-Clause: permitted.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 permits commercial use.
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause permits commercial use.

Proprietary Software

Apache-2.0 code in closed-source commercial software

Generally Compatible

Using Apache-2.0-licensed code in a proprietary project is generally compatible in this scenario.

Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

BSD-3-Clause code in closed-source commercial software

Generally Compatible

Using BSD-3-Clause-licensed code in a proprietary project is generally compatible in this scenario.

BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

  • Apache-2.0 code in closed-source commercial software: Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.
  • BSD-3-Clause code in closed-source commercial software: BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

SaaS

  • Network-use clause: Apache-2.0: no; BSD-3-Clause: no.

Apache-2.0 code in a closed-source SaaS

Generally Compatible

Using Apache-2.0-licensed code in a proprietary project is generally compatible in this scenario.

Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

BSD-3-Clause code in a closed-source SaaS

Generally Compatible

Using BSD-3-Clause-licensed code in a proprietary project is generally compatible in this scenario.

BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

  • Apache-2.0 code in a closed-source SaaS: Apache-2.0 has no network-use (SaaS) clause.
  • BSD-3-Clause code in a closed-source SaaS: BSD-3-Clause has no network-use (SaaS) clause.

Modification

  • Apache-2.0: permitted; modified files must be marked.
  • BSD-3-Clause: permitted.

Modifying Apache-2.0 code used in closed-source software

Generally Compatible

Using Apache-2.0-licensed code in a proprietary project is generally compatible in this scenario.

Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

Modifying BSD-3-Clause code used in closed-source software

Generally Compatible

Using BSD-3-Clause-licensed code in a proprietary project is generally compatible in this scenario.

BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

  • Modifying Apache-2.0 code used in closed-source software: Apache-2.0 permits modification. Apache-2.0 requires modified files to carry notices stating that they were changed.
  • Modifying BSD-3-Clause code used in closed-source software: BSD-3-Clause permits modification.

Distribution

  • Apache-2.0: permitted.
  • BSD-3-Clause: permitted.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 permits distribution.
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause permits distribution.

Copyleft

  • Apache-2.0: none copyleft.
  • BSD-3-Clause: none copyleft.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 has no copyleft.
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause has no copyleft.

Source Disclosure

  • Apache-2.0: not required.
  • BSD-3-Clause: not required.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 does not require you to publish source code.
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause does not require you to publish source code.

Attribution

  • Apache-2.0: Give recipients a copy of the licence.
  • Apache-2.0: Cause modified files to carry prominent notices stating that you changed them.
  • Apache-2.0: Retain copyright, patent, trademark and attribution notices from the source form.
  • Apache-2.0: If a NOTICE file is included, include its attribution notices in the distribution.
  • BSD-3-Clause: Retain the copyright notice, conditions and disclaimer in source redistributions.
  • BSD-3-Clause: Reproduce the copyright notice, conditions and disclaimer in documentation or other materials for binary redistributions.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 requires the copyright and licence notices to be kept with copies you distribute. If the Apache-2.0 component ships a NOTICE file, its attribution notices must be reproduced in your distribution (section 4(d)).
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause requires the copyright and licence notices to be kept with copies you distribute. BSD-3-Clause prohibits using the copyright holder's or contributors' names to endorse or promote your product without permission.

Patent Considerations

  • Express patent licence: Apache-2.0: yes; BSD-3-Clause: no.
  • Patent termination clause: Apache-2.0: yes; BSD-3-Clause: no.
  • Apache-2.0 code in a project licensed under BSD-3-Clause: Apache-2.0 includes an express patent licence from contributors. That patent licence terminates for anyone who initiates patent litigation alleging that the work infringes a patent.
  • BSD-3-Clause code in a project licensed under Apache-2.0: BSD-3-Clause contains no express patent licence. Any patent permission would depend on implied licence doctrines, which vary by jurisdiction.

Common Scenarios

ScenarioApache-2.0 code in a project licensed under BSD-3-ClauseBSD-3-Clause code in a project licensed under Apache-2.0
Use as a dependency / libraryGenerally CompatibleGenerally Compatible
Copy source code into the projectGenerally CompatibleGenerally Compatible
Modify the componentGenerally CompatibleGenerally Compatible
SaaS / network service (not distributed)Generally CompatibleGenerally Compatible
Internal / private use onlyGenerally CompatibleGenerally Compatible
Resell the softwareGenerally CompatibleGenerally Compatible
White-label / rebrandGenerally CompatibleGenerally Compatible

FAQ

Can I use Apache-2.0 code in a project licensed under BSD-3-Clause?

Using Apache-2.0-licensed code in a project under BSD-3-Clause is generally compatible in this scenario. Apache-2.0 permits commercial use.

Can I use BSD-3-Clause code in a project licensed under Apache-2.0?

Using BSD-3-Clause-licensed code in a project under Apache-2.0 is generally compatible in this scenario. BSD-3-Clause permits commercial use.

Can Apache-2.0-licensed code be used in closed-source commercial software?

Using Apache-2.0-licensed code in a proprietary project is generally compatible in this scenario. Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

Can BSD-3-Clause-licensed code be used in closed-source commercial software?

Using BSD-3-Clause-licensed code in a proprietary project is generally compatible in this scenario. BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

Do I have to publish my source code when I use Apache-2.0 code?

Apache-2.0 does not require you to publish source code.

Do I have to publish my source code when I use BSD-3-Clause code?

BSD-3-Clause does not require you to publish source code.

Can I use Apache-2.0 code in a closed-source SaaS?

Using Apache-2.0-licensed code in a proprietary project is generally compatible in this scenario. Apache-2.0 generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

Can I use BSD-3-Clause code in a closed-source SaaS?

Using BSD-3-Clause-licensed code in a proprietary project is generally compatible in this scenario. BSD-3-Clause generally allows the code to be included in proprietary software without releasing your source code, provided its notices are kept.

Try the Interactive Checker

Change the scenario, say whether the code is modified, distributed or offered as SaaS, and see every rule that applies.

Related Comparisons

Authoritative Sources

This tool provides general software licensing information and is not legal advice. License obligations may depend on how software components are combined, modified, distributed and used. For high-risk results, review the actual license text before relying on this result.