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.
Alpha
printproxy · 0.x alpha
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.
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.
Carries jobs from the browser to the agent. Self-host the relay (one binary); a hosted relay comes in the alpha.
connect(), printers(), print(). The page gets the job status back: sent, then printed.
Print a form or a label from the tablet at the front desk.
Receipts and shelf labels from a browser point of sale.
Built for label and receipt printers; not yet tested on a physical printer.
Built for driverless devices (iPad, Chromebook); not yet tested on a physical 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 msThe 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. 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.
Leave your email and we will write when you can try the alpha. One-time licence on request.