{"adoption": {"forks": 264, "observed_at": "2026-08-28T04:06:27.073184+00:00", "stars": 2215}, "canonical_url": "https://ross.abutalabs.com/products/upngjs", "card": {"archived": false, "artifact_type": "library", "description": "Fast and advanced PNG (APNG) decoder and encoder (lossy / lossless)", "domain": ["image-processing", "graphics", "web-development", "files"], "enriched": true, "function": ["image-processing", "compression", "serialization"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["photopea/UPNG.js"], "name": "photopea/UPNG.js", "platform": ["browser", "cross-platform"], "pushed_at": "2023-07-28T16:08:25+00:00", "repo": "photopea/UPNG.js", "stars": 2215, "tags": ["png", "apng", "encoder", "decoder", "image-optimization", "quantization", "lossy-compression", "lossless-compression", "photopea", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["compress png images in javascript", "encode png from canvas pixel data", "create animated apng files in the browser", "minify png files like tinypng", "decode png files to raw rgba pixel data", "save 16-bit color png images", "reduce png file size by limiting color count"], "what_it_is": "UPNG.js is a small, fast JavaScript library for encoding and decoding PNG and APNG images, serving as the main PNG engine for the Photopea image editor. It supports both lossless compression and lossy minification via color quantization, similar to TinyPNG.", "when_to_avoid": ["you need to work with formats other than PNG/APNG such as JPEG or WebP", "you require GPU-accelerated or extremely high-throughput image processing", "you need a full image editing feature set rather than just PNG codec functionality"], "when_to_choose": ["you need PNG or APNG encoding/decoding in JavaScript without native dependencies", "you want lossy PNG compression through color quantization", "you need low-level control over bit depth and channel count when encoding", "you are building a browser or Node.js image processing pipeline"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/upngjs", "repo": "photopea/UPNG.js", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "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:06:27.073184+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.073184+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:58.772626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "857fc8e8df7f15ef07c42e251e84a8b35f8eb477c564c4602902f3599436c253", "fetched_at": "2026-08-28T04:06:27.073184+00:00", "kind": "readme", "missing": false, "url": "https://github.com/photopea/UPNG.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3445, "days_push": 1132, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}