{"adoption": {"forks": 262, "observed_at": "2026-08-28T04:08:41.686884+00:00", "stars": 4303}, "canonical_url": "https://ross.abutalabs.com/products/rawdrawandroid", "card": {"archived": false, "artifact_type": "framework", "description": "Build android apps without any java, entirely in C and Make", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["mobile-framework", "graphics", "build-tool"], "health_score": 74, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["cnlohr/rawdrawandroid"], "name": "cnlohr/rawdrawandroid", "platform": ["c", "cpp", "windows", "cli"], "pushed_at": "2026-07-01T02:22:40+00:00", "repo": "cnlohr/rawdrawandroid", "stars": 4303, "tags": ["ndk", "no-java", "apk", "opengl-es", "rawdraw", "make", "game-development", "android", "linux"], "topics": [], "urls": [], "use_cases": ["build android apps in c without java", "create tiny apk files", "write opengl es apps for android", "access usb devices from an android app in c", "build android apks from the command line with make", "port a c program to android"], "what_it_is": "A framework and build system for writing Android apps entirely in C using the NDK and Make, with no Java required. It provides OpenGL ES windowing, touch/sensor input, keyboard, asset access, USB, and permissions support while producing tiny APKs (~25-45kB).", "when_to_avoid": ["you need standard Android UI widgets or Jetpack ecosystem", "you plan a commercial Play Store app and want conventional tooling support", "your team works primarily in Kotlin or Java", "you need extensive third-party Android libraries"], "when_to_choose": ["you want minimal apk size and no Java/Gradle overhead", "you have existing C code to run on Android", "you prefer Make-based builds and direct NDK access", "you need low-level access like USB or raw sensors from C"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rawdrawandroid", "repo": "cnlohr/rawdrawandroid", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "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:08:41.686884+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.686884+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:49.672165+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0a78d5f1f3162227b2acd3f0d8813240cec7995f42a14404458bb4c44977dc7c", "fetched_at": "2026-08-28T04:08:41.686884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cnlohr/rawdrawandroid"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2528, "days_push": 64, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}