{"adoption": {"forks": 241, "observed_at": "2026-08-28T04:03:56.518691+00:00", "stars": 1193}, "canonical_url": "https://ross.abutalabs.com/products/pdf-viewer", "card": {"archived": false, "artifact_type": "library", "description": "A Lightweight PDF Viewer Android library which only occupies around 80kb while most of the Pdf viewer occupies up to 16MB space.", "domain": ["pdf", "mobile-development", "android-tools"], "enriched": true, "function": ["pdf-viewer", "ui-components"], "health_score": 82, "homepage": "https://afreakyelf.github.io/Pdf-Viewer/", "language": "Kotlin", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["afreakyelf/Pdf-Viewer"], "name": "afreakyelf/Pdf-Viewer", "platform": ["jvm"], "pushed_at": "2026-03-17T06:00:42+00:00", "repo": "afreakyelf/Pdf-Viewer", "stars": 1193, "tags": ["jetpack-compose", "lightweight", "pdf-rendering", "android-library", "small-footprint", "android"], "topics": ["android", "android-application", "androidsdk", "library", "pdf", "pdfviewer", "kotlin", "android-pdf", "android-pdfviewer", "small-size-pdfviewer", "lightweight-pdf-viewer-android", "androidpdfviewer", "pdf-viewer", "jetpack-components", "jetpack-compose", "jetpackcompose"], "urls": [], "use_cases": ["display pdf files inside an android app", "render pdfs from url or local storage in jetpack compose", "lightweight pdf viewer with small apk impact", "show pdf documents with orientation change support", "block screenshots of sensitive pdf content", "open on-device pdf files with modern permission handling"], "what_it_is": "A lightweight Android PDF viewer library written in Kotlin that occupies only around 80kb, far smaller than typical PDF viewers. It supports both XML views and Jetpack Compose, with features like orientation-preserving page position, caching, and screenshot prevention.", "when_to_avoid": ["you need advanced PDF editing, annotation, or form-filling capabilities", "you target platforms other than Android", "you need cross-platform PDF rendering shared with iOS or web"], "when_to_choose": ["you need PDF viewing in an Android app without adding megabytes of dependencies", "your project uses Jetpack Compose and wants a simple composable PDF renderer", "you need small, actively maintained PDF rendering with privacy features like screenshot blocking"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pdf-viewer", "repo": "afreakyelf/Pdf-Viewer", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "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:03:56.518691+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.518691+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:22:13.069383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b760e3e27acb1131887cc06c2a38e3f43fbe39bcecf2e85e97d2908d8cd8d5f8", "fetched_at": "2026-08-28T04:03:56.518691+00:00", "kind": "readme", "missing": false, "url": "https://github.com/afreakyelf/Pdf-Viewer"}, {"content_hash": "28084027e4f2a5607202b5c23e1d733f2455c4a5b56568d30bc6f6db28a0e2ac", "fetched_at": "2026-08-29T12:29:21.824079+00:00", "kind": "homepage", "missing": false, "url": "https://afreakyelf.github.io/Pdf-Viewer/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 72, "longevity": 100, "rhythm": 75}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2244, "days_push": 169, "days_rel": 170, "gap_med": 7, "n_releases_24m": 12}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}