Salta al contenuto

ZPL rendering benchmarks

Two numbers, measured separately: how long the engine takes to draw a label, and how many labels the production API serves per second. Neither is the latency you will see from your network, which adds the round trip to the server.

Engine time, without HTTP

Measured 2026-10-20 on the production server (Intel Xeon Gold 6248 at 2.5 GHz, 4 vCPU, shared with other services), API commit bfc1680. One thread, 20 warm-up renders, then the runs shown.

LabelDimensioneDensitàOutputp50 msp95 msMean msRuns
Code 128 barcode4 × 2 in8 dpmmPNG1.51.61.5300
Code 128 barcode4 × 2 in8 dpmmPDF1.92.01.9300
Code 128 barcode4 × 2 in12 dpmmPNG2.12.32.1300
Code 128 barcode4 × 2 in12 dpmmPDF3.04.23.2300
One line of text4 × 6 in8 dpmmPNG2.02.62.0300
One line of text4 × 6 in8 dpmmPDF3.03.33.1300
One line of text4 × 6 in12 dpmmPNG4.24.74.3300
One line of text4 × 6 in12 dpmmPDF6.87.76.9300
QR code4 × 2 in8 dpmmPNG1.11.11.1300
QR code4 × 2 in8 dpmmPDF1.61.61.6300
QR code4 × 2 in12 dpmmPNG1.81.91.8300
QR code4 × 2 in12 dpmmPDF2.72.82.7300
Shipping label (demo)4 × 6 in8 dpmmPNG13.015.013.2300
Shipping label (demo)4 × 6 in8 dpmmPDF14.515.014.5300
Shipping label (demo)4 × 6 in12 dpmmPNG40.042.940.4300
Shipping label (demo)4 × 6 in12 dpmmPDF42.243.442.2300

Reproduce it with the API's source:

cargo run --release -p openzpl-api --example bench -- bench/fixtures 300

Throughput over HTTP

Load test of 2026-10-20 against the production API from the same datacenter, so without internet latency. Hardware: 4-core x86-64 VPS, 8 GB RAM, shared with other services; the API process limited to 2 render slots.

LabelSustained rate
4 × 6 in shipping label, PNG, 8 dpmm≈ 68 labels/s
4 × 6 in shipping label, PDF, 8 dpmm≈ 112 labels/s
Short text label, PNG, 8 dpmm≈ 214 labels/s

These rates are for the whole service. Each client is limited by its plan; see pricing.

What these numbers don't say

  • They aren't a latency promise: your request also travels to the server and back.
  • A label with large images or many barcodes takes longer than the shipping label measured here.
  • No uptime or response-time commitment is offered today; plans with an SLA aren't live yet.