開放核心,無鎖定
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。完整的算繪引擎、物件模型與 PDF 2.0 輸出——可自由使用、修改、再散布並商業化。這是基礎,而且在每一個版本之下都是同一套引擎。 |
| Pro | Pro 建立在相同的 Apache-2.0 核心之上,並增添專有能力。它不會取代核心,也不會改變你對核心的權利。 |
| Enterprise | Enterprise 建立在相同的 Apache-2.0 核心之上,並增添專有能力。它不會取代核心,也不會改變你對核心的權利。 |
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——關於核心在哪裡終止、附加元件在哪裡開始的誠實說明。
詞彙表
標題為「詞彙表」的區段- 開放核心(Open core)——一種模式,由一個以寬鬆方式授權的開放原始碼核心,被專有、付費的附加元件所環繞。核心可自由使用並保有;附加元件是選用的。
- Apache License 2.0——一套寬鬆、經 OSI 認可的開放原始碼授權。它授予廣泛的使用、修改與再散布權利,包含一項明示專利授予,要求再散布時須標示,且不授予任何商標權利。
- 專利授予(Patent grant)——一項明示、免權利金的授權,涵蓋貢獻者就其貢獻所持有的專利,並在你就該軟體進行某些專利訴訟時防禦性地終止(Apache-2.0 §3)。
- NOTICE 檔案——一個標示檔案,當它存在於作品中時,必須在你依 Apache-2.0 §4 進行的再散布中延續下去。
- 鎖定(Lock-in)——使離開某廠商變得昂貴的切換成本。開放核心藉由以寬鬆方式授權核心,為這個基礎消除了它。