In the mobile app, it would be possible to cite physical books by scanning the book's isbn barcode.
I myself am successfully using a JS compilation of zbar: https://github.com/Schnark/barcode-reader/blob/master/js/lib/zbar-worker.js, and IIRC the last time I tested it, it was much faster than quaggaJS, even though it also detects QR codes.
They main problem all these JS's have is that a live input via getUserMedia might not be able to properly focus (according to https://bugs.chromium.org/p/chromium/issues/detail?id=343894 it works in Chrome on Android, but probably still not on iOS), which for normal sized barcodes means that you just can't read them. Instead you have to take a photo with the camara app, select that photo instead of the live stream, repeat these steps if something went wrong, and delete all those photos manually once you are done. That's not very user friendly.
A very experimental (i.e. currently an experiment in Chrome only, might perhaps change sometime in the future) is https://wicg.github.io/shape-detection-api/#barcode-detection-api.