Pular para o conteúdo
getnextpdf.com

Núcleo aberto, sem lock-in

Spec: Apache License 2.0

O NextPDF é de núcleo aberto. O motor sobre o qual você constrói — nextpdf/core — é lançado sob a Apache License 2.0, então você pode usá-lo, modificá-lo e redistribuí-lo, inclusive comercialmente. Pro e Enterprise são complementos proprietários pelos quais você paga apenas quando quiser o que eles acrescentam. A fundação é sua para manter; as capacidades avançadas são opcionais.

A pergunta cara em relação a qualquer motor de documentos não é “quanto custa hoje”. É “o que acontece no dia em que eu quiser sair”. Com um motor fechado, esse dia é um projeto de migração: re-plataformar, re-testar, re-certificar uma saída que seus auditores já aprovaram. O custo de troca é o lock-in, e ele é pago por inteiro no pior momento possível.

O núcleo aberto remove essa pergunta por construção. A parte da qual você mais depende — o motor de renderização, o modelo de objetos, a conformidade com os padrões — é licenciada de forma permissiva e continuará assim para a versão que você adotou. Você nunca está a uma renovação de distância de perder o acesso ao código sobre o qual seu produto é construído.

  • O motor de núcleo é Apache-2.0: usar, copiar, modificar, redistribuir e usar comercialmente, sem restrição não comercial.
  • A licença inclui uma concessão expressa de patente dos contribuidores, com uma cláusula de rescisão defensiva (Spec: Apache License 2.0, §3).
  • Pro e Enterprise são complementos proprietários. Você paga por capacidades avançadas, nunca pelo direito de continuar usando o núcleo aberto.
  • A redistribuição carrega deveres de atribuição — mantenha os avisos, inclua a licença, declare suas mudanças, leve adiante o NOTICE (Spec: Apache License 2.0, §4).
  • Você pode bifurcar e distribuir o código; você não pode distribuí-lo sob o nome ou logo do NextPDF (Spec: Apache License 2.0, §6).

O modelo é deliberadamente simples, e a simplicidade é o ponto. Há três coisas, e elas respondem a três perguntas diferentes.

  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.

A Apache License 2.0 é uma licença de código aberto permissiva aprovada pela Open Source Initiative. Para o núcleo, ela concede amplos direitos de uso — fonte ou compilado, autônomo ou como parte de uma obra maior — sem cláusula não comercial. Você pode colocar o núcleo dentro de um produto de código fechado, pago ou interno.

Duas cláusulas valem ser nomeadas, porque é nelas que “permissiva” se torna “durável”. A licença carrega uma concessão expressa de patente: os contribuidores concedem a você uma licença de patente livre de royalties sobre suas contribuições, e essa concessão termina apenas defensivamente, se você iniciar certas ações judiciais de patente sobre o software (Spec: Apache License 2.0, §3). Essa é uma proteção que uma licença “faça o que quiser” pura nem sempre lhe dá. E a redistribuição é permitida, mas não isenta de obrigações: você mantém os avisos existentes de copyright, patente, marca registrada e atribuição, inclui a licença, declara as mudanças que fez nos arquivos modificados e leva adiante qualquer arquivo NOTICE (Spec: Apache License 2.0, §4). Honrar esses deveres é o preço da liberdade, e é um preço baixo.

O que você paga, quando paga, é capacidade — não continuidade. A divisão é limpa: o mesmo escritor de memória limitada, o mesmo modelo de objetos, a mesma conformidade com os padrões vivem no núcleo independentemente de você jamais comprar algo.

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 e Enterprise não são de código aberto. Seus pacotes declaram "license": "LicenseRef-NextPDF-Commercial", e seus termos vivem no NextPDF Commercial License Agreement (Version 3.0) — não na Apache License 2.0, e não inferidos do núcleo aberto. Eles acrescentam coisas; não tiram nada do que o núcleo lhe dá.

A fronteira é visível no lugar mais comum que existe: seu composer.json. Adotar o núcleo aberto é uma dependência de 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 nesse programa está emprestado. Não há verificação de licença entre você e o motor, nenhuma edição que precise estar presente para o núcleo rodar. Se mais tarde você quiser uma capacidade que o Pro ou o Enterprise fornece, você a adiciona. Se nunca quiser, o núcleo continua funcionando exatamente como funciona hoje.

A leitura errada frequente é “núcleo aberto significa que eu fico com a marca também”. Não significa. A Apache License 2.0 não concede direitos sobre os nomes comerciais, marcas registradas ou logos do licenciante além da referência razoável e costumeira à origem da obra (Spec: Apache License 2.0, §6). Então você pode bifurcar nextpdf/core, modificá-lo e redistribuí-lo — esse é o direito sobre o código — mas você não pode distribuir essa bifurcação como “NextPDF” ou sob o logo do NextPDF. Escolha seu próprio nome.

Essa divisão não é uma pegadinha escondida na generosidade. É o que torna a generosidade segura. Uma licença permissiva pode distribuir o código justamente porque a lei de marcas registradas mantém “NextPDF” significando o software oficial e não modificado mesmo depois de o código ser bifurcado. Sem a fronteira, qualquer build alterado poderia chamar a si mesmo de NextPDF, e ninguém conseguiria distinguir o motor oficial do patch de alguém. A linha protege os usuários, não apenas a marca. O tratamento completo de código versus marca vive na página de marca registrada.

Um segundo equívoco é que “núcleo aberto” de alguma forma torna as edições pagas abertas também. Não torna. O núcleo ser Apache-2.0 não diz nada sobre Pro ou Enterprise — essas são proprietárias independentemente da licença do núcleo.

Núcleo aberto é uma vantagem real, declarada com clareza — não uma alegação de que tudo é gratuito. As capacidades avançadas em Pro e Enterprise são genuinamente proprietárias e genuinamente pagas; esta página não finge o contrário, e não faz nenhuma promessa sobre os termos dessas edições, que vivem no seu acordo comercial.

“Sem lock-in” é preciso. Significa que a fundação sobre a qual você constrói é licenciada de forma permissiva e permanece utilizável nos seus termos. Não significa que todo recurso está no núcleo, e não significa que migrar para fora de uma capacidade Pro ou Enterprise que você adotou seja sem custo — uma capacidade proprietária é, por natureza, uma dependência que você assumiu conscientemente. A liberdade está no núcleo.

Os deveres de atribuição sob a Apache-2.0 §4 são obrigações, não opções. Uma redistribuição que descarta os avisos, omite a licença ou esconde as mudanças feitas nos arquivos modificados é uma violação de licença mesmo sendo a licença permissiva. A liberdade aqui vem com uma lista curta e honesta de deveres.

Esta página é um resumo em linguagem simples do modelo de licenciamento, não a licença em si e não aconselhamento jurídico. Onde este resumo e os documentos autoritativos divergirem — o arquivo LICENSE no pacote e seu acordo comercial para as edições pagas — esses documentos prevalecem. O tratamento completo e vinculante está na página de licenciamento.

  • Núcleo aberto — um modelo em que um núcleo de código aberto licenciado de forma permissiva é cercado por complementos proprietários e pagos. O núcleo é gratuito para usar e manter; os complementos são opcionais.
  • Apache License 2.0 — uma licença de código aberto permissiva, aprovada pela OSI. Ela concede amplos direitos de uso, modificação e redistribuição, inclui uma concessão expressa de patente, exige atribuição na redistribuição e não concede direitos de marca registrada.
  • Concessão de patente — uma licença expressa e livre de royalties sobre as patentes dos contribuidores que cobrem suas contribuições, com rescisão defensiva se você litigar certas patentes sobre o software (Apache-2.0 §3).
  • Arquivo NOTICE — um arquivo de atribuição que, quando presente na obra, deve ser levado adiante na sua redistribuição sob a Apache-2.0 §4.
  • Lock-in — o custo de troca que torna caro sair de um fornecedor. O núcleo aberto o remove para a fundação ao licenciar o núcleo de forma permissiva.