Published on: 3/2/2026 by Alex Suzuki

Rectangular Data Matrix

STRICH SDK 1.14 introduces support for the six rectangular Data Matrix variants in the ISO/IEC specification (8x18, 8x32, 12x26, 12x36, 16x36, 16x48). These are used less frequently than the square variants, but are gaining traction.

Here’s an example of a rectangular Data Matrix symbol encoding the value STRICH Barcode Scanning SDK 1.14.0:

A rectangular Data Matrix symbol encoding the value 'STRICH Barcode Scanning SDK 1.14.0'

Support for these rectangular variants is enabled automatically whenever the Data Matrix symbology is enabled. Here’s our demo app scanning these symbols.

Support for the additional rectangular sizes specified in ISO/IEC 21471 (DMRE) will be added in a future release.

Sample code for reading Data Matrix using PopupScanner

The snippet below shows how to scan Data Matrix symbols using the SDK’s PopupScanner integration.

import {StrichSDK, PopupScanner} from "https://cdn.jsdelivr.net/npm/@pixelverse/strichjs-sdk@latest";

// ... SDK initialization code ...
await StrichSDK.init('<your license key>');

const detections = await PopupScanner.scan({
  engine: {
      symbologies: ["datamatrix"]
  }
});

Reduced Bundle Size

By upgrading to the latest version of the Emscripten WASM compiler and choosing an optimization level that prioritizes binary size, we were able to shrink the output size by roughly 20%.

In our experiments, we noticed a small but measurable (~5%) decrease in runtime performance. This was expected and we believe the tradeoff works well for our product.

Under-the-Hood Improvements

In addition to the above, we applied the usual spit and polish: updating our dependencies and under-the-hood improvements to the code structure.

A somewhat larger change was moving our JavaScript SDK tests from Jest to vitest and running them as browser tests instead of in a virtual JSDom environment. The tests execute a lot faster now, even though they run in a full-fledged browser environment. That should pay dividends in the long run as it will make tests more pleasant to write and the tests themselves more meaningful.