{"adoption": {"forks": 100, "observed_at": "2026-08-28T04:04:00.106920+00:00", "stars": 1210}, "canonical_url": "https://ross.abutalabs.com/products/dadb", "card": {"archived": false, "artifact_type": "library", "description": "A Kotlin/Java library to connect directly to an Android device without an adb binary or an ADB server", "domain": ["developer-tools", "mobile-development"], "enriched": true, "function": ["developer-tools", "cli"], "health_score": 73, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["mobile-dev-inc/dadb"], "name": "mobile-dev-inc/dadb", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-06-22T18:28:21+00:00", "repo": "mobile-dev-inc/dadb", "stars": 1210, "tags": ["adb", "android-debug-bridge", "kotlin", "java", "android-testing", "device-automation", "apk-installation", "adb-protocol", "automation", "android"], "topics": [], "urls": [], "use_cases": ["connect to an android device from kotlin without adb binary", "install apks on android emulators programmatically", "push and pull files to android devices from a jvm app", "run shell commands on android devices from java", "discover and list connected android devices", "build android device automation tooling in kotlin"], "what_it_is": "Dadb is a Kotlin/Java library that implements the ADB protocol directly, allowing programs to connect to Android devices and emulators without needing the adb binary or a running ADB server. It supports installing/uninstalling APKs, pushing and pulling files, executing shell commands, and discovering connected devices.", "when_to_avoid": ["you need a general-purpose CLI for everyday Android development tasks (use the standard adb tool)", "you're not working on the JVM platform", "you need USB device connections without any adb server available, since physical USB devices still require one"], "when_to_choose": ["you need programmatic ADB functionality from Kotlin or Java without shelling out to the adb binary", "you want to avoid depending on a running ADB server for emulator connections", "you're building device farms, test runners, or Android automation tools on the JVM"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dadb", "repo": "mobile-dev-inc/dadb", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "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:04:00.106920+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.106920+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:18:31.835968+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88f28c185f26bc8a065080e377804ce5c1ee9853d6a0cb401bb96f0364247e86", "fetched_at": "2026-08-28T04:04:00.106920+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mobile-dev-inc/dadb"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1822, "days_push": 72, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}