It's a great concept, but you haven't open-sourced the previous code, as the license requires, and you're yet again apologizing in this project as well, without any code.
Pretty sure you have my code in both projects. I contribute first and foremost to make printers and scanners to work reliably, but also keeping in mind the idea that I could at least try to apply legal actions for companies which violate the license rules one day, as a CUPS/SANE/printer/scanner drivers contributor.
Hrm, yes-we-scan and printervention are built on SANE and CUPS respectively, which makes sense. But running them in a whole wasm-emulated Linux kernel and userland seems... like a lot.
I don't want this enough to subject myself to WebUSB, but I am particularly fond of a no-longer-supported flatbed scanner I own which powers entirely off the USB port. It was super handy if you wanted to scan to like a tablet in a car or something, as long as you had a USB-A port to work with.
I used a raspberry pi 3b+ and an ancient ipad to turn my Canon A3 scanner into a network scanner with an LCD interface (which also just points to the phpscan web page). I tuned to html / js / css to fit the ipad perfectly and only show options that worked with my specific scanner.
With AirSane [1], you can make scanners integrate nicely with macOS. This page [2] has a writeup (in German) how to set it up on a RaspberryPi. On non-macOS devices you can still use the web interface, as demonstrated by the "yes-we-scan" app.
Such a cool project. I love seeing what the web platform can do and particularly like the hardware integration capabilities of these type of APIs. I remember playing with a Web USB ADS-B scanner that plugs into your SDR.
Interestingly, it was better executed than many of the downloadable native apps.
The idea of emulating a lightweight Alpine Linux in the browser to make this work, without overengineering don't-know-what custom niche solution is definitely intriguing.
I wonder how much work would it be to port a given Linux USB driver to WASM alone?
I've plugged in many a scanner (or printer) into my Linux machines, and they always just werk. Which this project probably makes use of: SANE. I think there's even a project porting SANE to Windows (because that's I guess what this is aimed at: scanners that never got a WHQL driver).
FYI, if the goal is just to use something like an old Canon LiDE scanner (pretty common/cheap devices with no more driver support) on macOS: SANE runs natively and works great: https://formulae.brew.sh/formula/sane-backends (comes with `scanimage` CLI tool).
Sane works out of the box on Linux (at least in my limited experience). There are front ends for Windows and MacOS [1]. No need for a browser in the loop. The browser is becoming more and more Emacs... An operating system that happens to be a browser.
Overengineering aside (which is pretty legitimate way of doing hobby tech), why not build SANE on WASM? And maybe interfacing with airplay scanners could be even easier?
Uh, what do you mean, you can't use a scanner via USB? Did they stop putting USB ports on computers? (I haven't bought a new one in a while.) Or does your OS not provide the software to connect to it?
I guess I just don't understand what problem this solves.
18 comments
[ 3.9 ms ] story [ 35.4 ms ] threadPretty sure you have my code in both projects. I contribute first and foremost to make printers and scanners to work reliably, but also keeping in mind the idea that I could at least try to apply legal actions for companies which violate the license rules one day, as a CUPS/SANE/printer/scanner drivers contributor.
Printer companies generally don't like that: https://xcancel.com/ValdikSS/status/1745898408693371125#m
Cool project though! Hope you can publish the source one day so we can all benefit from it in the future!
[1] https://github.com/SimulPiscator/AirSane
[2] https://archive.ph/1D2EQ
Interestingly, it was better executed than many of the downloadable native apps.
I wonder how much work would it be to port a given Linux USB driver to WASM alone?
[1] http://sane-project.org/sane-frontends.html
I guess I just don't understand what problem this solves.