{"adoption": {"forks": 702, "observed_at": "2026-08-28T04:07:25.851670+00:00", "stars": 2855}, "canonical_url": "https://ross.abutalabs.com/products/android-upload-service", "card": {"archived": false, "artifact_type": "library", "description": "Easily upload files (Multipart/Binary/FTP out of the box) in the background with progress notification. Support for persistent upload requests, customizations and custom plugins.", "domain": ["mobile-development", "android-tools", "web-development"], "enriched": true, "function": ["file-upload", "http-client"], "health_score": 32, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["gotev/android-upload-service"], "name": "gotev/android-upload-service", "platform": [], "pushed_at": "2025-01-18T12:07:46+00:00", "repo": "gotev/android-upload-service", "stars": 2855, "tags": ["background-uploads", "multipart", "ftp", "progress-notification", "kotlin", "persistent-requests", "android"], "topics": ["upload", "service", "http", "android", "ftp", "binary", "background", "notification", "persistent", "persistent-data", "plugins", "https", "ssl", "multipart-uploads", "multipart-formdata", "multipart"], "urls": [], "use_cases": ["upload files in the background on Android", "show upload progress notifications", "upload multipart form data from an Android app", "resume or persist upload requests across app restarts", "upload files over FTP from Android", "decouple upload logic from activities and fragments"], "what_it_is": "An Android library that handles file uploads (Multipart, Binary, FTP) in a background service with progress notifications. It supports persistent upload requests, customizations, and custom plugins, decoupling upload logic from the UI.", "when_to_avoid": ["you need uploads to survive the app process being killed", "you are not building an Android app", "you need a cross-platform upload solution"], "when_to_choose": ["you need reliable background file uploads on Android with progress UI", "you want built-in Multipart, Binary, and FTP support", "you need uploads to continue while the app is backgrounded or the device is idle"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-upload-service", "repo": "gotev/android-upload-service", "role": "main", "score": 31}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "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:25.851670+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.851670+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:36:44.586186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585b9fe1e7ada55246b87a15c0d0324dc7b883ff7a26f0733444e5648d86763a", "fetched_at": "2026-08-28T04:07:25.851670+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gotev/android-upload-service"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 2, "longevity": 100, "rhythm": 28}, "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": 4726, "days_push": 592, "days_rel": 592, "gap_med": 67, "n_releases_24m": 2}, "score": 31, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}