You've already found the library you're looking for, I think. See the core/
module:
https://github.com/zxing/zxing/tree/master/core
You're just looking at the Intent
-based integration, but, in fact the core scanning is its own stand-alone library that you can embed into your own app.
I think Intent
-based integration is best in most cases, simply because it is so simple, and, most people don't have the time to reimplement their own scanning UI and such on top of the core. Most devices have Barcode Scanner installed already, so it doesn't usually need a download.
Still, take your pick. That's why there are at least two ways to use it.