libqrencode is a C library for encoding data into QR Code symbols that can be scanned by mobile devices and other terminals.
The library solves the problem of generating QR Codes by accepting input strings or data chunks and encoding them as bitmap arrays, which applications can then render directly without needing to generate intermediate image files. This approach differs from many QR Code tools that produce image files as output. The library implements the QR Code model 2 specification defined in JIS X0510:2004 and ISO/IEC 18004, supporting numeric, alphabetic, Japanese kanji, and 8-bit character encoding with optimized string encoding, structured-append of multiple symbols, and experimental Micro QR Code support. Unsupported features include ECI and FNC1 modes and the deprecated QR Code model 1.
The library has no dependencies for core functionality, making it suitable for embedding in applications where minimal external requirements are important. The command-line utility and test programs optionally depend on libpng or SDL 2.0, but these can be skipped during compilation. Developers should choose this library when they need to integrate QR Code generation into applications that render from raw bitmap data rather than working with image files. The project provides both a C library for programmatic use and a command-line tool that outputs QR Code images in various formats.
Development activity shows consistent maintenance with regular updates to the codebase. The project maintains both autoconf and CMake build systems to accommodate different build environments. The distinction between the development version in the repository and official stable releases on the project homepage indicates a structured release process. The library remains actively supported with attention to build compatibility across platforms and dependency management through package managers.