alt.hn

5/18/2026 at 10:08:26 AM

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

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

by gmac

5/21/2026 at 2:40:10 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!

by ValdikSS

5/21/2026 at 6:48:51 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.

by gmac

5/21/2026 at 7:40:51 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.

by ValdikSS

5/21/2026 at 10:47:01 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 ?

by stuaxo

5/21/2026 at 8:02:48 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.

by woolion

5/21/2026 at 8:15:39 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

by ValdikSS

5/21/2026 at 1:24:53 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.

by skywal_l

5/21/2026 at 1:54:01 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).

by gmac

5/21/2026 at 6:02:24 AM

If you just install CUPS in a virtual machine (emulated in wasm on the web) what patches do you need to share?

by ironhaven

5/21/2026 at 7:42:19 AM

See above, that's my mistake.

by ValdikSS

5/21/2026 at 6:41:21 AM

The same you have to share if you don't use a virtual machine, this isn't hard.

by izacus

5/21/2026 at 4:17:04 AM

hope we see that code soon

by itsthecourier

5/21/2026 at 10:38:45 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).

by winkelmann

5/21/2026 at 1:52:09 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.

by gmac

5/21/2026 at 8:14:35 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

by IdiotSavage

5/21/2026 at 3:35:33 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.

by jdub

5/21/2026 at 3:40:23 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).

by jdub

5/21/2026 at 6:51:04 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.

by gmac

5/21/2026 at 7:31:50 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.

by mrweasel

5/21/2026 at 3:52:46 AM

Ah, it seems like the architecture was designed by a slop machine. OK.

by jdub

5/21/2026 at 4:13:48 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.

by userbinator

5/21/2026 at 6:00:36 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.

by ironhaven

5/21/2026 at 6:05:35 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.

by toast0

5/21/2026 at 12:55:27 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

by hommelix

5/21/2026 at 5:43:34 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.

by raffraffraff

5/21/2026 at 3:41:15 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?

by butz

5/21/2026 at 8:18:03 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.

by keepamovin

5/21/2026 at 2:28:12 AM

I could also just go buy VueScan, which is cross platform and great.

by Aloha

5/21/2026 at 8:40:59 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?

by hard_times

5/21/2026 at 9:17:30 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..

by erasmoss

5/21/2026 at 5:06:08 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.

by ocdtrekkie

5/21/2026 at 8:46:55 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).

by brnt

5/21/2026 at 4:58:54 AM

Can this be made into a generic support app for old devices, not just scanners?

by DeathArrow

5/21/2026 at 12:35:35 PM

[flagged]

by indianbunghole