# Tapirscan documentation

Use the Tapirscan barcode scanner in JavaScript, Python and native applications.

Canonical: https://tapirscan.f-kleinicke.de/docs/

## Scan locally

Tapirscan detects multiple barcodes and returns their values, formats and positions. Browser and Node applications use Rust/WebAssembly; Python uses native libraries. Images stay in your application.

## Start here

- [JavaScript and TypeScript](https://tapirscan.f-kleinicke.de/docs/javascript/)
- [Python](https://tapirscan.f-kleinicke.de/docs/python/)
- [Upgrading from earlier versions](https://github.com/kleinicke/tapirscan/blob/main/docs/API_MIGRATION.md)
- [Formats and effort modes](https://tapirscan.f-kleinicke.de/formats/)
- [Releases and demo builds](https://tapirscan.f-kleinicke.de/releases/)
- [License and third-party notices](https://tapirscan.f-kleinicke.de/license/)

## Other language bindings

Rust, C, C++ and Java bindings share the scanner core. Follow each guide for build and platform requirements.

- [Rust](https://github.com/kleinicke/tapirscan/tree/main/bindings/rust)
- [C](https://github.com/kleinicke/tapirscan/tree/main/bindings/c)
- [Java](https://github.com/kleinicke/tapirscan/tree/main/bindings/java)
- [C++](https://github.com/kleinicke/tapirscan/tree/main/bindings/cpp)

## For coding agents

Use the documentation for your installed version. Supported linear and 2D formats are listed in the format guide; Turbo presets are experimental. Use the Markdown exports for compact documentation; AGENTS.md describes repository development, not the public API.

- [Documentation index for agents](https://tapirscan.f-kleinicke.de/llms.txt)
- [GitHub repository](https://github.com/kleinicke/tapirscan)
