Reviving old scanners with an in-browser Linux VM bridged to WebUSB over USB/IP

https://yes-we-scan.app/details

Comments

ValdikSSMay 21, 2026, 2:40 AM
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!

gmacMay 21, 2026, 6:48 AM
If you think I’ve done something wrong according to the licences involved here, please do clarify. I had understood that open-sourcing the Linux stuff (as branches of a fork of v86, linked from the /credits page) met all relevant legal obligations, which I absolutely intend to do.

More broadly, it’s unusual for me not to make everything open, and I do feel bad/conflicted about it. But, unusually, I feel like I have identified a possible route to monetising this, and I think open-sourcing all of it risks making that harder.

ValdikSSMay 21, 2026, 7:40 AM
Sorry, it's me who needs a reading comprehension lessons. I've read back in printervention website and now again that you didn't open the code that you HAVE to. Because you're apologizing for that, I assumed that you're breaking the license, twice.

After rereading both of your websites again, I should say you've nothing wrong! It's sleepy me who accused you for nothing, sorry.

Linux printing and scanning stack is held on 5 enthusiasts basically, and is quite buggy. Any contributions welcome.

If you want to further improve your project, make it small and fast, you can compile printer filters (most of which work on cups-raster data) with emscripten. This way you don't need to use CUPS, Linux, and x86 emulation. You'll need to write some shims for CUPS libppd functions which many filters use (some don't), and either parse PPD files or convert them into another representation.

Most filters (drivers) are quite simple pipes from stdin to stdout, sometimes they don't use cups functions at all, receiving all the data directly from raster header. Some filters, such as gutenprint, are more complex and use their own backends, but even in this case it's not a hard task: libusb has emscripten WebUSB backend.

stuaxoMay 21, 2026, 10:47 AM
OT: But in a way kind of good to know.

Ages ago I got a Canon A3 printer. I've never been sure if it worked properly, as I was never sure if the colours are right.

Next time I unpack it I'll have to try and find the place the 5 enthusiasts hang out - the cups mailing list ?

woolionMay 21, 2026, 8:02 AM
If monetization is at odds with open-source, why wouldn't potential customers just wouldn't go to VueScan, as someone posted? I was recently looking at scanners, and saw some brands directly advertise Linux support through this... which means you now have to pay subscription each year to access the expensive hardware you bought.

Thankfully the Avision FB5100 states native Linux support (AFAIK, this is the only flatbed A3 scanner that does), so I'm certainly going to buy this one. I know implementing device support for companies that don't make any effort is hard and thankless, but then we need to divest/invest in the right companies and solutions.

ValdikSSMay 21, 2026, 8:15 AM
Any airprint/mopria certified devices don't need drivers to work on Linux, Windows, Android or macOS.

https://mfi.apple.com/account/airprint-search

https://mopria.org/certified-products

skywal_lMay 21, 2026, 1:24 PM
My recent experience shows that eSCL is way behind in terms of functionality. If I want lossless scanning from by Brother scanner, I need the proprietary drivers.
gmacMay 21, 2026, 1:54 PM
My monetization idea doesn't involve charging users, and it's more on the printing side (but most of the source is shared with scanning).
ironhavenMay 21, 2026, 6:02 AM
If you just install CUPS in a virtual machine (emulated in wasm on the web) what patches do you need to share?
ValdikSSMay 21, 2026, 7:42 AM
See above, that's my mistake.
izacusMay 21, 2026, 6:41 AM
The same you have to share if you don't use a virtual machine, this isn't hard.
itsthecourierMay 21, 2026, 4:17 AM
hope we see that code soon
IdiotSavageMay 21, 2026, 8:14 AM
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.

[1] https://github.com/SimulPiscator/AirSane

[2] https://archive.ph/1D2EQ

jdubMay 21, 2026, 3:35 AM
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.
jdubMay 21, 2026, 3:40 AM
Oh, and:

> I must apologise that I haven’t so far open-sourced any part of this that I don’t have to.

With some blather about commercial opportunities. Which is a weird thing to say without linking to the bits that must be shared (under the terms of the various licenses).

gmacMay 21, 2026, 6:51 AM
There’s separately a /credits page where I’ve done that, linked from the footer. Perhaps I should link it from the apology too. Tell me if you think I’ve not shared what I have to.
mrweaselMay 21, 2026, 7:31 AM
If you just need a single scan every now and then and have an old scanner, I can see this being handy. Installing Linux, battling Windows drivers or buying Vuescan (great as it is) might be enough to make most just give up and take a photo of whatever document they where going to scan.

It is a little much, but if it can be made to "Just Work" by booting a Linux kernel in the browser that it pretty cool and impressive. I'm still a little on the fence about my browser having USB support, but this could be handy for dusins of people.

jdubMay 21, 2026, 3:52 AM
Ah, it seems like the architecture was designed by a slop machine. OK.
userbinatorMay 21, 2026, 4:13 AM
RE'ing drivers and porting them is one of those things that AI turns out to be really useful for, and there have been a few of such projects posted here already. But of course the author has to drive it in that direction rather than let it just glue stuff together.
ironhavenMay 21, 2026, 6:00 AM
If they reverse engineered the drivers then why do they need a virtual cpu and a Linux kernel to run them. Is this reverse engineering or just installing software in a weird environment?

Speaking of not just gluing stuff together with usb/ip could one make a virtual WebUSB host kernel module that could be used by the Linux kernel USB stack? They most likely would not want to do that because then all of the code would be GPL and would have to be shared with the public.

toast0May 21, 2026, 6:05 AM
I don't think a usb host driver is necessarily tainted into being GPL? But if it is, plenty of non-gpl oses that can run SANE.
winkelmannMay 21, 2026, 10:38 AM
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).
gmacMay 21, 2026, 1:52 PM
That is super helpful (I may well use it myself). But I guess a web app probably reaches some non-technical users that CLI tools don't.
raffraffraffMay 21, 2026, 5:43 AM
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.
hommelixMay 21, 2026, 12:55 PM
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.

[1] http://sane-project.org/sane-frontends.html

ocdtrekkieMay 21, 2026, 5:06 AM
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.
AlohaMay 21, 2026, 2:28 AM
I could also just go buy VueScan, which is cross platform and great.
brntMay 21, 2026, 8:46 AM
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).
keepamovinMay 21, 2026, 8:18 AM
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.

hard_timesMay 21, 2026, 8:40 AM
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?

butzMay 21, 2026, 3:41 PM
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?
erasmossMay 21, 2026, 9:17 AM
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..
DeathArrowMay 21, 2026, 4:58 AM
Can this be made into a generic support app for old devices, not just scanners?
BarbaryCoastMay 23, 2026, 10:55 AM
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.

indianbungholeMay 21, 2026, 12:35 PM
[flagged]
brudgersMay 19, 2026, 6:34 PM
The ShowHN a few days ago, https://yes-we-scan.app/