Skip to content
/ uqr Public

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

License

Notifications You must be signed in to change notification settings

unjs/uqr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

244952a · Jun 15, 2024

History

21 Commits
Aug 4, 2023
Aug 7, 2023
Jun 15, 2024
Aug 15, 2023
Aug 4, 2023
Aug 7, 2023
Aug 4, 2023
Aug 4, 2023
Aug 7, 2023
Aug 4, 2023
Aug 16, 2023
Aug 16, 2023
Aug 4, 2023
Aug 4, 2023

Repository files navigation

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)

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