unjs/uqr

Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG.

TypeScript

772

26 commits

updated Apr 3, 2026

See the code

README

uqr

npm version npm downloads bundle License JSDocs

Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG. ES module , zero dependency, tree-shakable.

Install

# Using npm
npm install uqr

# Using yarn
yarn add uqr

# Using pnpm
pnpm add uqr

Usage

import {
  encode,
  renderANSI,
  renderSVG,
  renderUnicode,
  renderUnicodeCompact,
} from 'uqr'

const svg = renderSVG('Hello, World!')

const ansi = renderANSI('https://192.168.1.100:3000', {
  // Error correction level
  ecc: 'L',
  // Border width
  border: 2,
})

// display QR Code in terminal
console.log(ansi)

API

encode

Encode plain text or binary data into QR Code represented by a 2D array.

import { encode } from 'uqr'

const {
  data, // 2D array of boolean, representing the QR Code
  version, // QR Code version
  size, // size of the QR Code
} = encode(text, options)

renderANSI

Render QR Code to ANSI colored string.

import { renderANSI } from 'uqr'

const string = renderANSI(text, options)

console.log(string)

renderUnicode

Render QR Code to Unicode string for each pixel. By default it uses █ and ░ to represent black and white pixels, and it can be customizable.

import { renderUnicode } from 'uqr'

const string = renderUnicode(text, {
  blackChar: '█',
  whiteChar: '░',
  // ...other options
})

renderUnicodeCompact

Render QR Code with two rows into one line with unicode ▀, ▄, █, . It is useful when you want to display QR Code in terminal with limited height.

import { renderUnicodeCompact } from 'uqr'

const string = renderUnicodeCompact(text, options)

console.log(string)

renderSVG

Render QR Code to SVG string.

import { renderSVG } from 'uqr'

const string = renderSVG(text, options)

Alternatives

  • etiket — Zero-dependency barcode & QR code SVG generator. 20+ formats (1D barcodes, QR, Data Matrix, PDF417, Aztec), styled QR codes with dot types/gradients/logos, tree-shakeable, CLI tool.

Credits

QR Code generation algorithm is modified from nayuki/QR-Code-generator by Project Nayuki.

CLI renders are inspired by qrcode-terminal.

License

MIT License

unjs/uqr

Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG.

TypeScript

772

26 commits

updated Apr 3, 2026

See the code

README

uqr

npm version npm downloads bundle License JSDocs

Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG. ES module , zero dependency, tree-shakable.

Install

# Using npm
npm install uqr

# Using yarn
yarn add uqr

# Using pnpm
pnpm add uqr

Usage

import {
  encode,
  renderANSI,
  renderSVG,
  renderUnicode,
  renderUnicodeCompact,
} from 'uqr'

const svg = renderSVG('Hello, World!')

const ansi = renderANSI('https://192.168.1.100:3000', {
  // Error correction level
  ecc: 'L',
  // Border width
  border: 2,
})

// display QR Code in terminal
console.log(ansi)

API

encode

Encode plain text or binary data into QR Code represented by a 2D array.

import { encode } from 'uqr'

const {
  data, // 2D array of boolean, representing the QR Code
  version, // QR Code version
  size, // size of the QR Code
} = encode(text, options)

renderANSI

Render QR Code to ANSI colored string.

import { renderANSI } from 'uqr'

const string = renderANSI(text, options)

console.log(string)

renderUnicode

Render QR Code to Unicode string for each pixel. By default it uses █ and ░ to represent black and white pixels, and it can be customizable.

import { renderUnicode } from 'uqr'

const string = renderUnicode(text, {
  blackChar: '█',
  whiteChar: '░',
  // ...other options
})

renderUnicodeCompact

Render QR Code with two rows into one line with unicode ▀, ▄, █, . It is useful when you want to display QR Code in terminal with limited height.

import { renderUnicodeCompact } from 'uqr'

const string = renderUnicodeCompact(text, options)

console.log(string)

renderSVG

Render QR Code to SVG string.

import { renderSVG } from 'uqr'

const string = renderSVG(text, options)

Alternatives

  • etiket — Zero-dependency barcode & QR code SVG generator. 20+ formats (1D barcodes, QR, Data Matrix, PDF417, Aztec), styled QR codes with dot types/gradients/logos, tree-shakeable, CLI tool.

Credits

QR Code generation algorithm is modified from nayuki/QR-Code-generator by Project Nayuki.

CLI renders are inspired by qrcode-terminal.

License

MIT License

Project health

npm

Latest release

0.1.3 · Apr 3, 2026

Releases this year

1

Significant stargazers

Pooya Parsa

5,149 followers · starred Aug 2023

afc163

7,372 followers · starred Jun 2026

fisker Cheung

557 followers · starred Aug 2023

Arlo

1,279 followers · starred Aug 2023