[sane-devel] sane-airprint

Till Kamppeter till.kamppeter at gmail.com
Thu Dec 26 17:57:05 GMT 2019

On 24/12/2019 14:47, Alexander Pevzner wrote:
> Hi, everybody,
> Merry Christmas and happy New Year!
> I want to announce the sane-airpring backend, which implements scanning over 
> eSCL protocol:
> https://github.com/alexpevzner/sane-airscan
> Well, I'm aware about the sane-escl backend. Actually, the sane-escl was 
> published when my backend was half-implemented, so I decided to continue. So 
> after years of waiting, now we have two eSCL backends to choose from, sorry for 
> confusion :-)
> The key differences between my backend (sane-airprint) and sane-escl are:
> 1) sane-escl uses CURL, while my backend uses libsoup. CURL's initialization 
> requirements are nearly impossible to implement in a loadable plugin, so if 
> frontend (or some of its components) also use CURL, sporadic crashes are possible
> 2) My backend implements full support of ADF, including simplex, duplex and 
> multipage scan
> 3) Early cancel. sane-airscan allows to cancel a job far before its completion, 
> leaving scanner in a correct state (my Kyocera ECOSYS is very sensitive to this 
> matter).
> 4) sane-airscan keeps and decodes images in memory, and doesn't use temporary 
> files. Memory footprint is reasonable low: images are decoded line-by-line as 
> soon as sane_read consumes the data
> 5) sane_cancel() is safe to be called from signal handler, as required by SANE 
> standard
> 6) sane_get_select_fd() and sane_set_io_mode() are fully implemented
> 7) sane_airprint correctly supports IPv6 addresses
> Looking forward for some feedback.

Great, so we have 3 eSCL backends now: sane-escl, AirSane, and sane-airscan. 
Thanks to all of you to support this big group of scanners, probably all in 
printer/scanner-multi-function devices which do AirPrint.

Alexander, could you also try to scan on a USB-connected device via ippusbxd 
(https://github.com/OpenPrinting/ippusbxd)? Note that you need to supply the URI 
manually (should be "http://localhost:60000/eSCL/...") as ippusbxd does not 
support yet DNS-SD registration for multi-function devices 

Do not try to build USB support directly into your backend, as this could block 
printing and device administration (and it would probably also be duplication of 
ippusbxd's functionality).


More information about the sane-devel mailing list