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?
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).
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.
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.
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 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.
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 could also just go buy VueScan, which is cross platform and great.
Reminds me of building a tiny Linux VM to access the APFS share of our Mac-centric uni from Windows. Other students just got a MacBook..
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'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).
Can this be made into a generic support app for old devices, not just scanners?
[flagged]
The ShowHN a few days ago, https://yes-we-scan.app/
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.
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!