# openpgpjs/openpgpjs

OpenPGP implementation for JavaScript

Repository: https://github.com/openpgpjs/openpgpjs
Canonical: https://ross.abutalabs.com/products/openpgpjs
Homepage: https://openpgpjs.org
Language: JavaScript
License: LGPL-3.0
License Family: copyleft
Last push: 2026-08-18T22:53:15+00:00

## Health v2 (maintenance only)
Score: 90/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 75, longevity 100
- inputs: {"age_days": 5407, "days_push": 15, "days_rel": 90, "gap_med": 59, "n_releases_24m": 10}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 5969, forks 826 (observed 2026-08-28T04:09:33.866672+00:00)

## What it is
OpenPGP.js is a pure JavaScript implementation of the OpenPGP protocol (RFC 9580), maintained by Proton Mail. It lets applications encrypt, decrypt, sign, and verify data and manage PGP keys in browsers, Node.js, and Deno without requiring native GPG installations.

## Use cases
- encrypt and decrypt messages with PGP keys in the browser
- sign and verify cleartext or detached signatures in JavaScript
- generate and revoke OpenPGP key pairs
- add end-to-end encryption to a webmail client
- encrypt files with a password in Node.js
- implement PGP encryption in a browser extension

## When to choose
- you need OpenPGP encryption/signing in JavaScript without native dependencies
- you're building a browser app, extension, or Node.js server that handles PGP email or messages
- you want a well-audited, actively maintained library implementing the latest RFC 9580

## When to avoid
- you need PGP in a non-JavaScript environment or want native GPG performance
- you need general-purpose symmetric encryption rather than the OpenPGP format
- your runtime lacks Web Cryptography (SubtleCrypto) or Web Streams support

## Facets
- artifact type: library
- maturity: stable
- function: cryptography, security, serialization
- domain: security, privacy, email, web-development, developer-tools
- platform: browser, cross-platform
- tags: openpgp, pgp, encryption, signing, key-management, rfc9580, email-encryption, nodejs, deno, javascript

## Member repositories
- openpgpjs/openpgpjs (main) score 90

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:33.866672+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:50:09.124733+00:00, confidence not recorded.
  - readme: https://github.com/openpgpjs/openpgpjs (fetched 2026-08-28T04:09:33.866672+00:00, sha 04d9ddecc32a)
  - homepage: https://openpgpjs.org (fetched 2026-08-29T08:46:13.413090+00:00, sha 1a3d4ed5bc62)
  - site_page: https://docs.openpgpjs.org (fetched 2026-08-29T08:46:13.420397+00:00, sha cd5020f66a70)
- Data as of 2026-08-30T08:39:29.467469+00:00.
