{"adoption": {"forks": 243, "observed_at": "2026-08-28T04:07:52.151079+00:00", "stars": 3253}, "canonical_url": "https://ross.abutalabs.com/products/scarlet", "card": {"archived": false, "artifact_type": "library", "description": "A Retrofit inspired WebSocket client for Kotlin, Java, and Android", "domain": ["web-development", "backend", "mobile-development", "developer-tools"], "enriched": true, "function": ["websocket", "http-client", "serialization", "middleware"], "health_score": 52, "homepage": null, "language": "Kotlin", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["Tinder/Scarlet"], "name": "Tinder/Scarlet", "platform": ["jvm"], "pushed_at": "2025-11-21T18:58:33+00:00", "repo": "Tinder/Scarlet", "stars": 3253, "tags": ["retrofit-inspired", "rxjava", "kotlin-coroutines", "okhttp", "declarative-api", "android"], "topics": [], "urls": [], "use_cases": ["consume realtime websocket feeds in kotlin", "declarative websocket client like retrofit", "stream live bitcoin prices over websocket on android", "websocket client with rxjava or coroutines", "serialize websocket messages with moshi or protobuf", "auto-reconnect websocket with backoff strategies"], "what_it_is": "Scarlet is a Retrofit-inspired declarative WebSocket client library for Kotlin, Java, and Android. It lets you define WebSocket services via annotated interfaces, with pluggable adapters for serialization (Moshi, Gson, Protobuf, Jackson) and reactive streams (RxJava, Kotlin Coroutines).", "when_to_avoid": ["you need protocols beyond WebSocket like MQTT, STOMP, or Socket.IO in a stable release", "you want a lightweight raw WebSocket API without declarative interface boilerplate", "you need a library with frequent updates and active feature development"], "when_to_choose": ["you want a Retrofit-style annotated interface for WebSocket communication on the JVM or Android", "you need reactive streams (RxJava/Flowable) or coroutine-based WebSocket event handling", "you want pluggable message serialization and reconnect backoff strategies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/scarlet", "repo": "Tinder/Scarlet", "role": "main", "score": 47}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "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:52.151079+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.151079+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:24.263405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "32b8d4ee98594c9ff794a6f1cc733a64d35cb74544b935e04989ca0d3a50c7e2", "fetched_at": "2026-08-28T04:07:52.151079+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tinder/Scarlet"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3018, "days_push": 285, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 47, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}