datamatrix-rs

DataMatrix (ECC 200) decoding and encoding library with an optimizing encoder.

This library is still work in progress but a complex, important part is already done: a new optimzing encoder for the data part. This optimizer goes beyond what is specified in ISO/IEC 16022:2006. It uses an idea similar to the A* algorithm. The full encoding process is linear in the input size and therefore beats the algorithm from the standard also on this front (this is probably not noticable in most cases, though). The new optimizer is unique about this implementation, something similar could not be found in any open source implementation.

It is also a completely fresh implementation overall, with all its pros and cons.

See the list of related projects below for credits.

Status

After the above steps the library will be useable for full DataMatrix encoding and decoding (from an end user perspective). No rendering or virtual detection will be there yet, but at least rendering is straightforward.

Things in consideration for after that:

Related projects

The following projects were invaluable for learning from their implementation and stealing some of their test cases and bug reports.