{"adoption": {"forks": 259, "observed_at": "2026-08-28T04:07:50.186004+00:00", "stars": 3232}, "canonical_url": "https://ross.abutalabs.com/products/o-lib", "card": {"archived": false, "artifact_type": "application", "description": "O-lib is a free and open-source software application for PC", "domain": ["files", "pdf", "self-hosted", "cross-platform"], "enriched": true, "function": ["search-engine", "file-upload", "http-server", "gui"], "health_score": 96, "homepage": null, "language": "TypeScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["shiyi-0x7f/o-lib"], "name": "shiyi-0x7f/o-lib", "platform": ["windows", "rust"], "pushed_at": "2026-07-23T07:32:22+00:00", "repo": "shiyi-0x7f/o-lib", "stars": 3232, "tags": ["e-book-client", "book-downloader", "aria2", "opds", "bookshelf", "fluent-ui", "third-party-client", "free-software", "macos", "linux", "desktop", "tauri", "typescript"], "topics": [], "urls": [], "use_cases": ["search and download books from external sources", "manage a local ebook library and bookshelf", "share my ebook collection over LAN to KOReader via OPDS", "download books with resume support using aria2", "read books on PC without ads or subscriptions", "switch between multiple book source accounts and mirrors"], "what_it_is": "Olib is a free, open-source cross-platform desktop e-book client built with Tauri 2 (Rust backend + React/TypeScript frontend). It provides book search, multi-threaded downloads via aria2, a local bookshelf, multi-account and multi-mirror management, and LAN sharing with OPDS support.", "when_to_avoid": ["you want to build from source out of the box - the data-source API module is private and not included in the repo", "you need an official or legally sanctioned bookstore client", "you need mobile or web access - it is a desktop application only", "you require guaranteed availability of book sources, which are external and outside the project's control"], "when_to_choose": ["you want a free, ad-free desktop client for searching and downloading e-books", "you need OPDS/LAN sharing to read on e-readers like KOReader", "you want a polished Fluent-style Windows 11 native-feeling UI", "you prefer open-source software with active releases"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/o-lib", "repo": "shiyi-0x7f/o-lib", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "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:07:50.186004+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.186004+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:38.107206+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ca043cc770e5cdf6537f8af4e7590c4ffcc559b3aedb1126e1ed387a4ed9b8d", "fetched_at": "2026-08-28T04:07:50.186004+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shiyi-0x7f/o-lib"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 58, "rhythm": 62}, "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": 815, "days_push": 41, "days_rel": 41, "gap_med": null, "n_releases_24m": 1}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}