unjs/uncrypto

Single API for Web Crypto API and Crypto Subtle working in Node.js, Browsers and other runtimes

TypeScript

261

34 commits

updated Oct 10, 2026

See the code

README

uncrypto

npm version npm downloads Github Actions Codecov

This library provides a single api to use web-crypto and Subtle Crypto in both Node.js using Crypto Module and Web targets using Web Crypto API using Conditional Exports.

Requirements:

  • Node.js: Version 15 and above (this library provides no polyfills for older versions!)
  • Browser: Secure Context (HTTPS/Localhost) in Supported Browsers
  • Other Runtimes: Exposed globalThis.crypto and globalThis.crypto.subtle. (you can polyfill if neeeded)

Usage

Install package:

# npm
npm install uncrypto

# yarn
yarn add uncrypto

# pnpm
pnpm install uncrypto

Import:

// ESM
import { subtle, randomUUID, getRandomValues } from "uncrypto";

// CommonJS
const { subtle, randomUUID, getRandomValues } = require("uncrypto");

Development

  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

License

Made with 💛

Published under MIT License.

unjs/uncrypto

Single API for Web Crypto API and Crypto Subtle working in Node.js, Browsers and other runtimes

TypeScript

261

34 commits

updated Oct 10, 2026

See the code

README

uncrypto

npm version npm downloads Github Actions Codecov

This library provides a single api to use web-crypto and Subtle Crypto in both Node.js using Crypto Module and Web targets using Web Crypto API using Conditional Exports.

Requirements:

  • Node.js: Version 15 and above (this library provides no polyfills for older versions!)
  • Browser: Secure Context (HTTPS/Localhost) in Supported Browsers
  • Other Runtimes: Exposed globalThis.crypto and globalThis.crypto.subtle. (you can polyfill if neeeded)

Usage

Install package:

# npm
npm install uncrypto

# yarn
yarn add uncrypto

# pnpm
pnpm install uncrypto

Import:

// ESM
import { subtle, randomUUID, getRandomValues } from "uncrypto";

// CommonJS
const { subtle, randomUUID, getRandomValues } = require("uncrypto");

Development

  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

License

Made with 💛

Published under MIT License.

Project health

Latest release

0.1.3 · Jun 6, 2023

Releases this year

0

Significant stargazers

Harlan Wilton

1,187 followers · starred Feb 2023

Ryan Cao

141 followers · starred May 2023

Sergio Xalambrí

2,205 followers · starred Apr 2024

Keyan Zhang

970 followers · starred Jul 2023