The most complete ESC/POS developer toolbox.

A Rust CLI and rendering library for working with ESC/POS byte streams. Render to PNG, emulate a RAW TCP printer, manage device profiles, and print over USB or port 9100.

terminal
$ escpost --help

Usage: escpost <COMMAND>

  render     Render a known byte stream
  print      Send bytes unchanged to a printer
  serve      Capture RAW TCP print jobs
  printers   List and configure targets
  profiles   Query the embedded profile catalog
READ: BINARY FILES · HEX FILES · STDINPREVIEW: PNG · BROWSERPRINT: USB · NETWORK · CLOUD

ESC/POS development,
end to end

Six components cover the path from inspecting a byte stream to integrating local hardware and production cloud printing.

01

CLI & libraries

A single Rust executable for interactive terminals and unattended scripts. The renderer and profile catalog are separate Rust crates, with a thin PyO3 binding for Python applications.

  • Rust CLI and workspace crates
  • Python render binding
  • Binary, hex, stdin, and case inputs
02

Virtual IP printer

escpost serve exposes a local RAW TCP printer. Point an application at it exactly as you would at network hardware and inspect the captured job in the browser viewer.

  • Loopback-only by default
  • RAW listener from port 9100
  • Idle-timeout job framing
03

USB & IP printers

Discover printer-class USB interfaces or configure known RAW TCP endpoints. Named targets keep transport details out of scripts and receive the original bytes unchanged.

  • USB descriptor selection
  • RAW TCP connectivity checks
  • Named local configuration
04

Printer profiles

Profiles define paper geometry, supported symbols, carriage-return behavior, and calibrated quirks. Query the embedded catalog or use REFERENCE when no physical target is known.

  • Embedded, hash-verified catalog
  • Physical device calibration
  • REFERENCE virtual profile
05

PNG & web preview

Render to deterministic one-bit PNG sheets or inspect results in the embedded browser workbench. Cuts create separate sheets; watch mode rerenders changed sources.

  • Dot-addressed rendering
  • Multi-sheet manifests
  • Integer zoom and file watching
06

Cloud printing

Use ESCPost while developing ESC/POS integrations for Receiptful, Duala Digital's managed cloud printing service, then connect receipt workflows to deployed printers.

  • Local ESC/POS development loop
  • Receiptful compatibility coverage
  • Cloud-to-printer workflows
receiptful.io ↗