A library to help implement barcode scanning.


Another barcode library. Yawn.

We can understand why you may think that, but there are some key reasons we decided to write a new barcode library.

  • Quality We want this library to be a high quality production ready library.
  • Camera2 Many barcode libraries still use camera1 API's. These are now deprecated and although unlikely to be removed, you can get better performance and stability from camera2. You are also safe in the knowledge that Android will work to fix issues, and the library will have more longevity.
  • Firebase This library uses Firebase to process the frames and return barcodes. The Firebase team are committed to these API's and continue to work to improve them.
  • Tested We want this library to have tests. It's surprising how many don't.
  • Simple We want the implementation to be simple, but not try to hide away too much of the complexity of the task.


implementation 'uk.co.brightec.kbarcode:kbarcode:$version'


For a detailed look at the library and a full get started guide checkout the wiki


We welcome community involvement with this library. We want this library to be useful for others, and of a high production quality.


Please do raise issues if you find problems with the library, sample or its documentation. We have provided a template to use.

Pull Requests

If you find an issue, why not try to fix it and create a pull request. We run CI checks on every pull request which must pass.
To run these locally

./gradlew check connectedAndroidTest

This will run our code standards checks, lint, tests and instrumented tests.

If you're keen to help, why not fix someone else's issue.

Feature Requests

You can submit feature requests as issues. As mentioned above we want this library to be simple, high quality and production ready. We therefore may be selective about which features we wish to include in order to achieve these goals.

Before fully coding a feature, why not raise an issue to start a discussion with us.