Alpha

printproxy · 0.x alpha

Print from a phone browser. No dialog.

Your web page calls print() and the job comes out of the printer. No print dialog, no driver on the phone or tablet. It is a local agent next to the printer, a relay you can host yourself, and a 3-call JavaScript SDK.

Get the alpha →

What it is

Local agent

A small Rust program on a machine next to the printer. It pairs with your site by fingerprint and sends each job to the printer.

Relay you can host

Carries jobs from the browser to the agent. Self-host the relay (one binary); a hosted relay comes in the alpha.

3-call JavaScript SDK

connect(), printers(), print(). The page gets the job status back: sent, then printed.

Who it is for

Clinics

Print a form or a label from the tablet at the front desk.

Retail

Receipts and shelf labels from a browser point of sale.

Label and thermal printers

Built for label and receipt printers; not yet tested on a physical printer.

iPad and Chromebook front desks

Built for driverless devices (iPad, Chromebook); not yet tested on a physical printer.

A phone browser prints (iOS Simulator, virtual printer)

Safari on an iPhone (iOS 18.7 in the iOS Simulator) loads a page with the SDK and calls connect(), printers() and print(). The job goes through the relay to the agent and lands on a virtual PDF printer. This is the log the phone wrote:

11:43:52.487  userAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1
11:43:52.487  SDK printproxy.js version 0.4.1
11:43:55.502  connect(): route = {"route":"relay","url":"http://127.0.0.1:8797"}
11:43:59.505  printer: virtual-pdf (file, idle) on agent demo-agent fp df03-5e2d-2593-12ee
11:44:04.519  print(): 617 bytes, kind=pdf, printer=virtual-pdf
11:44:04.527  status: job job_839b83dc71e0673147fc39cf → sent
11:44:04.547  status: job job_839b83dc71e0673147fc39cf → printed
11:44:04.547  resolved: job job_839b83dc71e0673147fc39cf printed on virtual-pdf via "relay" in 28 ms

The printed file is byte-identical to what the phone sent: the output PDF (617 bytes, 1 page).

Measured on loopback: print() to printed took 28 ms (20 ms on a second take), with the phone, relay and agent on the same Mac. It is not a number over the internet. The printer was a virtual PDF printer, not a physical one.

Alpha

Alpha. One-time licence, price on request.

The SDK, the agent and a self-hosted relay (one binary) are in the alpha. Ask for a licence with the form below.

Alpha guide: the setup guide and the join form for alpha testers, at printproxy.deemwar.com.

Alpha: notify me

Leave your email and we will write when you can try the alpha. One-time licence on request.

One email at launch. No newsletter, no sharing.