/uncrypto

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

Primary LanguageTypeScriptMIT LicenseMIT

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.