Repository navigation
excluded formats
An absent format ID is intentional. The SDK prefers a clear “not implemented”
boundary over a detector that returns plausible-looking but wrong data.
listFormats() is the authoritative way to discover what the current runtime
can create and read.
The following formats are deliberately not included in this MIT SDK:
| Format | Reason | What the user would need |
|---|---|---|
| SQRC | DENSO format with licensing and proprietary data rules outside this project’s MIT implementation. | An appropriate DENSO licence and a separate licensed adaptation. |
| Face Authentication SQRC | DENSO format with authentication semantics and licensing outside this SDK. | An appropriate DENSO licence and a separate licensed integration. |
| Native DENSO FrameQR | Proprietary format; the public material does not provide the complete interoperable implementation contract used here. | DENSO’s licensed generation/reading software or a licensed adaptation. |
The SDK’s frameqr entry is the separate non-certified
sythos-canvas-qr/1 profile described in Sythos Canvas QR.
It is not a fallback name for DENSO FrameQR.
Official DENSO references for the excluded SQRC formats:
These names do not appear as supported IDs in the current registry:
| Format or feature | Current status |
|---|---|
| QR Code Model 1 | Deliberately unimplemented; the current evidence set lacks the complete placement figures and fixtures needed for a trustworthy writer and reader. |
| Data Matrix Rectangular Extension (DMRE) | Not included; the implementation covers classic ECC 200 square and rectangular symbols. |
| GS1 DataBar Expanded Stacked | Not included; its multi-row layout is a separate physical grammar. |
| Micro QR ECI | Outside the current Micro QR API scope. |
| Micro QR FNC1 / GS1 | Outside the current Micro QR API scope. |
| Micro QR Structured Append | Outside the current Micro QR API scope. |
| Full ISO/IEC 24723 composite variants | The shipped gs1composite entry is a bounded Sythos profile; complete certified interoperability and every normative layout remain outside scope. |
These are scope statements, not claims that the formats are impossible to implement. A future implementation would need its own source audit, fixtures, interoperability checks, security review and licence/provenance entry before it could be added to the registry.
The root LICENSE deliberately excludes the following from
the current distribution because they are proprietary, licence-encumbered or
not sufficiently clear to redistribute with confidence:
- Digimarc Barcode
- VeriCode / VSCode
- DataGlyphs
- Snowflake Code
- ShotCode
- Microsoft Tag
- Bokode: a live MIT patent (US8366003B2, active through 2030) was later confirmed for this one — see
docs/guides/legal-exclusions.mdfor the licensing-side detail; kept in this list too since the same "no complete implementable spec" gap that put it here originally still applies independently. - Softstrip
- Codablock A (the Code-39-based stacked sibling of the already-implemented Codablock-F): a real, structurally distinct symbology — different row indicator scheme, mod-43 checksum, Code 39 rather than Code 128 rows — not just an older name for Codablock-F. Its only known standard citation is AIM USA's 1994 "TSC052 — Codablock A (39)," which could not be found published anywhere (not on AIM's site, not archived, not mirrored); no major open-source barcode library (Zint, BWIPP, OkapiBarcode) implements it either, which corroborates the same access problem rather than an oversight. Secondary sources describe only high-level parameters (row count, mod-43 checksum), not the row-indicator bit encoding or full checksum construction needed to implement it without guessing.
- Code 49: the originating patent (US 4,794,239) is expired and the
normative ANSI/AIM BC6-2000 specification is genuinely public — its row
structure, checksum formulas (weighted sums modulo 2401) and character
set were fully verified from the spec's own pages. The blocker is
narrower and unusual: the spec's own Appendix F, which maps each of the
2401 possible symbol-character values to its physical bar/space
pattern, prints only a 260-row sample and states plainly that "a
reference diskette containing this table, and the programs necessary to
generate it, is available from AIM USA" — meaning even the generation
algorithm, not just the complete data, is a paid/request-only
deliverable, not something derivable from the public specification.
Reverse-engineering an exact rule from the 260-row sample was attempted
and did not yield one reproducible with confidence across the full
range. Zint hardcodes a complete 2401-entry table without documenting
how it was obtained; this project only ever uses independent
implementations as black-box verification oracles, never as a source
to copy code or data tables from (see
NOTICE.md), and the fact that even Zint's own author needed to hardcode rather than compute the table is itself evidence no simple closed-form generator exists publicly. - Ultracode
- WeChat Mini Program Code (小程序码, also called a "sunflower code"): a genuinely distinct 2D symbology, not a skinned QR code — a ring-shaped layout (positioning points plus a radial ray/petal data region, three capacities of 36/54/72 rays) with Reed-Solomon-style error correction and a central logo area. Tencent does not publish the bit-level format anywhere; the most detailed public reverse-engineering effort found explicitly describes its own work as incomplete, with the mapping from mask patterns and ray-count/ECC-level to metadata bits still unresolved. No independent open-source project generates or decodes the actual ray-pattern raster offline (the one plausible-looking GitHub hit turns out to just wrap an ordinary square-QR library for a different purpose). Separately, and decisively on its own: the ring/dot/arc/positioning- point/logo architecture this class of code shares is explicitly claimed by an active, broad patent — US12204967B2 (Alipay.com Co., Ltd., granted 2025, active through 2042) — plus further active patents from other assignees in the same design space (e.g. CN113487001A). Even setting IP risk aside, the code is functionally coupled to Tencent's backend: the only generation path Tencent itself exposes is a server-side API requiring a registered Mini Program AppID, so an independently-generated code has no legitimate real-world target to launch — closer to a URL-shortener's opaque short code than a self-contained symbology.
The list is maintained together with the legal-review notes in
NOTICE.md and the per-format inventory under
licenses/. Removing a format from this page requires the
same evidence and documentation update as adding it to the runtime.
A format family can be present while a variant remains out of scope. Examples:
-
datamatrixdoes not mean DMRE; -
gs1databar14does not mean every GS1 DataBar layout; Limited, Stacked, Stacked Omnidirectional and Expanded are separate explicit IDs, while Expanded Stacked remains outside scope; -
gs1compositeis the bounded Sythos profile, not a promise of complete ISO/IEC 24723 certification or every external scanner's composite dialect; -
microqrdoes not mean every Micro QR optional feature; -
pdf417does not mean Compact PDF417 or MicroPDF417; -
frameqrdoes not mean DENSO FrameQR; - EAN-2/EAN-5 do not become standalone symbols merely because their registry entries are readable.
Keep the application’s formats allow-list narrow and validate decoded data at
the application boundary. If a required format is not in listFormats(), the
safe answer is to use a separately licensed/validated implementation rather
than guessing from a similar-looking symbol.
A future addition should update, in one atomic change:
- the JavaScript runtime and TypeScript declarations;
-
listFormats()and the package exports; - focused tests, black-box checks and real-device evidence where relevant;
- the per-format licence/provenance file and
NOTICE.md; - this catalogue,
PLAN.md, the README and machine-readable release metadata.
Until all of those are green, the format belongs on this page rather than in the supported registry.
- Aztec
- Codablockf
- Code16k
- Databar Expanded
- Datamatrix
- Dotcode
- Dxfilmedge
- Excluded Formats
- Frameqr Profile
- Gs1 And Ean
- Gs1 Composite
- Hanxin
- Jabcode
- Kartrak
- Maxicode
- Oned
- Overview
- Pdf417 Family
- Postal
- Postbar
- Qr Family
This sidebar is generated from the canonical MkDocs documentation.