zplCore.comzplCore.com

zplCore Server · DockerComing soon

Template and data in, labels out. As a container.

zplCore Server is planned as a ready-to-run container: the templates live on the server, your application sends only the data (or the server fetches it itself through a named query) and gets ZPL, PNG or PDF back, or printed directly. The measurements come from our NativeAOT test; the feature set is planned.

~4 msstartup
~11 msfirst label
~100 MBimage

measured in the NativeAOT test on linux/arm64

{ } :8080
Template
  • Volume
  • Git
  • S3
  • Azure Blob
  • HTTP
Data
  • JSON
  • Database
  • CSV
  • REST
  • Queue
zplCore Serverfills · renders · checks · prints
  • ZPL · PNG · PDFas the response, streamed
  • PrinterTCP 9100
  • StorageS3 · Azure Blob
  • Webhookwhen done
Planned flow: templates live on the server, data comes with the request or from your systems.

Planned feature set planned

Templates

store once or load dynamically via HTTP

  • JSON templates from a volume, Kubernetes ConfigMap, Git, S3/MinIO, Azure Blob, Google Cloud Storage or dynamically via HTTP (URL or inline in the request)
  • Cached, hot reload on change, versioned
  • Called by path, e.g. versand/dhl-100x150
  • The same JSON templates as in the SDK (Label.ToJson): design once, use them in your app and in the container
S3Azure BlobGCSHTTP

Data

send it or let the server fetch it

  • JSON right in the request
  • Named database sources for SQL Server, PostgreSQL, MySQL/MariaDB, SQLite and Oracle: predefined, parameterised, read-only queries
  • Connection strings only from secrets: Docker and Kubernetes secrets, Key Vault, Secrets Manager
  • Files (CSV, Excel, JSON), REST APIs and queues: Kafka, RabbitMQ, Azure Service Bus, AWS SQS

Use EF Core directly in your .NET app with the SDK; in the container, named queries do the job without code.

CSVExcelREST

Outputs

stream, print, store

  • ZPL as a stream, even for 100,000+ labels per job
  • PNG, SVG, PDF, ZIP or JSON, chosen with the Accept header
  • Direct printing to named printers over TCP 9100, checked first with the printer twin
  • Storage in S3, Azure Blob or a volume; webhook or queue message when done
ZPLPNGSVGPDFZIPJSON

Cluster

scales with the load

  • Stateless and horizontally scalable: Kubernetes HPA or KEDA by CPU load or queue length
  • NativeAOT: starts in milliseconds
  • /health, /ready, /metrics (Prometheus) and OpenTelemetry
  • One config file zplcore.yaml or environment variables, plus a Helm chart

What it will look like planned

# serve the templates in ./templates
docker run -p 8080:8080 \
  -v ./templates:/templates:ro \
  zplcore/server

# data in, ZPL out
curl -X POST \
  localhost:8080/v1/labels/versand/dhl-100x150 \
  -H 'Accept: application/vnd.zpl' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Anna Huber","city":"Wien"}'

Also planned

  • REST API with OpenAPI and interactive API docs (Scalar) at /docs
  • One multi-arch tag for linux/amd64 and linux/arm64
  • Distroless, non-root, read-only root file system; signed images with SBOM
  • Offline licence, no phone-home · dev/test free (with watermark)

Target platforms

  • linux/arm64 & armv7e.g. Raspberry Pi 4/5 (64-bit) & Pi 2/3
  • linux/amd64 & NASx86-64 servers, VMs & Synology DS923+ (Container Manager)
  • Docker & Podmandocker run / podman run
  • Kuberneteswith a Helm chart
  • Cloudcontainer services on Azure, AWS, Google Cloud
  • On-prem & air-gappedno internet connection needed
  • Windows & macOSvia Docker Desktop
Notify me

No prices, no purchase: we will let you know as soon as the first version is ready.