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.
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 ?