开放核心,无锁定
Spec: Apache License 2.0Apache License 2.0
NextPDF 是开放核心。你在其上构建的引擎——nextpdf/core——以 Apache License 2.0 发布,因此你可以使用、修改并再分发它,包括用于商业用途。Pro 与 Enterprise 是专有附加组件,只在你想要它们所增添的内容时才付费。这个基座归你所有、由你长期保留;那些高级能力则是可选的。
为何重要
标题为“为何重要”的章节对任何文档引擎而言,昂贵的问题都不是“它今天要花多少钱”,而是“我想离开的那一天会发生什么”。面对一个封闭引擎,那一天就是一个迁移项目:重新换平台、重新测试、重新认证——而那些输出,你的审计员早已签字认可。这份切换成本就是锁定,而它会在最糟糕的时刻被一次性付清。
开放核心从构造上就消除了那个问题。你最依赖的那部分——渲染引擎、对象模型、标准符合性——以宽松许可发布,而且对你所采用的那个版本来说会一直如此。你永远不会因为差一次续订,就失去对你产品赖以构建的代码的访问权。
精简版说明
标题为“精简版说明”的章节- 核心引擎采用 Apache-2.0:使用、复制、修改、再分发,以及商业使用,没有非商业限制。
- 该许可证包含来自贡献者的明确专利授权,并附带一项防御性终止条款(Spec: Apache License 2.0, §3Apache License 2.0 §3)。
- Pro 与 Enterprise 是专有附加组件。 你为高级能力付费,绝不为继续使用开放核心的权利付费。
- 再分发附带署名义务——保留各项声明、包含许可证、说明你的改动、向后携带
NOTICE(Spec: Apache License 2.0, §4Apache License 2.0 §4)。 - 你可以分叉并交付那份代码;但你不可以用 NextPDF 名称或徽标来交付它(Spec: Apache License 2.0, §6Apache License 2.0 §6)。
NextPDF 的处理方式
标题为“NextPDF 的处理方式”的章节这套模型刻意保持简单,而简单本身正是要点。一共有三样东西,它们回答三个不同的问题。
- Open-source corenextpdf/core under the Apache License 2.0 — use, modify, redistribute, commercialise. This is the foundation you build on, and it is yours to keep.
- Proprietary add-onsNextPDF Pro and Enterprise add advanced capabilities under a commercial license. You pay for what they add, not for continued use of the core.
- TrademarkThe NextPDF name and logo are reserved. The code license does not grant brand rights — that boundary is what keeps 'NextPDF' meaning the official software.
Apache License 2.0 是一个经开源促进会(Open Source Initiative)批准的宽松开源许可证。对于核心,它授予广泛的使用权——源码或编译版、独立使用或作为更大作品的一部分——且没有非商业条款。你可以把核心放进一个闭源、付费或内部的产品之中。
有两个条款值得点名,因为它们正是“宽松”变成“持久”的地方。该许可证带有一项明确专利授权:贡献者就其贡献授予你一项免版税的专利许可,而这项授权仅在防御性情形下终止,即当你就该软件发起某些专利诉讼时(Spec: Apache License 2.0, §3Apache License 2.0 §3)。这是一项一份简单的“随你便”式许可证并不总会给你的保护。而再分发虽被允许,却并非毫无义务:你要保留现有的版权、专利、商标与署名声明,包含许可证,说明你对所修改文件所做的改动,并向后携带任何 NOTICE 文件(Spec: Apache License 2.0, §4Apache License 2.0 §4)。履行这些义务是这份自由的代价,而它是一份很低的代价。
你付费购买的、以及你付费的时机,是能力——而不是延续。这个划分很干净:无论你是否曾经购买过任何东西,同一个有界内存写入器、同一个对象模型、同一份标准符合性都存在于核心之中。
| Edition | Availability |
|---|---|
| Core | Apache-2.0. The full rendering engine, object model, and PDF 2.0 output — free to use, modify, redistribute, and commercialise. This is the foundation, and it is the same engine under every edition. |
| Pro | Pro builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it. |
| Enterprise | Enterprise builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it. |
Pro 与 Enterprise 不是开源。它们的软件包声明 "license": "LicenseRef-NextPDF-Commercial",而它们的条款存在于 NextPDF Commercial License Agreement (Version 3.0) 中——既不在 Apache License 2.0 中,也不能从开放核心推断而来。它们增添东西;它们不会从核心给你的东西里拿走任何一样。
实务范例
标题为“实务范例”的章节这条边界在最寻常不过的地方就清晰可见:你的 composer.json。采用开放核心,就是一个公共注册表依赖。
<?php
declare(strict_types=1);
// composer require nextpdf/core//// nextpdf/core declares "license": "Apache-2.0" and ships the full// Apache License 2.0 text in its LICENSE file. This single dependency// is the open foundation — yours to use, modify, and redistribute.
use NextPDF\Core\Document;use NextPDF\Contracts\OutputDestination;
$document = Document::createStandalone();$document->setTitle('Open core, no lock-in');$document->addPage();$document->setFont('helvetica', 'B', 16);$document->cell(0, 12, 'Built on an Apache-2.0 foundation', newLine: true);
// Output uses only the open core. Nothing here is gated, time-limited,// or contingent on a paid edition. A Pro or Enterprise add-on, if you// ever choose one, layers on top of this — it does not stand between// you and the engine.$bytes = $document->output(dest: OutputDestination::String);那个程序里没有任何东西是借来的。你和引擎之间没有许可证检查,没有哪个版本必须存在核心才能运行。如果你日后想要 Pro 或 Enterprise 提供的某项能力,你把它加上即可。如果你从不需要,核心会一如今天那样继续工作。
常见误解
标题为“常见误解”的章节一个常见的误读是“开放核心意味着我连品牌也一起得到了”。并非如此。Apache License 2.0 不授予对许可方的商号、商标或徽标的任何权利,除了在描述作品来源时合理的、惯常的引用之外(Spec: Apache License 2.0, §6Apache License 2.0 §6)。所以你可以分叉 nextpdf/core、修改它并再分发它——那是代码权利——但你不可以把那个分叉当作“NextPDF”、或在 NextPDF 徽标下交付。给它取个你自己的名字吧。
那个划分不是藏在慷慨之中的陷阱。它正是让那份慷慨变得安全的东西。一个宽松许可证之所以能把代码送出去,恰恰是因为商标法让“NextPDF”即便在代码被分叉之后,仍然意指那个官方的、未经改动的软件。没有这条边界,任何经过改动的构建都可以自称 NextPDF,而没有人能从某人的补丁中分辨出官方引擎。这条界线保护的是用户,而不只是商标。代码与品牌的完整论述位于商标页面。
第二个误解是认为“开放核心”会以某种方式让付费版本也变成开放的。并非如此。核心采用 Apache-2.0 这一点,对 Pro 或 Enterprise 不作任何说明——无论核心采用何种许可证,那些版本都是专有的。
限制与边界
标题为“限制与边界”的章节开放核心是一项真实的优势,被坦白地陈述——而不是宣称一切都免费。Pro 与 Enterprise 中的高级能力是真正专有、真正付费的;本页不假装并非如此,也不就那些版本的条款作任何承诺,那些条款存在于你的商业协议中。
“无锁定”是精确的。它意味着你在其上构建的基座以宽松许可发布,并在你的条款下保持可用。它不意味着每一项特性都在核心里,它也不意味着从一项你已采用的 Pro 或 Enterprise 能力迁出是没有成本的——一项专有能力,就其本质而言,是一个你明知故采、主动承担的依赖。自由在于核心。
Apache-2.0 §4 项下的署名义务是义务,而不是可选项。一份丢弃了声明、省略了许可证,或隐藏了对所修改文件所做改动的再分发,即便许可证是宽松的,也是一次许可证违规。这里的自由附带一份简短而诚实的义务清单。
本页是该许可模型的白话摘要,既不是许可证本身,也不构成法律意见。当本摘要与权威文件——软件包中的 LICENSE 文件,以及付费版本的商业协议——有出入时,以那些文件为准。完整、具约束力的论述位于许可页面。
相关文档
标题为“相关文档”的章节- 产品许可——关于哪个许可证适用于哪个版本、以及各自授予什么的权威白话说明。
- 商标与品牌使用——代码与品牌边界的完整说明,连同可接受与不可接受的用法。
- NextPDF 背后的公司——谁持有商标,以及一个商业产品为何变成了开源。
- 何时不应使用 NextPDF——关于核心在哪里终止、附加组件从哪里开始的诚实说明。
词汇表
标题为“词汇表”的章节- 开放核心——一种模型:一个以宽松许可发布的开源核心,被专有、付费的附加组件所环绕。核心可自由使用并长期保留;附加组件是可选的。
- Apache License 2.0——一个宽松的、经 OSI 批准的开源许可证。它授予广泛的使用、修改与再分发权利,包含一项明确专利授权,要求在再分发时署名,且不授予任何商标权利。
- 专利授权——一项明确的、免版税的、覆盖贡献者就其贡献所持专利的许可,附带防御性终止条款,即当你就该软件发起某些专利诉讼时(Apache-2.0 §3)。
- NOTICE 文件——一个署名文件,当它存在于作品中时,必须在你 Apache-2.0 §4 项下的再分发中向后携带。
- 锁定——使离开一家供应商变得昂贵的切换成本。开放核心通过以宽松许可发布核心,为这个基座消除了它。