Ir al contenido
getnextpdf.com

Núcleo abierto, sin dependencia de proveedor

Spec: Apache License 2.0

NextPDF es de núcleo abierto. El motor sobre el que construyes —nextpdf/core— se publica bajo la Apache License 2.0, de modo que puedes usarlo, modificarlo y redistribuirlo, incluso comercialmente. Pro y Enterprise son complementos propietarios por los que pagas solo cuando quieres lo que añaden. La base es tuya para quedártela; las capacidades avanzadas son opcionales.

La pregunta cara con cualquier motor documental no es «¿cuánto cuesta hoy?». Es «¿qué pasa el día en que quiera marcharme?». Con un motor cerrado, ese día es un proyecto de migración: re-plataformar, re-probar, recertificar una salida que tus auditores ya habían aprobado. El coste de cambio es la dependencia, y se paga íntegro en el peor momento posible.

El núcleo abierto elimina esa pregunta por construcción. La parte de la que más dependes —el motor de renderizado, el modelo de objetos, la conformidad con los estándares— está bajo una licencia permisiva y seguirá así para la versión que adoptaste. Nunca estás a una renovación de perder el acceso al código sobre el que se construye tu producto.

  • El motor núcleo es Apache-2.0: úsalo, cópialo, modifícalo, redistribúyelo y úsalo comercialmente, sin restricción de uso no comercial.
  • La licencia incluye una concesión expresa de patentes de los colaboradores, con una cláusula de terminación defensiva (Spec: Apache License 2.0, §3).
  • Pro y Enterprise son complementos propietarios. Pagas por capacidades avanzadas, nunca por el derecho a seguir usando el núcleo abierto.
  • La redistribución conlleva deberes de atribución: conservar los avisos, incluir la licencia, declarar tus cambios, propagar NOTICE (Spec: Apache License 2.0, §4).
  • Puedes bifurcar y distribuir el código; no puedes distribuirlo bajo el nombre o el logotipo de NextPDF (Spec: Apache License 2.0, §6).

El modelo es deliberadamente sencillo, y la sencillez es el objetivo. Hay tres cosas, y responden a tres preguntas distintas.

  1. 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.
  2. 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.
  3. 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.
The three layers of the NextPDF licensing model: the Apache-2.0 open-source core, the proprietary Pro and Enterprise add-ons, and the trademark on the NextPDF name and logo. Code rights flow from the first; capability access from the second; brand rights stay with the trademark holder.

La Apache License 2.0 es una licencia de código abierto permisiva aprobada por la Open Source Initiative. Para el núcleo, concede amplios derechos de uso —en forma de fuente o compilada, independiente o como parte de una obra mayor— sin cláusula de no comercialidad. Puedes incluir el núcleo dentro de un producto cerrado, de pago o interno.

Conviene nombrar dos cláusulas, porque son donde «permisiva» se vuelve «duradera». La licencia lleva una concesión expresa de patentes: los colaboradores te conceden una licencia de patente libre de regalías sobre sus contribuciones, y esa concesión solo se extingue de forma defensiva, si inicias cierto litigio de patentes sobre el software (Spec: Apache License 2.0, §3). Es una protección que una licencia escueta de «haz lo que quieras» no siempre te da. Y la redistribución está permitida pero no exenta de obligaciones: conservas los avisos de copyright, patente, marca y atribución existentes, incluyes la licencia, declaras los cambios que hiciste a los archivos modificados y propagas cualquier archivo NOTICE (Spec: Apache License 2.0, §4). Honrar esos deberes es el precio de la libertad, y es bajo.

Lo que pagas, cuando pagas, es capacidad, no continuidad. La separación es limpia: el mismo escritor de memoria acotada, el mismo modelo de objetos, la misma conformidad con los estándares vive en el núcleo, compres o no nunca nada.

The open-source core engine (nextpdf/core) — edition availability
EditionAvailability
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 y Enterprise no son de código abierto. Sus paquetes declaran "license": "LicenseRef-NextPDF-Commercial", y sus términos viven en el NextPDF Commercial License Agreement (Version 3.0) —no en la Apache License 2.0, y no se infieren del núcleo abierto. Añaden cosas; no quitan nada de lo que el núcleo te da.

La frontera es visible en el lugar más ordinario que existe: tu composer.json. Adoptar el núcleo abierto es una dependencia de un registro público.

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

Nada en ese programa está prestado. No hay comprobación de licencia entre tú y el motor, ni edición que tenga que estar presente para que el núcleo funcione. Si más adelante quieres una capacidad que ofrecen Pro o Enterprise, la añades. Si nunca lo haces, el núcleo sigue funcionando exactamente como hoy.

La lectura errónea frecuente es «núcleo abierto significa que también obtengo la marca». No es así. La Apache License 2.0 no concede ningún derecho sobre los nombres comerciales, marcas o logotipos del licenciante más allá de la referencia razonable y habitual al origen de la obra (Spec: Apache License 2.0, §6). Así que puedes bifurcar nextpdf/core, modificarlo y redistribuirlo —ese es el derecho sobre el código—, pero no puedes distribuir esa bifurcación como «NextPDF» ni bajo el logotipo de NextPDF. Elige tu propio nombre.

Esa separación no es una trampa escondida en la generosidad. Es lo que hace que la generosidad sea segura. Una licencia permisiva puede regalar el código precisamente porque el derecho de marcas mantiene que «NextPDF» significa el software oficial y sin modificar, incluso después de que el código se bifurque. Sin la frontera, cualquier compilación alterada podría llamarse a sí misma NextPDF, y nadie podría distinguir el motor oficial del parche de otra persona. La línea protege a los usuarios, no solo a la marca. El tratamiento completo de código frente a marca vive en la página de marca registrada.

Una segunda idea equivocada es que «núcleo abierto» hace de algún modo que las ediciones de pago también sean abiertas. No lo hace. Que el núcleo sea Apache-2.0 no dice nada sobre Pro o Enterprise: esas son propietarias con independencia de la licencia del núcleo.

El núcleo abierto es una ventaja real, expuesta con claridad, no la afirmación de que todo es gratis. Las capacidades avanzadas de Pro y Enterprise son genuinamente propietarias y genuinamente de pago; esta página no pretende lo contrario, y no hace ninguna promesa sobre los términos de esas ediciones, que viven en tu acuerdo comercial.

«Sin dependencia de proveedor» es preciso. Significa que la base sobre la que construyes está bajo una licencia permisiva y sigue siendo utilizable en tus términos. No significa que toda funcionalidad esté en el núcleo, y no significa que migrar fuera de una capacidad de Pro o Enterprise que adoptaste sea gratuito: una capacidad propietaria es, por naturaleza, una dependencia que asumiste a sabiendas. La libertad está en el núcleo.

Los deberes de atribución bajo la Apache-2.0 §4 son obligaciones, no opciones. Una redistribución que omite los avisos, deja fuera la licencia u oculta los cambios hechos a los archivos modificados es una infracción de la licencia aunque la licencia sea permisiva. Aquí la libertad viene con una lista corta y honesta de deberes.

Esta página es un resumen en lenguaje sencillo del modelo de licencias, no la licencia en sí ni asesoramiento jurídico. Cuando este resumen y los documentos autorizados difieran —el archivo LICENSE del paquete, y tu acuerdo comercial para las ediciones de pago—, prevalecen esos documentos. El tratamiento completo y vinculante está en la página de licencias.

  • Licencias — el relato autorizado, en lenguaje sencillo, de qué licencia se aplica a qué edición y qué concede cada una.
  • Marca registrada y uso de marca — la frontera entre código y marca en su totalidad, con usos aceptables e inaceptables.
  • La empresa detrás de NextPDF — quién posee la marca registrada y por qué un producto comercial pasó a ser de código abierto.
  • Cuándo no usar NextPDF — un relato honesto de dónde se detiene el núcleo y empieza un complemento.
  • Núcleo abierto — un modelo en el que un núcleo de código abierto con licencia permisiva está rodeado de complementos propietarios de pago. El núcleo es gratuito de usar y de conservar; los complementos son opcionales.
  • Apache License 2.0 — una licencia de código abierto permisiva, aprobada por la OSI. Concede amplios derechos de uso, modificación y redistribución, incluye una concesión expresa de patentes, exige atribución en la redistribución y no concede derechos de marca.
  • Concesión de patentes — una licencia expresa y libre de regalías sobre las patentes de los colaboradores que cubren sus contribuciones, con terminación defensiva si litigas ciertas patentes sobre el software (Apache-2.0 §3).
  • Archivo NOTICE — un archivo de atribución que, cuando está presente en la obra, debe propagarse en tu redistribución bajo la Apache-2.0 §4.
  • Dependencia de proveedor — el coste de cambio que hace caro marcharse de un proveedor. El núcleo abierto la elimina para la base al licenciar el núcleo de forma permisiva.