[sane-devel] sane-airprint

Alexander Pevzner pzz at apevzner.com
Tue Dec 24 17:47:43 GMT 2019

Hi, everybody,

Merry Christmas and happy New Year!

I want to announce the sane-airpring backend, which implements scanning 
over eSCL protocol:


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.


	Wishes, Alexander Pevzner (pzz at apevzner.com)

More information about the sane-devel mailing list