A public domain library for creating and parsing QR codes


libqr is a library for handling QR codes (a kind of 2D bar code). It currently supports generation; parsing and discovery modules are planned.

It is intended to be as widely useful as possible, due to the following features:

Further portability improvements for embedded devices etc will be included in a future release.


I'm really doing this because it's a good exercise in coding from a spec (and technical Japanese comprehension). However, I'm sure there's somebody out there who will benefit from an implementation that can be freely and easily incorporated into any system.

This library is entirely my own work. The logic is implemented directly from the spec, without referencing any other code or proprietary algorithms.

You may do what you like with this software, although please be aware that you do so entirely at your own risk. If you ship it as part of your product, I would appreciate a credit; bug reports and patches are welcome, provided any changes are similarly redistributable.

Code generation is pretty much done at this point. Subsequent releases will support recognition and parsing, and perhaps Micro-QR and other kinds of barcode. A shared library is also possible if that would be useful.

See the specification, JIS-X-0510.

The library is coded entirely in C (89), as cleanly as I can manage, so it should run on just about anything. Having said that, bugs will happen. My main system runs Ubuntu; you'll have most luck if you start with that.


The source code can be found on GitHub at

Version 0.1 is available here. I haven't written any documentation yet, so you're on your own. However, there is an example app for generating codes - check out qrgen.c.

If you have ImageMagick installed, you can try the following:
./qrgen -p "hello, world" | display

Try it out!

You can generate a QR code online.


Leo Howell - norisys