{"adoption": {"forks": 295, "observed_at": "2026-08-28T04:08:36.024807+00:00", "stars": 4125}, "canonical_url": "https://ross.abutalabs.com/products/end-to-end", "card": {"archived": true, "artifact_type": "library", "description": "End-To-End is a crypto library to encrypt, decrypt, digital sign, and verify signed messages (implementing OpenPGP)", "domain": ["security", "privacy", "developer-tools"], "enriched": true, "function": ["cryptography", "security"], "health_score": 10, "homepage": null, "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["google/end-to-end"], "name": "google/end-to-end", "platform": ["browser"], "pushed_at": "2023-04-09T23:42:46+00:00", "repo": "google/end-to-end", "stars": 4125, "tags": ["openpgp", "otr", "end-to-end-encryption", "digital-signatures", "javascript-crypto", "javascript", "web"], "topics": ["openpgp", "javascript", "otr", "cryptography"], "urls": [], "use_cases": ["encrypt and decrypt messages in the browser with OpenPGP", "generate PGP key pairs in JavaScript", "digitally sign and verify signed messages", "add end-to-end encryption to a web app or email client", "implement OTR encrypted chat in JavaScript"], "what_it_is": "A JavaScript crypto library implementing OpenPGP (RFC 4880) and OTR for encrypting, decrypting, digitally signing, and verifying messages. It was released by Google to enable community review and underpins projects like E2EMail and browser extensions.", "when_to_avoid": ["you need actively developed features or frequent updates, as the project is largely in maintenance mode", "you need a general-purpose modern crypto library rather than OpenPGP/OTR specifically", "you require server-side or non-JavaScript environments"], "when_to_choose": ["you need a pure-JavaScript OpenPGP implementation for browser-based encryption", "you want a library vetted for community review with Google origins", "you're building email or messaging clients that exchange OpenPGP messages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/end-to-end", "repo": "google/end-to-end", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.024807+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:04.767187+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "87204f0d180d90797e7a18d9c28d575efed9f14d8ebb4d2fb573190dd3cc7f4a", "fetched_at": "2026-08-28T04:08:36.024807+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/end-to-end"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4348, "days_push": 1242, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}