Network document scanners over eSCL (AirScan, Mopria): find them, read what they offer, scan to pages, files or PDF
[decks]
"@deckyard/escl" = "^0.1.0"| Version | Status | Kind | Pin | Requires | Engines | Capabilities |
|---|---|---|---|---|---|---|
| 0.1.0 | live | git | 415e755d93c0 | - | jennifer >=0.26.0 | net |
LGPL-3.0-only
0.1.0Times a client asked this registry where to find this deck. Not downloads: the registry only stores metadata, and the code is fetched from its repository directly, so we never see an install and cannot count one. Repeated builds inflate these numbers; installs from an existing lockfile do not appear at all. Counted in UTC.
A Jennifer client for eSCL, the driverless scan protocol behind AirScan (AirPrint scanning) and Mopria Scan: read what a network scanner can do, check settings against it, scan from the glass or the feeder (duplex too) and get the pages back or written to files.
jvc add @deckyard/esclThis vendors the deck to vendor/<scope>/escl/. Without jvc, unpack the src/ subtree of a release archive (<scope>-escl-<version>.tar.gz) there.
import "@deckyard/escl/" as escl;
def s as escl.Scanner init escl.scanner("192.168.1.40:8080");
def st as escl.Settings init escl.settings();
$st.source = escl.FEEDER;
$st.duplex = true;
escl.scanToFiles($s, $st, "/srv/scans", "letter");Jennifer 0.26.0 or newer, the default binary (the deck needs net; it does not run on jennifer-tiny), and a scanner that speaks eSCL on the network.
tools/check-all.sh # the full gate, as CI runs it
jennifer test src/escl_test.j # the test overlay
tools/check-docs.sh # docs against the code
tools/pack.sh dist # build the release archiveLGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.
tools/check-headers.sh checks every source file's SPDX header against deck.toml.