Salta ai contenuti
getnextpdf.com

Open core, niente lock-in

Spec: Apache License 2.0

NextPDF è open core. Il motore su cui costruisci — nextpdf/core — è rilasciato sotto la Apache License 2.0, quindi puoi usarlo, modificarlo e ridistribuirlo, anche commercialmente. Pro ed Enterprise sono add-on proprietari che paghi solo quando vuoi ciò che aggiungono. La fondazione è tua da tenere; le capacità avanzate sono opzionali.

La domanda costosa con qualunque motore documentale non è «quanto costa oggi». È «cosa succede il giorno in cui vorrò andarmene». Con un motore chiuso, quel giorno è un progetto di migrazione: ri-piattaformare, ri-testare, ri-certificare un output che i tuoi auditor avevano già approvato. Il costo di passaggio è il lock-in, e si paga per intero nel momento peggiore possibile.

L’open core elimina quella domanda per costruzione. La parte da cui dipendi di più — il motore di rendering, il modello a oggetti, la conformità agli standard — è sotto licenza permissiva e resterà tale per la versione che hai adottato. Non sei mai a un rinnovo di distanza dal perdere l’accesso al codice su cui è costruito il tuo prodotto.

  • Il motore core è Apache-2.0: usa, copia, modifica, ridistribuisci e usa commercialmente, senza alcuna restrizione non commerciale.
  • La licenza include una concessione di brevetto esplicita dai contributori, con una clausola di risoluzione difensiva (Spec: Apache License 2.0, §3).
  • Pro ed Enterprise sono add-on proprietari. Paghi per capacità avanzate, mai per il diritto di continuare a usare il core aperto.
  • La ridistribuzione comporta doveri di attribuzione — mantieni gli avvisi, includi la licenza, dichiara le tue modifiche, riporta in avanti NOTICE (Spec: Apache License 2.0, §4).
  • Puoi forkare e distribuire il codice; non puoi distribuirlo sotto il nome o il logo NextPDF (Spec: Apache License 2.0, §6).

Il modello è deliberatamente semplice, e la semplicità è il punto. Ci sono tre cose, e rispondono a tre domande diverse.

  1. Core open sourcenextpdf/core sotto la Apache License 2.0 — usa, modifica, ridistribuisci, commercializza. È la fondazione su cui costruisci, ed è tua da tenere.
  2. Add-on proprietariNextPDF Pro ed Enterprise aggiungono capacità avanzate sotto licenza commerciale. Paghi per ciò che aggiungono, non per l'uso continuato del core.
  3. MarchioIl nome e il logo NextPDF sono riservati. La licenza del codice non concede diritti sul brand — quel confine è ciò che mantiene «NextPDF» a significare il software ufficiale.
I tre livelli del modello di licenza di NextPDF: il core open source Apache-2.0, gli add-on proprietari Pro ed Enterprise e il marchio sul nome e sul logo NextPDF. I diritti sul codice derivano dal primo; l'accesso alle capacità dal secondo; i diritti sul brand restano del titolare del marchio.

La Apache License 2.0 è una licenza open source permissiva approvata dalla Open Source Initiative. Per il core, concede ampi diritti d’uso — sorgente o compilato, autonomo o come parte di un’opera più ampia — senza alcuna clausola non commerciale. Puoi inserire il core dentro un prodotto closed-source, a pagamento o interno.

Due clausole vale la pena nominarle, perché sono il punto in cui «permissivo» diventa «duraturo». La licenza porta con sé una concessione di brevetto esplicita: i contributori ti concedono una licenza di brevetto esente da royalty sui loro contributi, e quella concessione si risolve solo in modo difensivo, se avvii determinate cause in materia di brevetti sul software (Spec: Apache License 2.0, §3). È una protezione che una nuda licenza «fai quello che vuoi» non sempre ti dà. E la ridistribuzione è consentita ma non priva di obblighi: mantieni gli avvisi esistenti di copyright, brevetto, marchio e attribuzione, includi la licenza, dichiari le modifiche apportate ai file modificati e riporti in avanti qualsiasi file NOTICE (Spec: Apache License 2.0, §4). Onorare quei doveri è il prezzo della libertà, ed è basso.

Ciò per cui paghi, quando paghi, è capacità — non continuità. La divisione è netta: lo stesso writer a memoria limitata, lo stesso modello a oggetti, la stessa conformità agli standard vivono nel core, che tu compri o no qualcosa.

The open-source core engine (nextpdf/core) — edition availability
EditionAvailability
Core

Apache-2.0. Il motore di rendering completo, il modello a oggetti e l’output PDF 2.0 — liberi da usare, modificare, ridistribuire e commercializzare. È la fondazione, ed è lo stesso motore sotto ogni edizione.

Pro

Pro si basa sull’identico core Apache-2.0 e aggiunge capacità proprietarie. Non sostituisce il core né cambia i tuoi diritti su di esso.

Enterprise

Enterprise si basa sull’identico core Apache-2.0 e aggiunge capacità proprietarie. Non sostituisce il core né cambia i tuoi diritti su di esso.

Pro ed Enterprise non sono open source. I loro pacchetti dichiarano "license": "LicenseRef-NextPDF-Commercial", e i loro termini vivono nel NextPDF Commercial License Agreement (Version 3.0) — non nella Apache License 2.0, e non desunti dal core aperto. Aggiungono cose; non tolgono nulla a ciò che il core ti dà.

Il confine è visibile nel posto più ordinario che esista: il tuo composer.json. Adottare il core aperto è una sola dipendenza da registro pubblico.

<?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);

Niente in quel programma è in prestito. Non c’è alcun controllo di licenza tra te e il motore, nessuna edizione che debba essere presente perché il core giri. Se in seguito vorrai una capacità che Pro o Enterprise fornisce, la aggiungi. Se non lo farai mai, il core continua a funzionare esattamente come fa oggi.

Il fraintendimento frequente è «open core significa che ottengo anche il brand». Non è così. La Apache License 2.0 non concede alcun diritto sui nomi commerciali, i marchi o i loghi del licenziante, al di là di un riferimento ragionevole e consueto all’origine dell’opera (Spec: Apache License 2.0, §6). Quindi puoi forkare nextpdf/core, modificarlo e ridistribuirlo — è il diritto sul codice — ma non puoi distribuire quel fork in quanto «NextPDF» o sotto il logo NextPDF. Scegli un tuo nome.

Quella divisione non è un tranello nascosto nella generosità. È ciò che rende la generosità sicura. Una licenza permissiva può cedere il codice proprio perché il diritto dei marchi mantiene «NextPDF» a significare il software ufficiale e non modificato anche dopo che il codice è stato forkato. Senza il confine, qualunque build alterata potrebbe chiamarsi NextPDF, e nessuno potrebbe distinguere il motore ufficiale dalla patch di qualcuno. La linea protegge gli utenti, non solo il marchio. Il trattamento completo codice-contro-brand vive sulla pagina del marchio.

Un secondo equivoco è che «open core» renda in qualche modo aperte anche le edizioni a pagamento. Non è così. Che il core sia Apache-2.0 non dice nulla su Pro o Enterprise — quelle sono proprietarie a prescindere dalla licenza del core.

L’open core è un vantaggio reale, dichiarato apertamente — non l’affermazione che tutto sia gratuito. Le capacità avanzate in Pro ed Enterprise sono genuinamente proprietarie e genuinamente a pagamento; questa pagina non finge il contrario, e non fa alcuna promessa sui termini di quelle edizioni, che vivono nel tuo accordo commerciale.

«Niente lock-in» è preciso. Significa che la fondazione su cui costruisci è sotto licenza permissiva e resta utilizzabile alle tue condizioni. Non significa che ogni funzionalità sia nel core, e non significa che migrare via da una capacità Pro o Enterprise che hai adottato sia a costo zero — una capacità proprietaria è, per natura, una dipendenza che ti sei assunto consapevolmente. La libertà è nel core.

I doveri di attribuzione ai sensi dell’Apache-2.0 §4 sono obblighi, non opzioni. Una ridistribuzione che ometta gli avvisi, tralasci la licenza o nasconda le modifiche apportate ai file modificati è una violazione della licenza anche se la licenza è permissiva. Qui la libertà viene con un elenco breve e onesto di doveri.

Questa pagina è un riassunto in linguaggio semplice del modello di licenza, non la licenza stessa e non un parere legale. Dove questo riassunto e i documenti autorevoli divergono — il file LICENSE nel pacchetto, e il tuo accordo commerciale per le edizioni a pagamento — prevalgono quei documenti. Il trattamento completo e vincolante è sulla pagina sulle licenze.

  • Licenze del prodotto — il resoconto autorevole e in linguaggio semplice di quale licenza si applica a quale edizione, e cosa concede ciascuna.
  • Marchio e uso del brand — il confine codice-contro-brand per intero, con usi accettabili e inaccettabili.
  • L’azienda dietro NextPDF — chi detiene il marchio e perché un prodotto commerciale è diventato open source.
  • Quando non usare NextPDF — un resoconto onesto di dove si ferma il core e dove inizia un add-on.
  • Open core — un modello in cui un core open source sotto licenza permissiva è circondato da add-on proprietari a pagamento. Il core è libero da usare e da tenere; gli add-on sono opzionali.
  • Apache License 2.0 — una licenza open source permissiva e approvata dall’OSI. Concede ampi diritti di uso, modifica e ridistribuzione, include una concessione di brevetto esplicita, richiede l’attribuzione in caso di ridistribuzione e non concede diritti sui marchi.
  • Patent grant — una licenza esplicita ed esente da royalty sui brevetti dei contributori che coprono i loro contributi, con risoluzione difensiva se intenti causa su determinati brevetti relativi al software (Apache-2.0 §3).
  • NOTICE file — un file di attribuzione che, quando presente nell’opera, deve essere riportato in avanti nella tua ridistribuzione ai sensi dell’Apache-2.0 §4.
  • Lock-in — il costo di passaggio che rende costoso lasciare un fornitore. L’open core lo elimina per la fondazione concedendo il core sotto licenza permissiva.